Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
Az aktív sablontár (ATL) továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
Ez az osztály egy összesített objektum IUnknown felületét implementálja. Definíció szerint egy összesített objektum egy külső objektumon belül található. Az CComAggObject osztály hasonló a CComObject osztályhoz, azzal a kivétellel, hogy külső ügyfelek számára közvetlenül elérhető felületet tesz elérhetővé.
Szemantika
template<class contained>
class CComAggObject : public IUnknown,
public CComObjectRootEx<contained::_ThreadModel::ThreadModelNoCS>
Paraméterek
tartalmazott
Az osztály a CComObjectRoot vagy a CComObjectRootEx, valamint az objektumon támogatni kívánt egyéb felületekből származik.
Tagok
Nyilvános konstruktorok
| Név | Description |
|---|---|
| CComAggObject::CComAggObject | A konstruktor. |
| CComAggObject::~CComAggObject | A destruktor. |
Nyilvános módszerek
| Név | Description |
|---|---|
| CComAggObject::AddRef | Növeli az összesített objektum referenciaszámát. |
| CComAggObject::CreateInstance | Ez a statikus függvény lehetővé teszi egy új CComAggObject<contained> objektum létrehozását a CoCreateInstance többletterhelése nélkül. |
| CComAggObject::FinalConstruct | A végleges inicializálását hajtja m_containedvégre. |
| CComAggObject::FinalRelease | Végrehajtja a végleges megsemmisítést.m_contained |
| CComAggObject::QueryInterface | A kért felületre mutató mutatót kér le. |
| CComAggObject::Release | Az összesített objektum hivatkozásainak száma csökken. |
Nyilvános adatok tagjai
| Név | Description |
|---|---|
| CComAggObject::m_contained | A meghatalmazottak meghívják IUnknown a külső ismeretlent. |
Megjegyzések
CComAggObject
IUnknown implementálása egy összesített objektumhoz.
CComAggObject a IUnknown külső objektum IUnknown felületétől elkülönítve saját felülettel rendelkezik, és fenntartja a saját referenciaszámát.
Az összesítéssel kapcsolatos további információkért tekintse meg az ATL COM-objektumok alapjai című cikket.
Öröklési hierarchia
CComObjectRootBase
IUnknown
CComAggObject
Requirements
Fejléc: atlcom.h
CComAggObject::AddRef
Növeli az összesített objektum referenciaszámát.
STDMETHOD_(ULONG, AddRef)();
Visszaadott érték
A diagnosztikához vagy teszteléshez hasznos érték.
CComAggObject::CComAggObject
A konstruktor.
CComAggObject(void* pv);
Paraméterek
Pv
[in] A külső ismeretlen.
Megjegyzések
Inicializálja a CComContainedObjecttagot, m_contained, és növeli a modul zárolási számát.
A destruktor mérsékeli a modul zárolási számát.
CComAggObject::~CComAggObject
A destruktor.
~CComAggObject();
Megjegyzések
Felszabadítja az összes lefoglalt erőforrást, meghívja a FinalRelease-t, és lecsökkenti a modul zárolási számát.
CComAggObject::CreateInstance
Ez a statikus függvény lehetővé teszi egy új CComAggObject<contained> objektum létrehozását a CoCreateInstance többletterhelése nélkül.
static HRESULT WINAPI CreateInstance(
LPUNKNOWN pUnkOuter,
CComAggObject<contained>** pp);
Paraméterek
Pp
[kifelé] Mutató egy CComAggObject<tartalmazott> mutatóra. Sikertelenség esetén CreateInstance a pp értéke NULL.
Visszaadott érték
Standard HRESULT érték.
Megjegyzések
A visszaadott objektum hivatkozási száma nulla, ezért azonnal hívja meg AddRef , majd használja Release a hivatkozás felszabadítására az objektummutatón, amikor elkészült.
Ha nincs szüksége közvetlen hozzáférésre az objektumhoz, de mégis szeretne létrehozni egy új objektumot a többletterhelés CoCreateInstancenélkül, használja helyette a CComCoClass::CreateInstance parancsot .
CComAggObject::FinalConstruct
Ez a metódus az objektumépítés utolsó szakaszában meghívva végrehajtja a végleges inicializálást a m_contained tagon.
HRESULT FinalConstruct();
Visszaadott érték
Standard HRESULT érték.
CComAggObject::FinalRelease
Ez a metódus az objektummegsemmisítés során hívja meg a m_contained tagot.
void FinalRelease();
CComAggObject::m_contained
Az osztályból származtatott CComContainedObject objektum.
CComContainedObject<contained> m_contained;
Paraméterek
tartalmazott
[in] Az osztály a CComObjectRoot vagy a CComObjectRootEx, valamint az objektumon támogatni kívánt egyéb felületekből származik.
Megjegyzések
Az összes IUnknown hívás a m_contained külső ismeretlenre van delegálva.
CComAggObject::QueryInterface
A kért felületre mutató mutatót kér le.
STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);
template <class Q>
HRESULT STDMETHODCALLTYPE QueryInterface(Q** pp);
Paraméterek
iid
[in] A kért felület azonosítója.
ppvObject
[kifelé] Az iid által azonosított felületmutatóra mutató mutató. Ha az objektum nem támogatja ezt az interfészt, a ppvObject értéke NULL.
Pp
[kifelé] Az illesztőmutatóra mutató mutató, amely típus Qszerint van azonosítva. Ha az objektum nem támogatja ezt az interfészt, a pp értéke NULL.
Visszaadott érték
Standard HRESULT érték.
Megjegyzések
Ha a kért felület az IUnknown, QueryInterface az összesített objektum sajátjára IUnknown mutató mutatót ad vissza, és növeli a hivatkozás számát. Ellenkező esetben ez a metódus lekérdezi a felületet a CComContainedObject tagon keresztül, m_contained.
CComAggObject::Release
Az összesített objektum hivatkozásainak száma csökken.
STDMETHOD_(ULONG, Release)();
Visszaadott érték
A hibakeresési buildekben olyan értéket ad vissza, Release amely hasznos lehet a diagnosztika vagy a tesztelés során. A nem hibakeresési buildekben Release mindig 0 értéket ad vissza.
Lásd még
CComObject osztály
CComPolyObject osztály
DECLARE_AGGREGATABLE
DECLARE_ONLY_AGGREGATABLE
DECLARE_NOT_AGGREGATABLE
osztály áttekintése