Freigeben über


Implementing a Dual Interface

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

Um diese Klasse verwenden:

  • Definieren Sie die duale Schnittstelle in einer Typbibliothek.

  • Leiten Sie die Klasse von einer Spezialisierung von IDispatchImpl (Übergabeninformationen über die Schnittstelle und die Typbibliothek als die Vorlagenargumente).

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

  • Implementieren Sie den Teil der Schnittstelle in der Klasse.

  • Stellen Sie sicher, dass die Typbibliothek, die die Schnittstellendefinition enthält, zu den Objekten zur Laufzeit verfügbar sind.

ATL-Assistent für einfache Objekte

Wenn Sie eine neue Schnittstelle und eine neue Klasse erstellen möchten, um sie zu implementieren, können Sie ATL fügt Klassendialogfeld hinzu und dann ATL-Assistent für einfache Objekte verwenden.

Assistent zum Implementieren von Schnittstellen

Wenn Sie eine vorhandene Schnittstelle haben, können Sie Assistent zum Implementieren von Schnittstellen verwenden, um die erforderliche Basisklasse, die COM-Zuordnungs-Einträge und die Skelettmethodenimplementierungen einer vorhandenen Klasse hinzuzufügen.

Hinweis

Sie müssen möglicherweise die generierte Basisklasse anpassen, sodass die Hauptversionsnummer und die Nebenversionsnummer der Typbibliothek als Vorlagenargumente zu der IDispatchImpl Basisklasse übergeben werden.Der Assistent zum Implementieren von Schnittstellen überprüft die Versionsnummer für Sie.

Implementieren von IDispatch

Sie können eine IDispatchImpl Basisklasse verwenden, um eine Implementierung einer Dispatchschnittstelle bereitzustellen, gerade vom Angeben des entsprechenden Eintrag in der COM-Zuordnung (mithilfe des COM_INTERFACE_ENTRY2 oder COM_INTERFACE_ENTRY_IID-Makros) solange Sie eine Typbibliothek verfügen, die eine entsprechende duale Schnittstelle beschrieben. Es ist recht üblich, die IDispatch-Schnittstelle implementieren auf diese Weise, zum Beispiel. Der ATL-Assistent für einfache Objekte und der Assistent zum Implementieren von Schnittstellen beide wird davon ausgegangen, dass Sie beabsichtigen, IDispatch auf diese Weise zu implementieren, sodass fügen sie den entsprechenden Eintrag der Zuordnung hinzu.

Hinweis

ATL bietet die IDispEventImpl und IDispEventSimpleImpl-Klassen, die Ihnen helfen, Dispatchschnittstellen zu implementieren, ohne eine Typbibliothek benötigen, die die Definition einer kompatiblen duale Schnittstelle enthält.

Siehe auch

Konzepte

Dual Interfaces and ATL