Condividi tramite


Classe CComObjectGlobal

Questa classe gestisce un conteggio dei riferimenti nel modulo contenente l'oggetto Base .

Sintassi

template<class Base>
class CComObjectGlobal : public Base

Parametri

Base
La classe, derivata da CComObjectRoot o CComObjectRootEx, nonché da qualsiasi altra interfaccia che si vuole supportare nell'oggetto.

Membri

Costruttori pubblici

Nome Descrizione
CComObjectGlobal::CComObjectGlobal Costruttore.
CComObjectGlobal::~CComObjectGlobal Distruttore.

Metodi pubblici

Nome Descrizione
CComObjectGlobal::AddRef Implementa un oggetto globale AddRef.
CComObjectGlobal::QueryInterface Implementa un oggetto globale QueryInterface.
CComObjectGlobal::Release Implementa un oggetto globale Release.

Membri dati pubblici

Nome Descrizione
CComObjectGlobal::m_hResFinalConstruct Contiene il valore HRESULT restituito durante la costruzione dell'oggetto CComObjectGlobal .

Osservazioni:

CComObjectGlobal gestisce un conteggio dei riferimenti nel modulo contenente l'oggetto Base . CComObjectGlobal garantisce che l'oggetto non venga eliminato finché il modulo non viene rilasciato. L'oggetto verrà rimosso solo quando il conteggio dei riferimenti per l'intero modulo passa a zero.

Ad esempio, usando CComObjectGlobal, una class factory può contenere un oggetto globale comune condiviso da tutti i client.

Gerarchia di ereditarietà

Base

CComObjectGlobal

Requisiti

Intestazione: atlcom.h

CComObjectGlobal::AddRef

Incrementa il numero di riferimenti dell'oggetto di 1.

STDMETHOD_(ULONG, AddRef)();

Valore restituito

Valore che può essere utile per la diagnostica e il test.

Osservazioni:

Per impostazione predefinita, AddRef chiama , dove _Module è l'istanza globale di CComModule o una classe derivata _Module::Lockda essa.

CComObjectGlobal::CComObjectGlobal

Costruttore. Chiama FinalConstruct e quindi imposta m_hResFinalConstruct sull'oggetto HRESULT restituito da FinalConstruct.

CComObjectGlobal(void* = NULL));

Osservazioni:

Se la classe di base non è stata derivata da CComObjectRoot, è necessario specificare il proprio FinalConstruct metodo. Il distruttore chiama FinalRelease.

CComObjectGlobal::~CComObjectGlobal

Distruttore.

CComObjectGlobal();

Osservazioni:

Libera tutte le risorse allocate e chiama FinalRelease.

CComObjectGlobal::m_hResFinalConstruct

Contiene hresult dalla chiamata FinalConstruct durante la costruzione dell'oggetto CComObjectGlobal .

HRESULT m_hResFinalConstruct;

CComObjectGlobal::QueryInterface

Recupera un puntatore al puntatore dell'interfaccia richiesto.

STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);

Parametri

Iid
[in] GUID dell'interfaccia richiesta.

ppvObject
[out] Puntatore al puntatore dell'interfaccia identificato da iid o NULL se l'interfaccia non viene trovata.

Valore restituito

Valore HRESULT standard.

Osservazioni:

QueryInterface gestisce solo le interfacce nella tabella di mappe COM.

CComObjectGlobal::Release

Decrementa il conteggio dei riferimenti dell'oggetto di 1.

STDMETHOD_(ULONG, Release)();

Valore restituito

Nelle compilazioni di debug restituisce Release un valore che può essere utile per la diagnostica e il test. Nelle compilazioni non di debug restituisce Release sempre 0.

Osservazioni:

Per impostazione predefinita, Release chiama , dove _Module è l'istanza globale di CComModule o una classe derivata _Module::Unlockda essa.

Vedi anche

Classe CComObjectStack
Classe CComAggObject
Classe CComObject
Cenni preliminari sulla classe