Hallo,
also Dein Hauptprogramm könnte eine Broadcast Message senden, auf die Deine
Dll mit dem
Handle der eigenen Fensterprozedur antwortet.
Von diesem Zeitpunkt kennt das Hauptprogramm und die
Dll die entsprechenden Handles.
Für Broadcast Message:
DBT_INIT: cardinal;
DBT_INIT := RegisterWindowMessage(MSG_DBT_INIT);
PostMessage(HWND_BROADCAST,DBT_INIT,self.handle,0) ;
Für Fensterprozedur
Dll
procedure WndProc(var Message: TMessage);
begin
if Message.Msg = DBT_INIT then
begin
PostMessage(Message.LParam,DBT_INIT,dllWndHdl,0); // das ist trocken getippt, könnte auch WParam sein
end
end
dllWndHdl := AllocateHWnd(WndProc);
Gruesse,
Guido