Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Deze klasse biedt implementaties van de IDispatch methoden.
Belangrijk
Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.
Syntaxis
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>
Parameterwaarden
nID
Een unieke id voor het bronobject. Wanneer IDispEventImpl is de basisklasse voor een samengesteld besturingselement, gebruikt u de resource-id van het gewenste ingesloten besturingselement voor deze parameter. In andere gevallen gebruikt u een willekeurig positief geheel getal.
T
De klasse van de gebruiker, die is afgeleid van IDispEventImpl.
pdiid
De aanwijzer naar de IID van de gebeurtenisdispinterface die door deze klasse is geïmplementeerd. Deze interface moet worden gedefinieerd in de typebibliotheek die wordt aangeduid door plibid, wMajoren wMinor.
plibid
Een aanwijzer naar de typebibliotheek die de verzendinterface definieert waarnaar wordt verwezen pdiid. Als &GUID_NULL, wordt de typebibliotheek geladen vanuit de objectbronnen van de gebeurtenissen.
wMajor
De primaire versie van de typebibliotheek. De standaardwaarde is 0.
wMinor
De secundaire versie van de typebibliotheek. De standaardwaarde is 0.
tihclass
De klasse die wordt gebruikt voor het beheren van de typegegevens voor T. De standaardwaarde is een klasse van het type CComTypeInfoHolder. U kunt deze sjabloonparameter echter overschrijven door een klasse van een ander type op te geven dan CComTypeInfoHolder.
Leden
Openbare typedefs
| Naam | Beschrijving |
|---|---|
IDispEventImpl::_tihclass |
De klasse die wordt gebruikt om de typegegevens te beheren.
CComTypeInfoHolderStandaard. |
Openbare constructors
| Naam | Beschrijving |
|---|---|
IDispEventImpl::IDispEventImpl |
De constructor. |
Openbare methoden
| Naam | Beschrijving |
|---|---|
IDispEventImpl::GetFuncInfoFromId |
Zoekt de functie-index voor de opgegeven verzend-id. |
IDispEventImpl::GetIDsOfNames |
Wijst één lid en een optionele set argumentnamen toe aan een bijbehorende set gehele getallen DISPID. |
IDispEventImpl::GetTypeInfo |
Hiermee haalt u de typegegevens voor een object op. |
IDispEventImpl::GetTypeInfoCount |
Hiermee wordt het aantal type-informatieinterfaces opgehaald. |
IDispEventImpl::GetUserDefinedType |
Hiermee wordt het basistype van een door de gebruiker gedefinieerd type opgehaald. |
Opmerkingen
IDispEventImpl biedt een manier om een gebeurtenisdispinterface te implementeren zonder dat u implementatiecode hoeft op te geven voor elke methode/gebeurtenis op die interface.
IDispEventImpl biedt implementaties van de IDispatch methoden. U hoeft alleen implementaties op te geven voor de gebeurtenissen die u wilt verwerken.
IDispEventImpl werkt in combinatie met de gebeurtenissinktoewijzing in uw klasse om gebeurtenissen naar de juiste handlerfunctie te routeren. Ga als volgt te werk om deze klasse te gebruiken:
Voeg een SINK_ENTRY of SINK_ENTRY_EX macro toe aan de gebeurtenissinktoewijzing voor elke gebeurtenis in elk object dat u wilt verwerken. Wanneer u als basisklasse van een samengesteld besturingselement gebruikt IDispEventImpl , kunt u aanroepen AtlAdviseSinkMap om de verbinding met de gebeurtenisbronnen tot stand te brengen en te verbreken voor alle vermeldingen in de gebeurtenissinktoewijzing. In andere gevallen, of voor meer controle, roept u DispEventAdvise aan om de verbinding tot stand te brengen tussen het bronobject en de basisklasse. Oproep DispEventUnadvise om de verbinding te verbreken.
U moet afleiden van IDispEventImpl (met behulp van een unieke waarde voor nID) voor elk object waarvoor u gebeurtenissen moet verwerken. U kunt de basisklasse opnieuw gebruiken door het niet-gebruiken van één bronobject en vervolgens af te raden tegen een ander bronobject, maar het maximum aantal bronobjecten dat door één object tegelijk kan worden verwerkt, wordt beperkt door het aantal IDispEventImpl basisklassen.
IDispEventImpl biedt dezelfde functionaliteit als IDispEventSimpleImpl, behalve dat het type informatie over de interface van een typebibliotheek ophaalt in plaats van deze als aanwijzer naar een _ATL_FUNC_INFO structuur te laten opgeven. Gebruik IDispEventSimpleImpl deze functie als u geen typebibliotheek hebt waarin de gebeurtenisinterface wordt beschreven of als u de overhead wilt voorkomen die is gekoppeld aan het gebruik van de typebibliotheek.
Opmerking
IDispEventImpl en IDispEventSimpleImpl bieden hun eigen implementatie van het inschakelen van IUnknown::QueryInterface elke IDispEventImpl en IDispEventSimpleImpl basisklasse om te fungeren als een afzonderlijke COM-identiteit, terwijl u nog steeds directe toegang tot klasseleden in uw hoofd-COM-object toestaat.
CE ATL-implementatie van ActiveX-gebeurtenissinks ondersteunt alleen retourwaarden van het type HRESULT of void van uw gebeurtenis-handlermethoden. Elke andere retourwaarde wordt niet ondersteund en het gedrag ervan is niet gedefinieerd.
Zie Ondersteunende IDispEventImplinformatie voor meer informatie.
Overnamehiërarchie
_IDispEvent
_IDispEventLocator
IDispEventImpl
Behoeften
koptekst:atlcom.h
IDispEventImpl::GetFuncInfoFromId
Zoekt de functie-index voor de opgegeven verzend-id.
HRESULT GetFuncInfoFromId(
const IID& iid,
DISPID dispidMember,
LCID lcid,
_ATL_FUNC_INFO& info);
Parameterwaarden
iid
[in] Een verwijzing naar de id van de functie.
dispidMember
[in] De verzend-id van de functie.
lcid
[in] De landinstellingscontext van de functie-id.
info
[in] De structuur die aangeeft hoe de functie wordt aangeroepen.
Retourwaarde
Een standaardwaarde HRESULT .
IDispEventImpl::GetIDsOfNames
Wijst één lid en een optionele set argumentnamen toe aan een bijbehorende set gehele getallen DISPID, die kunnen worden gebruikt voor volgende aanroepen naar IDispatch::Invoke.
STDMETHOD(GetIDsOfNames)(
REFIID riid,
LPOLESTR* rgszNames,
UINT cNames,
LCID lcid,
DISPID* rgdispid);
Opmerkingen
Zie IDispatch::GetIDsOfNames in de Windows SDK.
IDispEventImpl::GetTypeInfo
Haalt de typegegevens voor een object op, die vervolgens kan worden gebruikt om de typegegevens voor een interface op te halen.
STDMETHOD(GetTypeInfo)(
UINT itinfo,
LCID lcid,
ITypeInfo** pptinfo);
IDispEventImpl::GetTypeInfoCount
Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).
STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);
Opmerkingen
Zie IDispatch::GetTypeInfoCount in de Windows SDK.
IDispEventImpl::GetUserDefinedType
Hiermee wordt het basistype van een door de gebruiker gedefinieerd type opgehaald.
VARTYPE GetUserDefinedType(
ITypeInfo* pTI,
HREFTYPE hrt);
Parameterwaarden
pTI
[in] Een aanwijzer naar de interface met het door de ITypeInfo gebruiker gedefinieerde type.
hrt
[in] Een ingang naar de typebeschrijving die moet worden opgehaald.
Retourwaarde
Het type variant.
Opmerkingen
Zie ITypeInfo::GetRefTypeInfo.
IDispEventImpl::IDispEventImpl
De constructor. Slaat de waarden op van de klassesjabloonparameters plibid, pdiiden wMajorwMinor.
IDispEventImpl();
IDispEventImpl::_tihclass
Dit typedef is een exemplaar van de klassesjabloonparameter tihclass.
typedef tihclass _tihclass;
Opmerkingen
Standaard is CComTypeInfoHolderde klasse .
CComTypeInfoHolder beheert de typegegevens voor de klasse.
Zie ook
_ATL_FUNC_INFO Structuur
IDispatchImpl klasse
IDispEventSimpleImpl klasse
SINK_ENTRY
SINK_ENTRY_EX
SINK_ENTRY_INFO
Overzicht van klassen