Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Den här klassen tillhandahåller implementeringar av IDispatch metoderna.
Viktigt!
Den här klassen och dess medlemmar kan inte användas i program som körs i Windows Runtime.
Syntax
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>
Parameterar
nID
En unik identifierare för källobjektet. När IDispEventImpl är basklassen för en sammansatt kontroll använder du resurs-ID:t för den önskade inneslutna kontrollen för den här parametern. I andra fall använder du ett godtyckligt positivt heltal.
T
Användarens klass, som härleds från IDispEventImpl.
pdiid
Pekaren till IID för händelsen dispinterface som implementeras av den här klassen. Det här gränssnittet måste definieras i typbiblioteket som anges av plibid, wMajoroch wMinor.
plibid
En pekare till typbiblioteket som definierar det dispatch-gränssnitt som pekas på av pdiid. Om &GUID_NULLläses typbiblioteket in från objektet som hämtar händelserna.
wMajor
Huvudversionen av typbiblioteket. Standardvärdet är 0.
wMinor
Delversionen av typbiblioteket. Standardvärdet är 0.
tihclass
Klassen som används för att hantera typinformationen för T. Standardvärdet är en klass av typen CComTypeInfoHolder. Du kan dock åsidosätta den här mallparametern genom att ange en klass av en annan typ än CComTypeInfoHolder.
Medlemmar
Offentliga typedefs
| Namn | Beskrivning |
|---|---|
IDispEventImpl::_tihclass |
Klassen som används för att hantera typinformationen. Som standard . CComTypeInfoHolder |
Offentliga konstruktorer
| Namn | Beskrivning |
|---|---|
IDispEventImpl::IDispEventImpl |
Konstruktorn. |
Offentliga metoder
| Namn | Beskrivning |
|---|---|
IDispEventImpl::GetFuncInfoFromId |
Letar upp funktionsindexet för den angivna dispatch-identifieraren. |
IDispEventImpl::GetIDsOfNames |
Mappar en enskild medlem och en valfri uppsättning argumentnamn till en motsvarande uppsättning heltal DISPID. |
IDispEventImpl::GetTypeInfo |
Hämtar typinformationen för ett objekt. |
IDispEventImpl::GetTypeInfoCount |
Hämtar antalet typinformationsgränssnitt. |
IDispEventImpl::GetUserDefinedType |
Hämtar den grundläggande typen av en användardefinierad typ. |
Anmärkningar
IDispEventImpl tillhandahåller ett sätt att implementera en händelse som inte används utan att du behöver ange implementeringskod för varje metod/händelse i gränssnittet.
IDispEventImpl tillhandahåller implementeringar av IDispatch metoderna. Du behöver bara tillhandahålla implementeringar för de händelser som du är intresserad av att hantera.
IDispEventImpl fungerar tillsammans med mappningen för händelsemottagaren i klassen för att dirigera händelser till lämplig hanteringsfunktion. Så här använder du den här klassen:
Lägg till ett makro eller SINK_ENTRY ett SINK_ENTRY_EX makro på kartan för händelsemottagaren för varje händelse på varje objekt som du vill hantera. När du använder IDispEventImpl som basklass för en sammansatt kontroll kan du anropa AtlAdviseSinkMap för att upprätta och bryta anslutningen till händelsekällorna för alla poster i händelsemottagarens karta. I andra fall, eller för större kontroll, anropar DispEventAdvise du för att upprätta anslutningen mellan källobjektet och basklassen. Anropa DispEventUnadvise för att bryta anslutningen.
Du måste härleda från IDispEventImpl (med ett unikt värde för nID) för varje objekt som du behöver hantera händelser för. Du kan återanvända basklassen genom att ta bort konfigurationen mot ett källobjekt och sedan avråda från ett annat källobjekt, men det maximala antalet källobjekt som kan hanteras av ett enskilt objekt i taget begränsas av antalet IDispEventImpl basklasser.
IDispEventImpl innehåller samma funktioner som IDispEventSimpleImpl, förutom att det hämtar typinformation om gränssnittet från ett typbibliotek i stället för att det tillhandahålls som en pekare till en _ATL_FUNC_INFO struktur. Använd IDispEventSimpleImpl när du inte har ett typbibliotek som beskriver händelsegränssnittet eller vill undvika de kostnader som är kopplade till att använda typbiblioteket.
Anmärkning
IDispEventImpl och IDispEventSimpleImpl ge sin egen implementering av IUnknown::QueryInterface att göra det möjligt för varje IDispEventImpl basklass IDispEventSimpleImpl att fungera som en separat COM-identitet samtidigt som den ger direkt åtkomst till klassmedlemmar i ditt huvudsakliga COM-objekt.
CE ATL-implementering av ActiveX-händelsemottagare stöder endast returvärden av typen HRESULT eller void från dina händelsehanterarmetoder. Alla andra returvärden stöds inte och dess beteende är odefinierat.
Mer information finns i Stöd IDispEventImplför .
Arvshierarki
_IDispEvent
_IDispEventLocator
IDispEventImpl
Kravspecifikation
rubrik:atlcom.h
IDispEventImpl::GetFuncInfoFromId
Letar upp funktionsindexet för den angivna dispatch-identifieraren.
HRESULT GetFuncInfoFromId(
const IID& iid,
DISPID dispidMember,
LCID lcid,
_ATL_FUNC_INFO& info);
Parameterar
iid
[i] En referens till funktionens ID.
dispidMember
[i] Funktionens sändnings-ID.
lcid
[i] Språkkontexten för funktions-ID:t.
info
[i] Strukturen som anger hur funktionen anropas.
Returvärde
Ett standardvärde HRESULT .
IDispEventImpl::GetIDsOfNames
Mappar en enskild medlem och en valfri uppsättning argumentnamn till en motsvarande uppsättning heltal DISPID, som kan användas vid efterföljande anrop till IDispatch::Invoke.
STDMETHOD(GetIDsOfNames)(
REFIID riid,
LPOLESTR* rgszNames,
UINT cNames,
LCID lcid,
DISPID* rgdispid);
Anmärkningar
Se IDispatch::GetIDsOfNames i Windows SDK.
IDispEventImpl::GetTypeInfo
Hämtar typinformationen för ett objekt, som sedan kan användas för att hämta typinformationen för ett gränssnitt.
STDMETHOD(GetTypeInfo)(
UINT itinfo,
LCID lcid,
ITypeInfo** pptinfo);
IDispEventImpl::GetTypeInfoCount
Hämtar antalet typinformationsgränssnitt som ett objekt tillhandahåller (antingen 0 eller 1).
STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);
Anmärkningar
Se IDispatch::GetTypeInfoCount i Windows SDK.
IDispEventImpl::GetUserDefinedType
Hämtar den grundläggande typen av en användardefinierad typ.
VARTYPE GetUserDefinedType(
ITypeInfo* pTI,
HREFTYPE hrt);
Parameterar
pTI
[i] En pekare till gränssnittet ITypeInfo som innehåller den användardefinierade typen.
hrt
[i] Ett handtag till den typbeskrivning som ska hämtas.
Returvärde
Typ av variant.
Anmärkningar
Se även ITypeInfo::GetRefTypeInfo.
IDispEventImpl::IDispEventImpl
Konstruktorn. Lagrar värdena för klassmallsparametrarna plibid, pdiid, wMajoroch wMinor.
IDispEventImpl();
IDispEventImpl::_tihclass
Den här typedef är en instans av klassmallparametern tihclass.
typedef tihclass _tihclass;
Anmärkningar
Som standard är CComTypeInfoHolderklassen .
CComTypeInfoHolder hanterar typinformationen för klassen.
Se även
_ATL_FUNC_INFO Struktur
IDispatchImpl klass
IDispEventSimpleImpl klass
SINK_ENTRY
SINK_ENTRY_EX
SINK_ENTRY_INFO
översikt över -klass