Implementieren von COM-Objekten mit Hilfe der Experten
Nach oben zu COM-Grundlagen - Index
Delphi erleichtert das Schreiben von COM-Server-Anwendungen durch die Bereitstellung von Experten, die viele der involvierten Details behandeln. Delphi bietet Experten zum Erstellen folgender Objekte:
- Einfaches COM-Objekt
- Automatisierungsobjekt
- Typbibliothek
- ActiveX-Bibliothek
Die Experten dienen zur Ausführung der Aufgaben, die zum Erstellen der einzelnen Typen von COM-Objekten durchgeführt werden müssen. Sie stellen die für jeden Objekttyp erforderlichen COM-Schnittstellen zur Verfügung. So implementiert der Experte bei einem einfachen COM-Objekt die einzige erforderliche COM-Schnittstelle,IUnknown, die einen Schnittstellenzeiger auf das Objekt liefert.
Einfache COM-Objektschnittstelle:
Der Experte für COM-Objekte ermöglicht auch die Implementierung von IDispatch, wenn Sie angeben, dass Sie ein Objekt erzeugen, das einen Nachfolger von IDispatch unterstützt.
Für Automatisierungs- und Active Server-Objekte implementiert der Experte die Schnittstellen IUnknown und IDispatch, wobei der letztere einen automatischen Marshaling-Mechanismus zur Verfügung stellt.
Automatisierungs-Objektschnittstelle:
Für ActiveX-Steuerelemente und ActiveX-Formulare implementiert der Experte alle erforderlichen Schnittstellen, ausgehend von IUnknown, IDispatch, IOleObject, IOleControl usw. Eine vollständige Liste der Schnittstellen finden Sie auf der Referenzseite für das Objekt Vcl.AxCtrls.TActiveXControl.
ActiveX-Objektschnittstelle:
Die folgende Tabelle enthält die verschiedenen Experten sowie die von ihnen implementierten Schnittstellen:
Die Delphi-Experten für die Implementierung von COM-, Automatisierungs- und ActiveX-Objekten :
Experte | Implementierte Schnittstellen | Vom Experten durchgeführte Aufgaben |
---|---|---|
IUnknown (und IDispatch, wenn Sie eine Standardschnittstelle wählen, die von IDispatch abgeleitet ist) |
Exportiert die notwendigen Routinen für die Server-Registrierung, die Klassenregistrierung, das Laden und das Entfernen des Servers sowie die Objektinstantiierung. Erzeugt und verwaltet die Klassengeneratoren für auf dem Server implementierte Objekte. Stellt Informationen über das Objekt, welches das ausgewählte Threading-Modell spezifiziert, für die Registrierungsdatenbank bereit. Deklariert die Methoden zur Implementierung einer gewählten Schnittstelle und Bereitstellung eines Implementierungsskeletts, das von Ihnen vervollständigt werden muss. Stellt eine Typbibliothek zur Verfügung, wenn angefordert. Ermöglicht die Auswahl einer beliebigen Schnittstelle, die in der Typbibliothek registriert ist, und die Implementierung. Dazu müssen Sie die Typbibliothek benutzen. | |
IUnknown, IDispatch |
Alle für den COM-Server genannten Aufgaben und zusätzlich: Implementiert die von Ihnen angegebene Schnittstelle, entweder als duale oder als Dispatch-Schnittstelle. Stellt bei Bedarf server-seitige Unterstützung für die Erzeugung von Ereignissen bereit. Stellt automatisch eine Typbibliothek bereit. | |
Keine (Voreinstellung) |
Erstellt eine neue Typbibliothek und verknüpft diese mit dem aktiven Projekt. | |
ActiveX-Bibliothek |
Keine (Voreinstellung) |
Erstellt eine neue ActiveX- oder COM-Server-DLL und stellt die erforderlichen Exportfunktionen bereit. |
Sie können zusätzliche COM-Objekte hinzufügen oder eine vorhandene Implementierung erneut implementieren. Zum Hinzufügen eines neuen Objekts ist es am einfachsten, den Experten ein zweites Mal zu benutzen, denn dieser erzeugt eine Verbindung zwischen der Typbibliothek und einer Implementierungsklasse, so dass Änderungen, die Sie mit dem Typbibliothekseditor vornehmen, automatisch auf Ihr Implementierungsobjekt angewendet werden.