Ich hab das hier nun mittels WM_COPYDATA gelöst.
Finde ich zwar irgendwie ein bischen "von hinten durch die Brust ins Auge" ... aber es funktioniert tadellos.
Dazu hab ich einen Variant-Record gebastelt, den ich die Sendmessage hänge.
Je nach Anforderung darin liest oder schreibt der Wrapper in/aus der
DLL und gibt den ggf. gefüllten Record gleich wieder zurück.
Praktisch ist, das TWmCopyData den
Handle des aufrufenden Prog in Msg.From mitliefert und der Wrapper ohne zu wissen wer da "anfragt" die Antwort gleich wieder zurückschicken kann.
Mit ShellExecute und SW_HIDE gestartet habe ich kein Fenster ... und auch kein Icon in der Taskleiste ?!
Eine Sendmessage mit WM_CLOSE macht den Wrapper bei Programmende wieder zu.
Fühlt sich nun so an, als wenn da gar nichts zwischenhängt.