Implementieren von COM-Objekten mit Hilfe der Experten

Aus RAD Studio
Wechseln zu: Navigation, Suche

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:

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:

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:

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

COM-Server

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.

Automatisierungs-Server

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.

Typbibliothek

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.

Themen