Ich weiß nicht, ob ich mit einer
COM-Frage im Unterforum "Windows
API / MS.NET Framework
API" richtig bin. Wenn nein, bitte verschieben.
Ich möchte ein neues Programmmodul gerne als
COM-Server realisieren, da es, wenn es fertig ist, vielleicht auch mal separat vertrieben und von anderen Hostanwendungen angesteuert werden soll. Das Programmmodul bringt seine eigene Datenbank mit, in die es seine Daten abspeichert. Außerdem soll es an gewissen Stellen möglich sein, Daten vom aufrufenden Programm abzurufen bzw. Aktionen im aufrufenden Programm zu bewirken (letzteres also ähnlich einem Event). Der
COM-Server soll also ebenfalls - in rudimentärer Form - auf den
COM-Client zugreifen können.
Ich hatte mir das so vorgestellt, dass der
COM-Client dem
COM-Server eine Art Funktionszeiger übergeben kann und die Implementation der Funktionen dann selbst übernimmt. Die Schnittstelle der Funktion (Parameter + Rückgabetyp) müsste dann halt auf beiden Seiten bekannt sein. In einer "normalen" Delphi-Anwendung funktioniert das ja prima über Funktionstypen:
type TAufrufFunktion = function(P1, P2, P3: string): string;
Nur wie funktioniert das über die
COM-Schnittstelle hinweg? Gibt es da irgendwelche
COM-Datentypen, die genau dafür vorgesehen sind? Oder welcher Weg würde sich da als Lösung anbieten?
Oder wäre mein Lösungsansatz gar nur auf Delphi-Hostanwendungen beschränkt, weil es in anderen Programmiersprachen so etwas wie Funktionszeiger bspw. gar nicht gibt???
Danke im Voraus für eure Tipps