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
QueryInterface
verfü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.