Sdílet prostřednictvím


IDispatchImpl – třída

Poskytuje výchozí implementaci pro IDispatch část duálního rozhraní.

Důležité

Tuto třídu a její členy nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.

Syntaxe

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

Parametry

T
[v] Duální rozhraní.

piid
[v] Ukazatel na IID T.

plibid
[v] Ukazatel na LIBID knihovny typů, která obsahuje informace o rozhraní. Ve výchozím nastavení se předává knihovna typů na úrovni serveru.

wMajor
[v] Hlavní verze knihovny typů. Ve výchozím nastavení je hodnota 1.

wMinor
[v] Podverze knihovny typů. Ve výchozím nastavení je hodnota 0.

tihclass
[v] Třída sloužící ke správě informací o typu pro T. Ve výchozím nastavení je CComTypeInfoHolderhodnota .

Členové

Veřejné konstruktory

Název Popis
IDispatchImpl::IDispatchImpl Konstruktor Volá AddRef chráněnou členovou proměnnou, která spravuje informace o typu pro duální rozhraní. Destruktor volá Release.

Veřejné metody

Název Popis
IDispatchImpl::GetIDsOfNames Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.
IDispatchImpl::GetTypeInfo Načte informace o typu pro duální rozhraní.
IDispatchImpl::GetTypeInfoCount Určuje, zda jsou pro duální rozhraní k dispozici informace o typu.
IDispatchImpl::Invoke Poskytuje přístup k metodám a vlastnostem vystaveným duálním rozhraním.

Poznámky

IDispatchImpl poskytuje výchozí implementaci pro IDispatch část jakéhokoli duálního rozhraní objektu. Duální rozhraní je odvozeno a IDispatch používá pouze typy kompatibilní se službou Automation. Podobně jako dispinterface duální rozhraní podporuje ranou vazbu a pozdní vazbu; Duální rozhraní však podporuje také vazby vtable.

Následující příklad ukazuje typickou implementaci 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>

Ve výchozím nastavení IDispatchImpl třída vyhledá informace o typu T v registru. K implementaci neregistrovaného rozhraní můžete použít IDispatchImpl třídu bez přístupu k registru pomocí předdefinovaného čísla verze. Pokud vytvoříte IDispatchImpl objekt, který má 0xFFFF jako hodnotu pro wMajor a 0xFFFF jako hodnotu pro wMinor, IDispatchImpl třída načte knihovnu typů ze souboru .dll místo registru.

IDispatchImpl obsahuje statický člen typu CComTypeInfoHolder , který spravuje informace o typu pro duální rozhraní. Pokud máte více objektů, které implementují stejné duální rozhraní, použije se pouze jedna instance CComTypeInfoHolder .

Hierarchie dědičnosti

T

IDispatchImpl

Požadavky

Hlavička: atlcom.h

IDispatchImpl::GetIDsOfNames

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.

STDMETHOD(GetIDsOfNames)(
    REFIID riid,
    LPOLESTR* rgszNames,
    UINT cNames,
    LCID lcid,
    DISPID* rgdispid);

Poznámky

Viz IDispatch::GetIDsOfNames v sadě Windows SDK.

IDispatchImpl::GetTypeInfo

Načte informace o typu pro duální rozhraní.

STDMETHOD(GetTypeInfo)(
    UINT itinfo,
    LCID lcid,
    ITypeInfo** pptinfo);

Poznámky

Viz IDispatch::GetTypeInfo v sadě Windows SDK.

IDispatchImpl::GetTypeInfoCount

Určuje, zda jsou pro duální rozhraní k dispozici informace o typu.

STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);

Poznámky

Viz IDispatch::GetTypeInfoCount v sadě Windows SDK.

IDispatchImpl::IDispatchImpl

Konstruktor Volá AddRef chráněnou členovou proměnnou, která spravuje informace o typu pro duální rozhraní. Destruktor volá Release.

IDispatchImpl();

IDispatchImpl::Invoke

Poskytuje přístup k metodám a vlastnostem vystaveným duálním rozhraním.

STDMETHOD(Invoke)(
    DISPID dispidMember,
    REFIID riid,
    LCID lcid,
    WORD wFlags,
    DISPPARAMS* pdispparams,
    VARIANT* pvarResult,
    EXCEPINFO* pexcepinfo,
    UINT* puArgErr);

Poznámky

Viz IDispatch ::Invoke v sadě Windows SDK.

Viz také

Přehled třídy