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::Lock
da 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::Unlock
da essa.
Vedi anche
Classe CComObjectStack
Classe CComAggObject
Classe CComObject
Cenni preliminari sulla classe