Freigeben über


Implementieren einer dualen Schnittstelle

Sie können eine duale Schnittstelle mithilfe der IDispatchImpl-Klasse implementieren, die eine Standardimplementierung der IDispatch Methoden in einer dualen Schnittstelle bereitstellt. Weitere Informationen finden Sie unter Implementing the IDispatch Interface.

So verwenden Sie diese Klasse:

  • Definieren Sie die duale Schnittstelle in einer Typbibliothek.

  • Leiten Sie Ihre Klasse von einer Spezialisierung IDispatchImpl ab (übergeben Sie Informationen zur Schnittstelle und Typbibliothek als Vorlagenargumente).

  • Fügen Sie der COM-Zuordnung einen Eintrag (oder Einträge) hinzu, um die duale Schnittstelle über QueryInterfaceverfügbar zu machen.

  • Implementieren Sie den vtable-Teil der Schnittstelle in Ihrer Klasse.

  • Stellen Sie sicher, dass die Typbibliothek, die die Schnittstellendefinition enthält, zur Laufzeit für Ihre Objekte verfügbar ist.

ATL-Assistent für einfache Objekte

Wenn Sie eine neue Schnittstelle und eine neue Klasse zum Implementieren erstellen möchten, können Sie das Dialogfeld "ATL-Klasse hinzufügen" und dann den ATL-Assistenten für einfache Objekte verwenden.

Assistent zum Implementieren von Schnittstellen

Wenn Sie über eine vorhandene Schnittstelle verfügen, können Sie den Assistenten zum Implementieren von Schnittstellen verwenden, um einer vorhandenen Klasse die erforderlichen Basisklassen, COM-Zuordnungseinträge und Skelettmethodenimplementierungen hinzuzufügen.

Hinweis

Möglicherweise müssen Sie die generierte Basisklasse so anpassen, dass die Haupt- und Nebenversionsnummern der Typbibliothek als Vorlagenargumente an Ihre IDispatchImpl Basisklasse übergeben werden. Der Assistent zum Implementieren von Schnittstellen überprüft nicht die Versionsnummer der Typbibliothek für Sie.

Implementieren von IDispatch

Sie können eine IDispatchImpl Basisklasse verwenden, um eine Implementierung einer dispinterface bereitzustellen, indem Sie nur den entsprechenden Eintrag in der COM-Zuordnung angeben (mithilfe des COM_INTERFACE_ENTRY2 oder COM_INTERFACE_ENTRY_IID Makros), sofern Sie über eine Typbibliothek verfügen, die eine entsprechende duale Schnittstelle beschreibt. Es ist üblich, die IDispatch Schnittstelle auf diese Weise zu implementieren, zum Beispiel. Der ATL-Assistent für einfache Objekte und der Assistent zum Implementieren von Schnittstellen gehen beide davon aus, dass Sie auf diese Weise implementieren IDispatch möchten, sodass sie den entsprechenden Eintrag zur Karte hinzufügen.

Hinweis

ATL bietet die Klassen IDispEventImpl und IDispEventSimpleImpl, die Ihnen bei der Implementierung vonDispinterfaces helfen, ohne dass eine Typbibliothek erforderlich ist, die die Definition einer kompatiblen dualen Schnittstelle enthält.

Siehe auch

Duale Schnittstellen und ATL