Freigeben über


IDispEventImpl Class

Diese Klasse stellt Implementierungen der IDispatch-Methoden.

Wichtig

Diese Klasse und ihre Member können in Anwendungen nicht verwendet werden, die in Windows-Runtime ausführen.

template < 
UINT nID, 
class T, 
const IID* pdiid= &IID_NULL, 
const GUID* plibid= &GUID_NULL, 
WORD wMajor= 0, 
WORD wMinor= 0, 
class tihclass= CcomTypeInfoHolder 
> 
class ATL_NO_VTABLE IDispEventImpl : 
public IDispEventSimpleImpl<nID, T, pdiid>

Parameter

  • nID
    Ein eindeutiger Bezeichner für das Quellobjekt. Wenn IDispEventImpl die Basisklasse für ein zusammengesetztes Steuerelement ist, verwenden Sie das Ressourcen-ID des gewünschten enthaltenden Steuerelements für diesen Parameter. In anderen Fällen verwenden Sie eine beliebige positive ganze Zahl.

  • T
    Die Klasse des Benutzers, die von IDispEventImpl abgeleitet wird.

  • pdiid
    Der Zeiger auf IID der Ereignisdispatchschnittstelle implementiert von dieser Klasse. Diese Schnittstelle muss in der Typbibliothek definiert sind, die von plibid, wMajor und wMinor angibt.

  • plibid
    Ein Zeiger auf die Typbibliothek, die die Dispatchschnittstelle definiert, wird auf pdiid durch. Wenn &GUID_NULL, die Typbibliothek vom Objektauftreten die Ereignisse geladen wird.

  • wMajor
    Die Hauptversion der Typbibliothek. Der Standardwert ist 0.

  • wMinor
    Die Nebenversion der Typbibliothek. Der Standardwert ist 0.

  • tihclass
    Die Klasse verwendet, um die Typinformationen für T zu verwalten. Der Standardwert ist eine Klasse Typ CComTypeInfoHolder; Sie können jedoch diesen Vorlagenparameter überschreiben, indem Sie eine Klasse anderen Typ als CComTypeInfoHolder bereitstellen.

Mitglieder

Öffentliche Typedefs

Name

Description

IDispEventImpl Class

Die Klasse verwendet, um die Typinformationen zu verwalten. Standardmäßig CComTypeInfoHolder.

Öffentliche Konstruktoren

Name

Description

IDispEventImpl::IDispEventImpl

Der -Konstruktor.

Öffentliche Methoden

Name

Description

IDispEventImpl::GetFuncInfoFromId

Errichtet den Funktionsindex für den angegebenen Dispatchbezeichner.

IDispEventImpl::GetIDsOfNames

Ordnet einen einzelnen Member und einen optionalen Satz Argumentnamen in einen geeigneten Satz von ganzzahligen DISPID zu.

IDispEventImpl::GetTypeInfo

Ruft die Typinformationen für ein Objekt ab.

IDispEventImpl::GetTypeInfoCount

Ruft die Anzahl der Typinformationsschnittstellen ab.

IDispEventImpl::GetUserDefinedType

Ruft den grundlegenden Typ eines benutzerdefinierten Typs ab.

Hinweise

IDispEventImpl stellt eine Methode der Implementierung einer Ereignisdispatchschnittstelle bereit, ohne Sie veranlassen, Implementierungscode für jede Methode/Ereignis für diese Schnittstelle zu erzeugen. IDispEventImpl stellt Implementierungen der IDispatch-Methoden. Sie müssen nur Implementierungen für die Ereignisse stellen, dass Sie bei der Behandlung von Interesse sind.

IDispEventImpl funktioniert in Verbindung mit Ereignissenkenzuordnung in der Klasse, um Ereignisse der entsprechenden Handlerfunktion weiterzuleiten. Um diese Klasse verwenden:

Fügen Sie ein SINK_ENTRY oder SINK_ENTRY_EX-Makro der Ereignissenkenzuordnung für jedes Ereignis auf jedem Objekt hinzu, das Sie behandeln möchten. Wenn Sie IDispEventImpl als Basisklasse zusammengesetztes Steuerelement verwenden, können Sie AtlAdviseSinkMap aufrufen, um die Verbindung mit den Ereignisquellen für alle Senkenzuordnung der Einträge im Ereignishandler zu erstellen und zu unterbrechen. In anderen Argumenten oder für größere Kontrolle, Aufruf DispEventAdvise, um die Verbindung zwischen dem Quellobjekt und der Basisklasse herzustellen. Aufruf DispEventUnadvise, um die Verbindung zu unterbrechen.

Sie müssen von IDispEventImpl (mithilfe eines eindeutigen Werts für nID) für jedes Objekt abgeleitet sind, für das Sie Ereignisse behandeln müssen. Sie können die Basisklasse wiederverwenden, indem Sie für ein Quellobjekt einem anderen Quellobjekt dann abratend von abmelden, aber die maximale Anzahl von Quellobjekte verwendet, die durch ein einzelnes Objekt gleichzeitig verarbeitet werden können, wird durch die Anzahl der IDispEventImpl Basisklassen beschränkt.

IDispEventImpl stellt die gleiche Funktionalität wie, IDispEventSimpleImpl, außer es Typinformation über die Schnittstelle aus einer Typbibliothek anstatt abruft, sie aufweisen, als Zeiger auf eine Struktur _ATL_FUNC_INFORMATION angegeben hat. Verwenden Sie IDispEventSimpleImpl, wenn Sie keine Typbibliothek verfügen, die Ereignisschnittstelle beschreibt oder den Mehraufwand vermeiden möchten, der mit der Anwendung der Typbibliothek zugeordnet ist.

Hinweis

IDispEventImpl und IDispEventSimpleImpl stellen ihre eigene Implementierung von IUnknown::QueryInterface, jede IDispEventImpl und IDispEventSimpleImpl Basisklasse aktiviert, die als separate COM-Identität beim Zugriff auf den Klassenmember im wichtigsten COM-Objekt noch ermöglichen fungiert.

Implementierung CEs ATL von ActiveX-Ereignissenken unterstützt nur Rückgabewerte vom Typ void HRESULT oder aus den Ereignishandlermethoden; anderer Rückgabewert wird nicht unterstützt und sein Verhalten ist nicht definiert.

Weitere Informationen finden Sie unter Unterstützung von IDispEventImpl.

Vererbungshierarchie

_IDispEvent

_IDispEventLocator

IDispEventSimpleImpl

IDispEventImpl

Anforderungen

Header: möchten

Siehe auch

Referenz

_ATL_FUNC_INFO Structure

IDispatchImpl Class

IDispEventSimpleImpl Class

SINK_ENTRY

SINK_ENTRY_EX

SINK_ENTRY_INFO

Weitere Ressourcen

ATL Class Overview