Sdílet prostřednictvím


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

IDispEventSimpleImpl

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 CComTypeInfoHoldertří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