Share via


IDispatchImpl-klasse

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.

Zie ook

Overzicht van klassen