Megosztás a következőn keresztül:


CComAggObject osztály

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

CComObjectRootEx

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