Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Biedt een standaard implementatie voor het IDispatch deel van een dubbele interface.
Belangrijk
Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.
Syntaxis
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
Parameterwaarden
T
[in] Een dubbele interface.
piid
[in] Een aanwijzer naar de IID van T.
plibid
[in] Een aanwijzer naar de LIBID van de typebibliotheek die informatie over de interface bevat. Standaard wordt de bibliotheek op serverniveau doorgegeven.
wMajor
[in] De primaire versie van de typebibliotheek. De waarde is standaard 1.
wMinor
[in] De secundaire versie van de typebibliotheek. De waarde is standaard 0.
tihclass
[in] De klasse die wordt gebruikt voor het beheren van de typegegevens voor T. Standaard is CComTypeInfoHolderde waarde .
Leden
Openbare constructors
| Naam | Description |
|---|---|
| IDispatchImpl::IDispatchImpl | De constructor. Roept AddRef de beveiligde lidvariabele aan waarmee de typegegevens voor de dubbele interface worden beheerd. De destructor roept Releaseaan. |
Openbare methoden
| Naam | Description |
|---|---|
| IDispatchImpl::GetIDsOfNames | Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's. |
| IDispatchImpl::GetTypeInfo | Haalt de typegegevens voor de dubbele interface op. |
| IDispatchImpl::GetTypeInfoCount | Bepaalt of er typegegevens beschikbaar zijn voor de dubbele interface. |
| IDispatchImpl::Invoke | Biedt toegang tot de methoden en eigenschappen die worden weergegeven door de dubbele interface. |
Opmerkingen
IDispatchImpl biedt een standaard implementatie voor het IDispatch deel van een dubbele interface op een object. Een dual-interface is afgeleid van en maakt alleen gebruik van IDispatch automation-compatibele typen. Net als bij een dispinterface ondersteunt een dubbele interface vroege binding en late binding; Een dubbele interface biedt echter ook ondersteuning voor vtable-binding.
In het volgende voorbeeld ziet u een typische implementatie van 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>
Standaard zoekt de IDispatchImpl klasse de typegegevens voor T in het register op. Als u een niet-geregistreerde interface wilt implementeren, kunt u de IDispatchImpl klasse gebruiken zonder het register te openen met behulp van een vooraf gedefinieerd versienummer. Als u een IDispatchImpl object maakt met 0xFFFF als de waarde voor wMajor en 0xFFFF als de waarde voor wMinor, haalt de IDispatchImpl klasse de typebibliotheek op uit het .dll bestand in plaats van het register.
IDispatchImpl bevat een statisch lid van het type CComTypeInfoHolder dat de typegegevens voor de dubbele interface beheert. Als u meerdere objecten hebt die dezelfde dubbele interface implementeren, wordt er slechts één exemplaar van CComTypeInfoHolder gebruikt.
Overnamehiërarchie
T
IDispatchImpl
Requirements
Koptekst: atlcom.h
IDispatchImpl::GetIDsOfNames
Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.
STDMETHOD(GetIDsOfNames)(
REFIID riid,
LPOLESTR* rgszNames,
UINT cNames,
LCID lcid,
DISPID* rgdispid);
Opmerkingen
Zie IDispatch::GetIDsOfNames in de Windows SDK.
IDispatchImpl::GetTypeInfo
Haalt de typegegevens voor de dubbele interface op.
STDMETHOD(GetTypeInfo)(
UINT itinfo,
LCID lcid,
ITypeInfo** pptinfo);
Opmerkingen
Zie IDispatch::GetTypeInfo in de Windows SDK.
IDispatchImpl::GetTypeInfoCount
Bepaalt of er typegegevens beschikbaar zijn voor de dubbele interface.
STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);
Opmerkingen
Zie IDispatch::GetTypeInfoCount in de Windows SDK.
IDispatchImpl::IDispatchImpl
De constructor. Roept AddRef de beveiligde lidvariabele aan waarmee de typegegevens voor de dubbele interface worden beheerd. De destructor roept Releaseaan.
IDispatchImpl();
IDispatchImpl::Invoke
Biedt toegang tot de methoden en eigenschappen die worden weergegeven door de dubbele interface.
STDMETHOD(Invoke)(
DISPID dispidMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS* pdispparams,
VARIANT* pvarResult,
EXCEPINFO* pexcepinfo,
UINT* puArgErr);
Opmerkingen
Zie IDispatch::Invoke in de Windows SDK.