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.
Opmerking
De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Deze klasse biedt implementaties van de IDispatch methoden, zonder typegegevens op te halen uit een typebibliotheek.
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>
class ATL_NO_VTABLE IDispEventSimpleImpl : public _IDispEventLocator<nID, pdiid>
Parameterwaarden
nID
Een unieke id voor het bronobject. Wanneer IDispEventSimpleImpl 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 IDispEventSimpleImpl.
pdiid
De aanwijzer naar de IID van de gebeurtenisdispinterface die door deze klasse is geïmplementeerd.
Leden
Openbare methoden
| Naam | Description |
|---|---|
| IDispEventSimpleImpl::Advise | Hiermee maakt u een verbinding met de standaard gebeurtenisbron. |
| IDispEventSimpleImpl::DispEventAdvise | Hiermee wordt een verbinding tot stand gebracht met de gebeurtenisbron. |
| IDispEventSimpleImpl::DispEventUnadvise | De verbinding met de gebeurtenisbron wordt verbroken. |
| IDispEventSimpleImpl::GetIDsOfNames | Retourneert E_NOTIMPL. |
| IDispEventSimpleImpl::GetTypeInfo | Retourneert E_NOTIMPL. |
| IDispEventSimpleImpl::GetTypeInfoCount | Retourneert E_NOTIMPL. |
| IDispEventSimpleImpl::Invoke | Roept de gebeurtenis-handlers aan die worden vermeld in de gebeurtenissinktoewijzing. |
| IDispEventSimpleImpl::Unadvise | De verbinding met de standaard gebeurtenisbron wordt verbroken. |
Opmerkingen
IDispEventSimpleImpl biedt een manier om een gebeurtenisdispinterface te implementeren zonder dat u implementatiecode hoeft op te geven voor elke methode/gebeurtenis op die interface.
IDispEventSimpleImpl biedt implementaties van de IDispatch methoden. U hoeft alleen implementaties op te geven voor de gebeurtenissen die u wilt verwerken.
IDispEventSimpleImpl 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_INFO macro toe aan de gebeurtenissinktoewijzing voor elke gebeurtenis op elk object dat u wilt verwerken.
Informatie over het type opgeven voor elke gebeurtenis door een aanwijzer door te geven aan een _ATL_FUNC_INFO structuur als parameter voor elke vermelding. Op het x86-platform moet de
_ATL_FUNC_INFO.ccwaarde worden CC_CDECL met de callback-functieaanroepmethode van __stdcall.Roep DispEventAdvise aan om de verbinding tot stand te brengen tussen het bronobject en de basisklasse.
Roep DispEventUnadvise aan om de verbinding te verbreken.
U moet afleiden van IDispEventSimpleImpl (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 IDispEventSimpleImpl basisklassen.
IDispEventSimplImpl biedt dezelfde functionaliteit als IDispEventImpl, behalve dat er geen typegegevens over de interface van een typebibliotheek worden opgehaald. De wizards genereren alleen code op IDispEventImplbasis van, maar u kunt de code handmatig toevoegen IDispEventSimpleImpl . 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 of 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 ongeldigheid van uw gebeurtenis-handlermethoden; een andere retourwaarde wordt niet ondersteund en het gedrag ervan is niet gedefinieerd.
Zie Ondersteunende IDispEventImpl voor meer informatie.
Overnamehiërarchie
_IDispEvent
_IDispEventLocator
IDispEventSimpleImpl
Requirements
Koptekst: atlcom.h
IDispEventSimpleImpl::Advise
Roep deze methode aan om een verbinding tot stand te brengen met de gebeurtenisbron die wordt vertegenwoordigd door pUnk.
HRESULT Advise(IUnknown* pUnk);
Parameterwaarden
Punk
[in] Een aanwijzer naar de IUnknown interface van het gebeurtenisbronobject.
Retourwaarde
S_OK of een fout HRESULT-waarde.
Opmerkingen
Zodra de verbinding tot stand is gebracht, worden gebeurtenissen die vanuit pUnk worden geactiveerd, doorgestuurd naar handlers in uw klasse via de gebeurtenissinktoewijzing.
Opmerking
Als uw klas is afgeleid van meerdere IDispEventSimpleImpl klassen, moet u aanroepen naar deze methode ondubbelzinnig maken door het bereik van de aanroep te beperken met de specifieke basisklasse waarin u geïnteresseerd bent.
Advise brengt een verbinding tot stand met de standaardgebeurtenisbron. Hiermee wordt de IID van de standaardgebeurtenisbron van het object opgehaald, zoals bepaald door AtlGetObjectSourceInterface.
IDispEventSimpleImpl::D ispEventAdvise
Roep deze methode aan om een verbinding tot stand te brengen met de gebeurtenisbron die wordt vertegenwoordigd door pUnk.
HRESULT DispEventAdvise(IUnknown* pUnk const IID* piid);
Parameterwaarden
Punk
[in] Een aanwijzer naar de IUnknown interface van het gebeurtenisbronobject.
piid
Een aanwijzer naar de IID van het gebeurtenisbronobject.
Retourwaarde
S_OK of een fout HRESULT-waarde.
Opmerkingen
Vervolgens worden gebeurtenissen die vanuit pUnk worden geactiveerd, doorgestuurd naar handlers in uw klasse via de gebeurtenissinktoewijzing.
Opmerking
Als uw klas is afgeleid van meerdere IDispEventSimpleImpl klassen, moet u aanroepen naar deze methode ondubbelzinnig maken door het bereik van de aanroep te beperken met de specifieke basisklasse waarin u geïnteresseerd bent.
DispEventAdvise brengt een verbinding tot stand met de gebeurtenisbron die is opgegeven in pdiid.
IDispEventSimpleImpl::D ispEventUnadvise
Hiermee wordt de verbinding verbroken met de gebeurtenisbron die wordt vertegenwoordigd door pUnk.
HRESULT DispEventUnadvise(IUnknown* pUnk const IID* piid);
Parameterwaarden
Punk
[in] Een aanwijzer naar de IUnknown interface van het gebeurtenisbronobject.
piid
Een aanwijzer naar de IID van het gebeurtenisbronobject.
Retourwaarde
S_OK of een fout HRESULT-waarde.
Opmerkingen
Zodra de verbinding is verbroken, worden gebeurtenissen niet meer doorgestuurd naar de handlerfuncties die worden vermeld in de gebeurtenissinktoewijzing.
Opmerking
Als uw klas is afgeleid van meerdere IDispEventSimpleImpl klassen, moet u aanroepen naar deze methode ondubbelzinnig maken door het bereik van de aanroep te beperken met de specifieke basisklasse waarin u geïnteresseerd bent.
DispEventAdvise breekt een verbinding die tot stand is gebracht met de gebeurtenisbron die is opgegeven in pdiid.
IDispEventSimpleImpl::GetIDsOfNames
Deze implementatie van IDispatch::GetIDsOfNames retourneert E_NOTIMPL.
STDMETHOD(GetIDsOfNames)(
REFIID /* riid */,
LPOLESTR* /* rgszNames */,
UINT /* cNames */,
LCID /* lcid */,
DISPID* /* rgdispid */);
Opmerkingen
Zie IDispatch::GetIDsOfNames in de Windows SDK.
IDispEventSimpleImpl::GetTypeInfo
Deze implementatie van IDispatch::GetTypeInfo retourneert E_NOTIMPL.
STDMETHOD(GetTypeInfo)(
UINT /* itinfo */,
LCID /* lcid */,
ITypeInfo** /* pptinfo */);
Opmerkingen
Zie IDispatch::GetTypeInfo in de Windows SDK.
IDispEventSimpleImpl::GetTypeInfoCount
Deze implementatie van IDispatch::GetTypeInfoCount retourneert E_NOTIMPL.
STDMETHOD(GetTypeInfoCount)(UINT* /* pctinfo */);
Opmerkingen
Zie IDispatch::GetTypeInfoCount in de Windows SDK.
IDispEventSimpleImpl::Invoke
Deze implementatie van IDispatch::Invoke roept de gebeurtenis-handlers aan die worden vermeld in de gebeurtenissinktoewijzing.
STDMETHOD(Invoke)(
DISPID dispidMember,
REFIID /* riid */,
LCID lcid,
WORD /* wFlags */,
DISPPARMS* pdispparams,
VARIANT* pvarResult,
EXCEPINFO* /* pexcepinfo */,
UINT* /* puArgErr */);
Opmerkingen
Zie IDispatch::Invoke.
IDispEventSimpleImpl::Unadvise
Hiermee wordt de verbinding verbroken met de gebeurtenisbron die wordt vertegenwoordigd door pUnk.
HRESULT Unadvise(IUnknown* pUnk);
Parameterwaarden
Punk
[in] Een aanwijzer naar de IUnknown interface van het gebeurtenisbronobject.
Retourwaarde
S_OK of een fout HRESULT-waarde.
Opmerkingen
Zodra de verbinding is verbroken, worden gebeurtenissen niet meer doorgestuurd naar de handlerfuncties die worden vermeld in de gebeurtenissinktoewijzing.
Opmerking
Als uw klas is afgeleid van meerdere IDispEventSimpleImpl klassen, moet u aanroepen naar deze methode ondubbelzinnig maken door het bereik van de aanroep te beperken met de specifieke basisklasse waarin u geïnteresseerd bent.
Unadvise breekt een verbinding die tot stand is gebracht met de standaardgebeurtenisbron die is opgegeven in pdiid.
Unavise breekt een verbinding met de standaardgebeurtenisbron. Hiermee wordt de IID van de standaardgebeurtenisbron van het object opgehaald, zoals bepaald door AtlGetObjectSourceInterface.
Zie ook
_ATL_FUNC_INFO structuur
IDispatchImpl-klasse
Klasse IDispEventImpl
SINK_ENTRY_INFO
Overzicht van klassen