IDispEventSimpleImpl – třída
Tato třída poskytuje implementace IDispatch
metod bez získání informací o typu z knihovny typů.
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>
class ATL_NO_VTABLE IDispEventSimpleImpl : public _IDispEventLocator<nID, pdiid>
Parametry
Nid
Jedinečný identifikátor zdrojového objektu. Pokud IDispEventSimpleImpl
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 IDispEventSimpleImpl
.
pdiid
Ukazatel na IID dispinterface události implementované touto třídou.
Členové
Veřejné metody
Název | Popis |
---|---|
IDispEventSimpleImpl::Radte | Vytvoří připojení s výchozím zdrojem událostí. |
IDispEventSimpleImpl::D ispEventAdvise | Vytvoří připojení ke zdroji události. |
IDispEventSimpleImpl::D ispEventUnadvise | Přeruší spojení se zdrojem událostí. |
IDispEventSimpleImpl::GetIDsOfNames | Vrátí E_NOTIMPL. |
IDispEventSimpleImpl::GetTypeInfo | Vrátí E_NOTIMPL. |
IDispEventSimpleImpl::GetTypeInfoCount | Vrátí E_NOTIMPL. |
IDispEventSimpleImpl::Invoke | Volá obslužné rutiny událostí uvedené v mapě jímky událostí. |
IDispEventSimpleImpl::Unadvise | Přeruší spojení s výchozím zdrojem událostí. |
Poznámky
IDispEventSimpleImpl
poskytuje způsob implementace dispinterface události bez nutnosti zadat kód implementace pro každou metodu nebo událost v tomto rozhraní. IDispEventSimpleImpl
poskytuje implementace IDispatch
metod. Pro události, které vás zajímají, stačí zadat pouze implementace.
IDispEventSimpleImpl
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 do mapy jímky událostí SINK_ENTRY_INFO makro pro každou událost u každého objektu, který chcete zpracovat.
Zadejte informace o typu pro každou událost předáním ukazatele na _ATL_FUNC_INFO strukturu jako parametr pro každou položku. Na platformě
_ATL_FUNC_INFO.cc
x86 musí být hodnota CC_CDECL metodou volání funkce zpětného volání __stdcall.Volání DispEventAdvise pro navázání spojení 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 IDispEventSimpleImpl
(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 IDispEventSimpleImpl
základních tříd.
IDispEventSimplImpl
poskytuje stejné funkce jako IDispEventImpl, kromě toho, že nezíská informace o typu rozhraní z knihovny typů. Průvodci generují kód pouze na IDispEventImpl
základě , ale můžete ho použít IDispEventSimpleImpl
přidáním kódu ručně. 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
poskytněte vlastní implementaci IUnknown::QueryInterface
, která umožňuje, aby každá IDispEventImpl
nebo 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
IDispEventSimpleImpl
Požadavky
Hlavička: atlcom.h
IDispEventSimpleImpl::Radte
Voláním této metody navážete připojení ke zdroji událostí reprezentované pUnk.
HRESULT Advise(IUnknown* pUnk);
Parametry
punk
[v] Ukazatel na IUnknown
rozhraní zdrojového objektu události.
Návratová hodnota
S_OK nebo jakákoli hodnota HRESULT selhání.
Poznámky
Po navázání připojení se události aktivované z pUnk přesměrují na obslužné rutiny ve vaší třídě prostřednictvím mapy jímky událostí.
Poznámka:
Pokud vaše třída je odvozena z více IDispEventSimpleImpl
tříd, budete muset nejednoznačit volání této metody nastavením rozsahu volání s konkrétní základní třídou, kterou vás zajímá.
Advise
vytvoří připojení k výchozímu zdroji událostí, získá IID výchozího zdroje událostí objektu podle AtlGetObjectSourceInterface.
IDispEventSimpleImpl::D ispEventAdvise
Voláním této metody navážete připojení ke zdroji událostí reprezentované pUnk.
HRESULT DispEventAdvise(IUnknown* pUnk const IID* piid);
Parametry
punk
[v] Ukazatel na IUnknown
rozhraní zdrojového objektu události.
piid
Ukazatel na IDENTIFIKÁTOR IID zdrojového objektu události.
Návratová hodnota
S_OK nebo jakákoli hodnota HRESULT selhání.
Poznámky
Následně se události aktivované z pUnk přesměrují na obslužné rutiny ve vaší třídě prostřednictvím mapy jímky událostí.
Poznámka:
Pokud vaše třída je odvozena z více IDispEventSimpleImpl
tříd, budete muset nejednoznačit volání této metody nastavením rozsahu volání s konkrétní základní třídou, kterou vás zajímá.
DispEventAdvise
vytvoří spojení se zdrojem událostí zadaným v pdiid
.
IDispEventSimpleImpl::D ispEventUnadvise
Přeruší spojení se zdrojem událostí reprezentovaným pUnkem.
HRESULT DispEventUnadvise(IUnknown* pUnk const IID* piid);
Parametry
punk
[v] Ukazatel na IUnknown
rozhraní zdrojového objektu události.
piid
Ukazatel na IDENTIFIKÁTOR IID zdrojového objektu události.
Návratová hodnota
S_OK nebo jakákoli hodnota HRESULT selhání.
Poznámky
Po přerušení připojení už nebudou události směrovány na funkce obslužné rutiny uvedené v mapě jímky událostí.
Poznámka:
Pokud vaše třída je odvozena z více IDispEventSimpleImpl
tříd, budete muset nejednoznačit volání této metody nastavením rozsahu volání s konkrétní základní třídou, kterou vás zajímá.
DispEventAdvise
přeruší spojení, které bylo vytvořeno se zdrojem událostí zadaným v pdiid
.
IDispEventSimpleImpl::GetIDsOfNames
Tato implementace návratových IDispatch::GetIDsOfNames
E_NOTIMPL.
STDMETHOD(GetIDsOfNames)(
REFIID /* riid */,
LPOLESTR* /* rgszNames */,
UINT /* cNames */,
LCID /* lcid */,
DISPID* /* rgdispid */);
Poznámky
Viz IDispatch::GetIDsOfNames v sadě Windows SDK.
IDispEventSimpleImpl::GetTypeInfo
Tato implementace návratových IDispatch::GetTypeInfo
E_NOTIMPL.
STDMETHOD(GetTypeInfo)(
UINT /* itinfo */,
LCID /* lcid */,
ITypeInfo** /* pptinfo */);
Poznámky
Viz IDispatch::GetTypeInfo v sadě Windows SDK.
IDispEventSimpleImpl::GetTypeInfoCount
Tato implementace návratových IDispatch::GetTypeInfoCount
E_NOTIMPL.
STDMETHOD(GetTypeInfoCount)(UINT* /* pctinfo */);
Poznámky
Viz IDispatch::GetTypeInfoCount v sadě Windows SDK.
IDispEventSimpleImpl::Invoke
Tato implementace IDispatch::Invoke
volá obslužné rutiny událostí uvedené v mapě jímky událostí.
STDMETHOD(Invoke)(
DISPID dispidMember,
REFIID /* riid */,
LCID lcid,
WORD /* wFlags */,
DISPPARMS* pdispparams,
VARIANT* pvarResult,
EXCEPINFO* /* pexcepinfo */,
UINT* /* puArgErr */);
Poznámky
Viz IDispatch::Invoke.
IDispEventSimpleImpl::Unadvise
Přeruší spojení se zdrojem událostí reprezentovaným pUnkem.
HRESULT Unadvise(IUnknown* pUnk);
Parametry
punk
[v] Ukazatel na IUnknown
rozhraní zdrojového objektu události.
Návratová hodnota
S_OK nebo jakákoli hodnota HRESULT selhání.
Poznámky
Po přerušení připojení už nebudou události směrovány na funkce obslužné rutiny uvedené v mapě jímky událostí.
Poznámka:
Pokud vaše třída je odvozena z více IDispEventSimpleImpl
tříd, budete muset nejednoznačit volání této metody nastavením rozsahu volání s konkrétní základní třídou, kterou vás zajímá.
Unadvise
přeruší spojení, které bylo vytvořeno s výchozím zdrojem událostí zadaným v pdiid
.
Unavise
přeruší spojení s výchozím zdrojem událostí, získá IID výchozího zdroje událostí objektu podle atlGetObjectSourceInterface.
Viz také
_ATL_FUNC_INFO – struktura
IDispatchImpl – třída
IDispEventImpl – třída
SINK_ENTRY_INFO
Přehled třídy