Einzelnen Beitrag anzeigen

MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#1

Funktionszeiger an COM-Server übergeben

  Alt 14. Jul 2009, 09:26
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
  Mit Zitat antworten Zitat