Erstens benutzt du ja die gleiche
Unit (hoffentlich) in der externen
DLL, insofern definierst du das ja nicht doppelt. Es wird aber in dem externen Speichermanager der
DLL ein zweites Mal in den Speicher geladen, aber da beide kompatibel sind, ist das bei Funktionszeigern und Records kein Problem.
Zweitens wegen dem message Schlüsselwort, das musst du im Interface weglassen, da der Compiler damit nur etwas bei Klassen anfangen kann. Interfaces können nicht automatisch Messages abfangen.
Zu überlegen wäre, ob du nur bestimmer Messages erlauben willst, denn ansonsten könntest du auch einfach die WndProc durchleiten. Das wäre natürlich etwas langsamer.