Třída IDispEventImpl
Tato třída poskytuje implementace IDispatch metod.
Důležité |
---|
Tato třída a jeho členy nelze použít v aplikacích, které v . |
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 pro zdrojový objekt.Při IDispEventImpl je základní třída pro složený ovládací prvek použijte pro tento parametr ID zdroje požadovaný ovládací prvek obsažený.V ostatních případech použijte libovolné kladné celé číslo.T
Třídu uživatele, která je odvozena od IDispEventImpl .pdiid
Ukazatel na identifikátor IID událostí omezené rozhraní IDispatch touto třídou implementována.Toto rozhraní musí být definovány v knihovně typů symbolem plibid , wMajor , a wMinor .plibid
Ukazatel na knihovnu typů, který definuje rozhraní odeslání odkazuje pdiid .Pokud & GUID_NULL, bude načten typ knihovny z objektu události zasažena.wMajor
Hlavní verze knihovny typů.Výchozí hodnota je 0.wMinor
Dílčí verze knihovny typů.Výchozí hodnota je 0.tihclass
Třídy lze spravovat informace o typu T .Výchozí hodnota je typu třídy CComTypeInfoHolder ; Tento parametr šablony však můžete přepsat zadáním jiné než třídy typu CComTypeInfoHolder .
Členy
Funkce TypeDef veřejné
Název |
Description |
---|---|
Třída, která slouží ke správě informací o typu.Ve výchozím nastavení CComTypeInfoHolder . |
Veřejné konstruktory
Název |
Description |
---|---|
Konstruktor. |
Veřejné metody
Název |
Description |
---|---|
Vyhledá funkce index pro odeslání zadaný identifikátor. |
|
Odpovídající sadu celočíselné hodnoty dispID mapuje jeden člen a volitelnou sadu názvy argumentů. |
|
Načte informace o typu objektu. |
|
Obnoví informace rozhraní typu číslo. |
|
Získá základní typ typ definovaný uživatelem. |
Poznámky
IDispEventImplposkytuje způsob provádění omezené rozhraní IDispatch událostí bez nutnosti zadat kód provedení každé metody nebo události tohoto rozhraní.IDispEventImplposkytuje implementace IDispatch metod.Potřebujete poskytnout implementace událostí zajímají ve zpracování.
IDispEventImplspolupracuje s mapy jímky událostí ve své třídě na trase události funkci rutině.Pomocí této třídy:
Přidat SINK_ENTRY nebo SINK_ENTRY_EX makro mapy jímky událostí pro každou událost pro každý objekt, který chcete zpracovat.Při použití IDispEventImpl jako základní třída složené řízení volání AtlAdviseSinkMap a zrušit spojení s zdroje událostí pro všechny položky jímky událostí mapy.V ostatních případech nebo větší kontrolu, volání DispEventAdvise připojení mezi zdrojový objekt a základní třídy.Volání DispEventUnadvise přerušte spojení.
Musí být odvozena od IDispEventImpl (pomocí jedinečnou hodnotu pro nID ) pro každý objekt, pro který potřebujete zpracovávat události.Můžete znovu použít základní třídy podle unadvising proti jeden zdrojový objekt radí pak proti různých zdrojového objektu, ale maximální počet zdrojové objekty, které mohou být zpracovány prostřednictvím jednoho objektu v jednom okamžiku je omezen počet IDispEventImpl základní třídy.
IDispEventImplnabízí stejné funkce jako IDispEventSimpleImpl, s výjimkou získává z knihovny typů místo je zadáno jako ukazatel na typ informace o rozhraní _ATL_FUNC_INFO struktury.Použití IDispEventSimpleImpl při není mít knihovnu typů rozhraní události popisující nebo nechcete režijní náklady související s použitím knihovny typů.
[!POZNÁMKA]
IDispEventImpla IDispEventSimpleImpl poskytují vlastní provádění IUnknown::QueryInterface každé povolení IDispEventImpl a IDispEventSimpleImpl základní třída jednat jako zvláštní identity COM zároveň v hlavní objekt modelu COM umožňuje přímý přístup k členy třídy.
CE ATL provádění ActiveX jímky událostí podporuje pouze hodnoty typu HRESULT nebo zrušit z vaší metody zpracování události; ostatní vrácená hodnota není podporována a jeho chování nedefinovaná.
Další informace naleznete v tématu Podpůrné IDispEventImpl.
Hierarchii dědičnosti
_IDispEvent
_IDispEventLocator
IDispEventImpl
Požadavky
Záhlaví: atlcom.h