Megosztás:


IDispEventImpl osztály

Ez az osztály a metódusok implementációit IDispatch tartalmazza.

Fontos

Ez az osztály és tagjai nem használhatók a Windows futtatókörnyezetben futó alkalmazásokban.

Szemantika

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>

Paraméterek

nID
A forrásobjektum egyedi azonosítója. Ha IDispEventImpl egy összetett vezérlőelem alaposztálya, használja a paraméter kívánt tartalmazott vezérlőjének erőforrás-azonosítóját. Más esetekben használjon tetszőleges pozitív egész számot.

T
A felhasználó osztálya, amely a következőből IDispEventImplszármazik: .

pdiid
Az osztály által implementált eseményeloszlásának IID-azonosítójára mutató mutató. Ezt a felületet az , plibidés wMajora wMinor.

plibid
Mutató a küldőfelületet meghatározó típustárra pdiid. Ha &GUID_NULL, a típustár betöltődik az eseményeket forrásként tartalmazó objektumból.

wMajor
A típustár főverziója. Az alapértelmezett érték 0.

wMinor
A típustár alverziója. Az alapértelmezett érték 0.

tihclass
A típusinformációk Tkezeléséhez használt osztály. Az alapértelmezett érték egy típusosztály CComTypeInfoHolder, de felülbírálhatja ezt a sablonparamétert úgy, hogy nem a kívánt osztályt CComTypeInfoHolderadja meg.

Tagok

Nyilvános typedefs

Név Leírás
IDispEventImpl::_tihclass A típusadatok kezeléséhez használt osztály. Alapértelmezés szerint. CComTypeInfoHolder

Nyilvános konstruktorok

Név Leírás
IDispEventImpl::IDispEventImpl A konstruktor.

Nyilvános metódusok

Név Leírás
IDispEventImpl::GetFuncInfoFromId Megkeresi a megadott küldési azonosító függvényindexét.
IDispEventImpl::GetIDsOfNames Egyetlen tagot és egy választható argumentumnevet képez le egy egész szám DISPIDmegfelelő halmazára.
IDispEventImpl::GetTypeInfo Lekéri egy objektum típusadatait.
IDispEventImpl::GetTypeInfoCount Lekéri a típusinformációs felületek számát.
IDispEventImpl::GetUserDefinedType Lekéri a felhasználó által definiált típus alaptípusát.

Megjegyzések

IDispEventImpl Lehetővé teszi az eseményelkülönítés implementálását anélkül, hogy az adott felületen minden metódushoz/eseményhez meg kell adnia a megvalósítási kódot. IDispEventImpl a metódusok implementálását IDispatch biztosítja. Csak azokhoz az eseményekhez kell implementációkat szolgáltatnia, amelyeket kezelni szeretne.

IDispEventImpl együttműködik az osztály eseményelvezető térképével, hogy az eseményeket a megfelelő kezelőfüggvényhez irányíthassa. Az osztály használata:

Adjon hozzá egy vagy SINK_ENTRY több makrót SINK_ENTRY_EX az esemény fogadótérképéhez minden kezelni kívánt objektum eseményéhez. Ha összetett vezérlőelem alaposztályaként használja IDispEventImpl , meghívhatja AtlAdviseSinkMap , hogy hozza létre és bontsa fel a kapcsolatot az eseményforrásokkal az eseményelvezető térkép összes bejegyzéséhez. Más esetekben vagy nagyobb vezérlés érdekében hívja meg DispEventAdvise a forrásobjektum és az alaposztály közötti kapcsolat létrehozását. Hívás DispEventUnadvise a kapcsolat megszakadásához.

Minden olyan objektumból IDispEventImpl származnia kell (egyedi értéket nIDhasználva) minden olyan objektumhoz, amelyhez eseményeket kell kezelnie. Az alaposztályt újra felhasználhatja úgy, hogy nem egy forrásobjektumot használ, majd tanácsot ad egy másik forrásobjektumnak, de az egy objektum által egyszerre kezelhető forrásobjektumok maximális számát az alaposztályok száma IDispEventImpl korlátozza.

IDispEventImpl ugyanazt a funkciót biztosítja, mint IDispEventSimpleImpla típustárakban, kivéve, hogy a típustárakból lekéri a felületre vonatkozó típusinformációkat ahelyett, hogy egy struktúra mutatójaként szolgálna _ATL_FUNC_INFO . Akkor használható IDispEventSimpleImpl , ha nem rendelkezik az eseményfelületet leíró típustárral, vagy szeretné elkerülni a típustár használatával járó többletterhelést.

Megjegyzés:

IDispEventImpl és IDispEventSimpleImpl saját megvalósítást IUnknown::QueryInterface biztosít annak engedélyezéséhez, hogy az egyes IDispEventImpl és IDispEventSimpleImpl alaposztályok külön COM-identitásként működjenek, miközben továbbra is lehetővé teszik a közvetlen hozzáférést az osztálytagokhoz a fő COM-objektumban.

Az ActiveX-esemény fogadók CE ATL-implementációja csak a típusértékeket HRESULT támogatja, vagy void az eseménykezelő metódusokból; bármely más visszatérési érték nem támogatott, és viselkedése nincs meghatározva.

További információ: Támogatás IDispEventImpl.

Öröklési hierarchia

_IDispEvent

_IDispEventLocator

IDispEventSimpleImpl

IDispEventImpl

Követelmények

fejléc:atlcom.h

IDispEventImpl::GetFuncInfoFromId

Megkeresi a megadott küldési azonosító függvényindexét.

HRESULT GetFuncInfoFromId(
    const IID& iid,
    DISPID dispidMember,
    LCID lcid,
    _ATL_FUNC_INFO& info);

Paraméterek

iid
[in] A függvény azonosítójára mutató hivatkozás.

dispidMember
[in] A függvény kézbesítési azonosítója.

lcid
[in] A függvényazonosító területi környezete.

info
[in] A függvény meghívását jelző struktúra.

Visszaadott érték

Egy standard HRESULT érték.

IDispEventImpl::GetIDsOfNames

Egyetlen tagot és egy választható argumentumnevet képez le a megfelelő egész számkészletre DISPID, amely a következő hívásokhoz IDispatch::Invokehasználható.

STDMETHOD(GetIDsOfNames)(
    REFIID riid,
    LPOLESTR* rgszNames,
    UINT cNames,
    LCID lcid,
    DISPID* rgdispid);

Megjegyzések

Lásd IDispatch::GetIDsOfNames a Windows SDK-ban.

IDispEventImpl::GetTypeInfo

Lekéri egy objektum típusadatait, amelyek aztán a felület típusadatainak lekérésére használhatók.

STDMETHOD(GetTypeInfo)(
    UINT itinfo,
    LCID lcid,
    ITypeInfo** pptinfo);

IDispEventImpl::GetTypeInfoCount

Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1).

STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);

Megjegyzések

Lásd IDispatch::GetTypeInfoCount a Windows SDK-ban.

IDispEventImpl::GetUserDefinedType

Lekéri a felhasználó által definiált típus alaptípusát.

VARTYPE GetUserDefinedType(
    ITypeInfo* pTI,
    HREFTYPE hrt);

Paraméterek

pTI
[in] Mutató a ITypeInfo felhasználó által definiált típust tartalmazó felületre.

hrt
[in] A lekérendő típusleírás leírója.

Visszaadott érték

A variáns típusa.

Megjegyzések

Lásd a(z) ITypeInfo::GetRefTypeInfo.

IDispEventImpl::IDispEventImpl

A konstruktor. Tárolja az osztálysablon paramétereinek értékeit plibid, pdiidwMajorés wMinor.

IDispEventImpl();

IDispEventImpl::_tihclass

Ez a typedef az osztálysablon paraméter tihclassegy példánya.

typedef tihclass _tihclass;

Megjegyzések

Alapértelmezés szerint az osztály a következő CComTypeInfoHolder: . CComTypeInfoHolder kezeli az osztály típusadatait.

Lásd még

_ATL_FUNC_INFO Szerkezet
IDispatchImpl osztály
IDispEventSimpleImpl osztály
SINK_ENTRY
SINK_ENTRY_EX
SINK_ENTRY_INFO
osztály áttekintése