Sdílet prostřednictvím


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 IDispEventImplzá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.

Unavisepř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