Einen Automatisierungsserver mit einer Dispatch-Schnittstelle steuern

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Quelltext auf der Basis von Typbibliotheksdefinitionen erstellen


Normalerweise verwenden Sie die duale Schnittstelle zum Steuern des Automatisierungsservers. Unter Umständen kann es aber erforderlich werden, den Automatisierungsserver über eine Dispatch-Schnittstelle zu steuern, weil keine duale Schnittstelle verfügbar ist.

So rufen Sie die Methoden der Dispatch-Schnittstelle auf:

  1. Stellen Sie eine Verbindung zum Server mit der globalen Funktion CreateOleObject her.
  2. Verwenden Sie den as-Operator, um die von CreateOleObject zurückgegebene IDispatch-Schnittstelle in die Dispatch-Schnittstelle für die CoClass umzuwandeln. Der Dispatch-Schnittstellentyp wird in der Unit TypeLibName_TLB deklariert.
  3. Setzen Sie zur Steuerung des Automatisierungsservers Methoden der Dispatch-Schnittstelle ein.Eine weitere Möglichkeit zur Verwendung von Dispatch-Schnittstellen besteht darin, diese einem Variant zuzuordnen. Indem Sie die von CreateOleObject zurückgegebene Schnittstelle einem Variant zuordnen, können Sie die integrierte Schnittstellenunterstützung des Variant-Typs nutzen. Rufen Sie dazu einfach die Methoden der Schnittstelle auf. Der Variant verarbeitet dabei alle IDispatch-Aufrufe durch Abrufen der Dispatch-ID und Aufrufen der geeigneten Methode. Der Variant-Typ bietet integrierte Unterstützung für den Aufruf von Dispatch-Schnittstellen über seinen var-Parameter.
  V: Variant;
begin
  V:= CreateOleObject("TheServerObject");
  V.MethodName; { calls the specified method }
  ...

Die Verwendung von Variants bietet den Vorteil, dass Sie die Importbibliothek nicht importieren müssen, da Variants nur die Standard-IDispatch-Methoden für den Aufruf des Servers nutzen. Ein Nachteil ist jedoch die Tatsache, dass Variants aufgrund der dynamischen Bindung zur Laufzeit langsamer sind.

Siehe auch