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 CComTypeInfoHolder
hodnota .
Č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.