IDispEventImpl – třída
Tato třída poskytuje implementace IDispatch
metod.
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 <UINT nID, class T,
const IID* pdiid = &IID_NULL,
const GUID* plibid = &GUID_NULL,
WORD wMajor = 0,
WORD wMinor = 0,
class tihclass = CcomTypeInfoHolder>
class ATL_NO_VTABLE IDispEventImpl : public IDispEventSimpleImpl<nID, T, pdiid>
Parametry
Nid
Jedinečný identifikátor zdrojového objektu. Pokud IDispEventImpl
je základní třídou složeného ovládacího prvku, použijte ID prostředku požadovaného obsaženého ovládacího prvku pro tento parametr. V jiných případech použijte libovolné kladné celé číslo.
T
Třída uživatele, která je odvozena z IDispEventImpl
.
pdiid
Ukazatel na IID dispinterface události implementované touto třídou. Toto rozhraní musí být definováno v knihovně typů označené plibid, wMajor a wMinor.
plibid
Ukazatel na knihovnu typů, která definuje rozhraní dispečera, na které odkazuje pdiid. Pokud &GUID_NULL, knihovna typů se načte z objektu zdroje událostí.
wMajor
Hlavní verze knihovny typů. Výchozí hodnota je 0.
wMinor
Podverze knihovny typů. Výchozí hodnota je 0.
tihclass
Třída sloužící ke správě informací o typu pro T. Výchozí hodnota je třída typu CComTypeInfoHolder
; tento parametr šablony však můžete přepsat poskytnutím třídy jiného typu než CComTypeInfoHolder
.
Členové
Veřejné definice typedef
Název | Popis |
---|---|
IDispEventImpl::_tihclass | Třída použitá ke správě informací o typu. Ve výchozím nastavení . CComTypeInfoHolder |
Veřejné konstruktory
Název | Popis |
---|---|
IDispEventImpl::IDispEventImpl | Konstruktor |
Veřejné metody
Název | Popis |
---|---|
IDispEventImpl::GetFuncInfoFromId | Vyhledá index funkce pro zadaný identifikátor odeslání. |
IDispEventImpl::GetIDsOfNames | Mapuje jeden člen a volitelnou sadu názvů argumentů na odpovídající sadu celočíselného identifikátoru DISPID. |
IDispEventImpl::GetTypeInfo | Načte informace o typu objektu. |
IDispEventImpl::GetTypeInfoCount | Načte počet rozhraní informací o typu. |
IDispEventImpl::GetUserDefinedType | Načte základní typ uživatelem definovaného typu. |
Poznámky
IDispEventImpl
poskytuje způsob implementace dispinterface události bez nutnosti zadat kód implementace pro každou metodu nebo událost v tomto rozhraní. IDispEventImpl
poskytuje implementace IDispatch
metod. Pro události, které vás zajímají, stačí zadat pouze implementace.
IDispEventImpl
funguje ve spojení s mapou jímky událostí ve vaší třídě ke směrování událostí do příslušné funkce obslužné rutiny. Chcete-li použít tuto třídu:
Přidejte SINK_ENTRY nebo SINK_ENTRY_EX makro do mapy jímky událostí pro každou událost na každém objektu, který chcete zpracovat. Při použití IDispEventImpl
jako základní třídy složeného ovládacího prvku můžete volat AtlAdviseSinkMap k navázání a přerušení připojení se zdroji událostí pro všechny položky v mapě jímky události. V jiných případech nebo pro větší kontrolu volejte DispEventAdvise pro navázání připojení mezi zdrojovým objektem a základní třídou. Volání DispEventUnadvise k přerušení připojení.
U každého objektu, pro který potřebujete zpracovat události, musíte odvodit IDispEventImpl
(pomocí jedinečné hodnoty pro nID). Základní třídu můžete znovu použít tak, že před jedním zdrojovým objektem poté doporučíte jiný zdrojový objekt, ale maximální počet zdrojových objektů, které lze zpracovat jedním objektem najednou, je omezen počtem IDispEventImpl
základních tříd.
IDispEventImpl
poskytuje stejné funkce jako IDispEventSimpleImpl, s výjimkou získání informací o typu rozhraní z knihovny typů, a nikoli jako ukazatel na strukturu _ATL_FUNC_INFO . Použijte IDispEventSimpleImpl
, pokud nemáte knihovnu typů popisující rozhraní událostí nebo chcete zabránit režii související s používáním knihovny typů.
Poznámka:
IDispEventImpl
a IDispEventSimpleImpl
poskytují vlastní implementaci IUnknown::QueryInterface
, která umožňuje, aby každá IDispEventImpl
a IDispEventSimpleImpl
základní třída fungovala jako samostatná identita modelu COM a zároveň umožňovala přímý přístup k členům třídy v hlavním objektu COM.
Implementace CE ATL pro jímky událostí ActiveX podporuje pouze návratové hodnoty typu HRESULT nebo void z vašich metod obslužné rutiny událostí; jakákoli jiná návratová hodnota není podporována a její chování není definováno.
Další informace naleznete v tématu Podpora IDispEventImpl.
Hierarchie dědičnosti
_IDispEvent
_IDispEventLocator
IDispEventImpl
Požadavky
Hlavička: atlcom.h
IDispEventImpl::GetFuncInfoFromId
Vyhledá index funkce pro zadaný identifikátor odeslání.
HRESULT GetFuncInfoFromId(
const IID& iid,
DISPID dispidMember,
LCID lcid,
_ATL_FUNC_INFO& info);
Parametry
iid
[v] Odkaz na ID funkce.
dispidMember
[v] ID odeslání funkce.
lcid
[v] Kontext národního prostředí ID funkce.
informace
[v] Struktura označující, jak se funkce volá.
Návratová hodnota
Standardní hodnota HRESULT.
IDispEventImpl::GetIDsOfNames
Mapuje jeden člen a volitelnou sadu názvů argumentů na odpovídající sadu celočíselného identifikátoru DISPID, které lze použít při následných voláních IDispatch::Invoke.
STDMETHOD(GetIDsOfNames)(
REFIID riid,
LPOLESTR* rgszNames,
UINT cNames,
LCID lcid,
DISPID* rgdispid);
Poznámky
Viz IDispatch::GetIDsOfNames v sadě Windows SDK.
IDispEventImpl::GetTypeInfo
Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní.
STDMETHOD(GetTypeInfo)(
UINT itinfo,
LCID lcid,
ITypeInfo** pptinfo);
Poznámky
IDispEventImpl::GetTypeInfoCount
Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).
STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);
Poznámky
Viz IDispatch::GetTypeInfoCount v sadě Windows SDK.
IDispEventImpl::GetUserDefinedType
Načte základní typ uživatelem definovaného typu.
VARTYPE GetUserDefinedType(
ITypeInfo* pTI,
HREFTYPE hrt);
Parametry
Pti
[v] Ukazatel na rozhraní ITypeInfo obsahující uživatelem definovaný typ.
hrt
[v] Popisovač popisu typu, který se má načíst.
Návratová hodnota
Typ varianty.
Poznámky
Viz ITypeInfo::GetRefTypeInfo.
IDispEventImpl::IDispEventImpl
Konstruktor Uloží hodnoty parametrů šablony třídy plibid, pdiid, wMajor a wMinor.
IDispEventImpl();
IDispEventImpl::tihclass
Tento typdef je instance parametru šablony třídy tihclass.
typedef tihclass _tihclass;
Poznámky
Ve výchozím nastavení je CComTypeInfoHolder
třída . CComTypeInfoHolder
spravuje informace o typu třídy.
Viz také
_ATL_FUNC_INFO – struktura
IDispatchImpl – třída
IDispEventSimpleImpl – třída
SINK_ENTRY
SINK_ENTRY_EX
SINK_ENTRY_INFO
Přehled třídy