Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese Klasse stellt Implementierungen der IDispatch Methoden bereit.
Wichtig
Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.
Syntax
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 es sich um die Basisklasse für ein zusammengesetztes Steuerelement handelt, verwenden Sie die Ressourcen-ID des gewünschten enthaltenen Steuerelements für diesen Parameter. Verwenden Sie in anderen Fällen eine beliebige positive ganze Zahl.
T
Die Klasse des Benutzers, die von IDispEventImpl.
pdiid
Der Zeiger auf die IID der ereignisdispinterface, die von dieser Klasse implementiert wird. Diese Schnittstelle muss in der Typbibliothek definiert werden, die durch plibid, wMajorund wMinor.
plibid
Ein Zeiger auf die Typbibliothek, die die Verteilerschnittstelle definiert, auf die pdiidverwiesen wird. Wenn &GUID_NULLdie Typbibliothek aus der Objektbeschaffung geladen wird, werden die Ereignisse geladen.
wMajor
Die Hauptversion der Typbibliothek Der Standardwert ist 0.
wMinor
Die Nebenversion der Typbibliothek Der Standardwert ist 0.
tihclass
Die Klasse, die zum Verwalten der Typinformationen für T. Der Standardwert ist eine Klasse vom Typ CComTypeInfoHolder; Sie können diesen Vorlagenparameter jedoch überschreiben, indem Sie eine Klasse eines anderen Typs als CComTypeInfoHolder.
Member
Öffentliche Typedefs
| Name | Beschreibung |
|---|---|
IDispEventImpl::_tihclass |
Die Klasse, die zum Verwalten der Typinformationen verwendet wird. Standardmäßig CComTypeInfoHolder. |
Öffentliche Konstruktoren
| Name | Beschreibung |
|---|---|
IDispEventImpl::IDispEventImpl |
Der Konstruktor. |
Öffentliche Methoden
| Name | Beschreibung |
|---|---|
IDispEventImpl::GetFuncInfoFromId |
Sucht den Funktionsindex für den angegebenen Verteilerbezeichner. |
IDispEventImpl::GetIDsOfNames |
Ordnet ein einzelnes Element und einen optionalen Satz von Argumentnamen einem entsprechenden Satz ganzzahliger DISPIDWerte 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 bietet eine Möglichkeit zum Implementieren einer Ereignisdispinterface, ohne dass Sie Implementierungscode für jede Methode/jedes Ereignis auf dieser Schnittstelle bereitstellen müssen.
IDispEventImpl stellt Implementierungen der IDispatch Methoden bereit. Sie müssen nur Implementierungen für die Ereignisse bereitstellen, die Sie behandeln möchten.
IDispEventImpl arbeitet in Verbindung mit der Ereignissenkenzuordnung in Ihrer Klasse, um Ereignisse an die entsprechende Handlerfunktion weiterzuleiten. So verwenden Sie diese Klasse:
Fügen Sie der Ereignissenkezuordnung für jedes Ereignis jedes Objekts, das Sie behandeln möchten, ein SINK_ENTRY Makro hinzu SINK_ENTRY_EX . Wenn Sie eine Basisklasse eines zusammengesetzten Steuerelements verwenden IDispEventImpl , können Sie aufrufen AtlAdviseSinkMap , um die Verbindung mit den Ereignisquellen für alle Einträge in der Ereignissenkenzuordnung herzustellen und zu unterbrechen. In anderen Fällen oder für größere Kontrolle rufen Sie auf DispEventAdvise , um die Verbindung zwischen dem Quellobjekt und der Basisklasse herzustellen. Rufen Sie auf DispEventUnadvise , um die Verbindung zu unterbrechen.
Sie müssen von IDispEventImpl (mit einem eindeutigen Wert für ) für nIDjedes Objekt abgeleitet werden, für das Sie Ereignisse behandeln müssen. Sie können die Basisklasse wiederverwenden, indem Sie die Bereitstellung für ein Quellobjekt aufheben und dann gegen ein anderes Quellobjekt beraten. Die maximale Anzahl von Quellobjekten, die von einem einzelnen Objekt gleichzeitig behandelt werden können, ist jedoch durch die Anzahl der IDispEventImpl Basisklassen begrenzt.
IDispEventImpl bietet die gleiche Funktionalität wie IDispEventSimpleImpl, mit der Ausnahme, dass typinformationen über die Schnittstelle aus einer Typbibliothek abgerufen werden, anstatt sie als Zeiger auf eine _ATL_FUNC_INFO Struktur bereitgestellt zu haben. Verwenden Sie diese Verwendung IDispEventSimpleImpl , wenn Sie keine Typbibliothek haben, die die Ereignisschnittstelle beschreibt oder den mit der Typbibliothek verbundenen Aufwand vermeiden möchten.
Hinweis
IDispEventImpl und IDispEventSimpleImpl stellen eine eigene Implementierung bereit, mit der IUnknown::QueryInterface jede IDispEventImpl und IDispEventSimpleImpl die Basisklasse als separate COM-Identität fungiert und gleichzeitig direkten Zugriff auf Klassenmember in Ihrem COM-Hauptobjekt ermöglicht.
Die CE ATL-Implementierung von ActiveX-Ereignissenken unterstützt nur Rückgabewerte vom Typ HRESULT oder void aus den Ereignishandlermethoden. Jeder andere Rückgabewert wird nicht unterstützt, und sein Verhalten ist nicht definiert.
Weitere Informationen finden Sie unter "Unterstützen IDispEventImpl".
Vererbungshierarchie
_IDispEvent
_IDispEventLocator
IDispEventImpl
Anforderungen
Kopfball:atlcom.h
IDispEventImpl::GetFuncInfoFromId
Sucht den Funktionsindex für den angegebenen Verteilerbezeichner.
HRESULT GetFuncInfoFromId(
const IID& iid,
DISPID dispidMember,
LCID lcid,
_ATL_FUNC_INFO& info);
Parameter
iid
[in] Ein Verweis auf die ID der Funktion.
dispidMember
[in] Die Verteiler-ID der Funktion.
lcid
[in] Der Gebietsschemakontext der Funktions-ID.
info
[in] Die Struktur, die angibt, wie die Funktion aufgerufen wird.
Rückgabewert
Ein Standardwert HRESULT .
IDispEventImpl::GetIDsOfNames
Ordnet ein einzelnes Element und einen optionalen Satz von Argumentnamen einem entsprechenden Satz ganzzahliger DISPIDWerte zu, die für nachfolgende Aufrufe IDispatch::Invokeverwendet werden können.
STDMETHOD(GetIDsOfNames)(
REFIID riid,
LPOLESTR* rgszNames,
UINT cNames,
LCID lcid,
DISPID* rgdispid);
Hinweise
Siehe IDispatch::GetIDsOfNames im Windows SDK.
IDispEventImpl::GetTypeInfo
Ruft die Typinformationen für ein Objekt ab, die dann zum Abrufen der Typinformationen für eine Schnittstelle verwendet werden können.
STDMETHOD(GetTypeInfo)(
UINT itinfo,
LCID lcid,
ITypeInfo** pptinfo);
IDispEventImpl::GetTypeInfoCount
Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).
STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);
Hinweise
Siehe IDispatch::GetTypeInfoCount im Windows SDK.
IDispEventImpl::GetUserDefinedType
Ruft den grundlegenden Typ eines benutzerdefinierten Typs ab.
VARTYPE GetUserDefinedType(
ITypeInfo* pTI,
HREFTYPE hrt);
Parameter
pTI
[in] Ein Zeiger auf die Schnittstelle, die ITypeInfo den benutzerdefinierten Typ enthält.
hrt
[in] Ein Handle für die Typbeschreibung, die abgerufen werden soll.
Rückgabewert
Der Typ der Variante.
Hinweise
Siehe ITypeInfo::GetRefTypeInfo.
IDispEventImpl::IDispEventImpl
Der Konstruktor. Speichert die Werte der Klassenvorlagenparameter plibid, , pdiid, wMajorund wMinor.
IDispEventImpl();
IDispEventImpl::_tihclass
Dieser Typedef ist eine Instanz des Klassenvorlagenparameters tihclass.
typedef tihclass _tihclass;
Hinweise
Standardmäßig ist CComTypeInfoHolderdie Klasse .
CComTypeInfoHolder verwaltet die Typinformationen für die Klasse.
Siehe auch
_ATL_FUNC_INFO Struktur
IDispatchImpl Klasse
IDispEventSimpleImpl Klasse
SINK_ENTRY
SINK_ENTRY_EX
SINK_ENTRY_INFO
Klassenübersicht