IDispatchImpl-Klasse
Stellt eine Standardimplementierung für den IDispatch
Teil einer dualen Schnittstelle bereit.
Wichtig
Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.
Syntax
template<class T,
const IID* piid= &__uuidof(T),
const GUID* plibid = &CAtlModule::m_libid,
WORD wMajor = 1,
WORD wMinor = 0,
class tihclass = CComTypeInfoHolder>
class ATL_NO_VTABLE IDispatchImpl : public T
Parameter
T
[in] Eine duale Schnittstelle.
piid
[in] Ein Zeiger auf die IID von T.
plibid
[in] Ein Zeiger auf die LIBID der Typbibliothek, die Informationen zur Schnittstelle enthält. Standardmäßig wird die Typbibliothek auf Serverebene übergeben.
wMajor
[in] Die Hauptversion der Typbibliothek. Der Standardwert ist 1.
wMinor
[in] Die Nebenversion der Typbibliothek. Der Wert ist standardmäßig 0.
tihclass
[in] Die Klasse, die zum Verwalten der Typinformationen für T verwendet wird. Standardmäßig lautet CComTypeInfoHolder
der Wert .
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
IDispatchImpl::IDispatchImpl | Der Konstruktor. Aufrufe AddRef der geschützten Membervariable, die die Typinformationen für die duale Schnittstelle verwaltet. Der Destruktor ruft Release auf. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
IDispatchImpl::GetIDsOfNames | Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. |
IDispatchImpl::GetTypeInfo | Ruft die Typinformationen für die duale Schnittstelle ab. |
IDispatchImpl::GetTypeInfoCount | Bestimmt, ob Typinformationen für die duale Schnittstelle verfügbar sind. |
IDispatchImpl::Invoke | Bietet Zugriff auf die Methoden und Eigenschaften, die von der dualen Schnittstelle verfügbar gemacht werden. |
Hinweise
IDispatchImpl
stellt eine Standardimplementierung für den IDispatch
Teil einer beliebigen dualen Schnittstelle für ein Objekt bereit. Eine duale Schnittstelle wird von IDispatch
nur automatisierungskompatiblen Typen abgeleitet und verwendet. Wie eine Dispinterface unterstützt eine duale Schnittstelle frühe Bindung und späte Bindung; Eine duale Schnittstelle unterstützt jedoch auch die vtable-Bindung.
Das folgende Beispiel zeigt eine typische Implementierung von IDispatchImpl
.
class ATL_NO_VTABLE CBeeper :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CBeeper, &CLSID_Beeper>,
public IDispatchImpl<IBeeper, &IID_IBeeper, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
Standardmäßig sucht die IDispatchImpl
Klasse die Typinformationen für T in der Registrierung. Um eine nicht registrierte Schnittstelle zu implementieren, können Sie die IDispatchImpl
Klasse verwenden, ohne auf die Registrierung zuzugreifen, indem Sie eine vordefinierte Versionsnummer verwenden. Wenn Sie ein IDispatchImpl
Objekt erstellen, das 0xFFFF als Wert für wMajor und 0xFFFF als Wert für wMinor hat, ruft die IDispatchImpl
Klasse die Typbibliothek aus der .dll Datei anstelle der Registrierung ab.
IDispatchImpl
enthält ein statisches Element vom Typ CComTypeInfoHolder
, das die Typinformationen für die duale Schnittstelle verwaltet. Wenn Sie über mehrere Objekte verfügen, die dieselbe duale Schnittstelle implementieren, wird nur eine Instanz von CComTypeInfoHolder
verwendet.
Vererbungshierarchie
T
IDispatchImpl
Anforderungen
Kopfzeile: atlcom.h
IDispatchImpl::GetIDsOfNames
Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.
STDMETHOD(GetIDsOfNames)(
REFIID riid,
LPOLESTR* rgszNames,
UINT cNames,
LCID lcid,
DISPID* rgdispid);
Hinweise
Siehe "IDispatch::GetIDsOfNames" im Windows SDK.
IDispatchImpl::GetTypeInfo
Ruft die Typinformationen für die duale Schnittstelle ab.
STDMETHOD(GetTypeInfo)(
UINT itinfo,
LCID lcid,
ITypeInfo** pptinfo);
Hinweise
Siehe "IDispatch::GetTypeInfo " im Windows SDK.
IDispatchImpl::GetTypeInfoCount
Bestimmt, ob Typinformationen für die duale Schnittstelle verfügbar sind.
STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);
Hinweise
Siehe IDispatch::GetTypeInfoCount
im Windows SDK.
IDispatchImpl::IDispatchImpl
Der Konstruktor. Aufrufe AddRef
der geschützten Membervariable, die die Typinformationen für die duale Schnittstelle verwaltet. Der Destruktor ruft Release
auf.
IDispatchImpl();
IDispatchImpl::Invoke
Bietet Zugriff auf die Methoden und Eigenschaften, die von der dualen Schnittstelle verfügbar gemacht werden.
STDMETHOD(Invoke)(
DISPID dispidMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS* pdispparams,
VARIANT* pvarResult,
EXCEPINFO* pexcepinfo,
UINT* puArgErr);
Hinweise
Siehe "IDispatch::Invoke " im Windows SDK.