Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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
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