Compartir a través de


Clase CComObjectGlobal

Esta clase administra un recuento de referencias del módulo que contiene el objeto Base.

Sintaxis

template<class Base>
class CComObjectGlobal : public Base

Parámetros

Base
La clase, que se deriva de CComObjectRoot o CComObjectRootEx, así como de cualquier otra interfaz que desee admitir en el objeto.

Miembros

Constructores públicos

Nombre Descripción
CComObjectGlobal::CComObjectGlobal Constructor .
CComObjectGlobal::~CComObjectGlobal El destructor .

Métodos públicos

Nombre Descripción
CComObjectGlobal::AddRef Implementa un AddRef global.
CComObjectGlobal::QueryInterface Implementa un QueryInterface global.
CComObjectGlobal::Release Implementa un Release global.

Miembros de datos públicos

Nombre Descripción
CComObjectGlobal::m_hResFinalConstruct Contiene el valor HRESULT devuelto durante la construcción del objeto CComObjectGlobal.

Comentarios

CComObjectGlobal administra un recuento de referencias del módulo que contiene el objeto Base. CComObjectGlobal garantiza que el objeto no se eliminará siempre que el módulo no se libere. El objeto solo se eliminará cuando el recuento de referencias de todo el módulo vaya a cero.

Por ejemplo, con el uso de CComObjectGlobal, un generador de clases puede contener un objeto global común compartido por todos sus clientes.

Jerarquía de herencia

Base

CComObjectGlobal

Requisitos

Encabezado: atlcom.h

CComObjectGlobal::AddRef

Incrementa el recuento de referencias del objeto en 1.

STDMETHOD_(ULONG, AddRef)();

Valor devuelto

Valor que puede ser útil para los diagnósticos y las pruebas.

Comentarios

De manera predeterminada, AddRef llama a _Module::Lock, donde _Module es la instancia global de CComModule o una clase derivada de ella.

CComObjectGlobal::CComObjectGlobal

Constructor . Llama a FinalConstruct y, después, establece m_hResFinalConstruct en el valor HRESULT devuelto por FinalConstruct.

CComObjectGlobal(void* = NULL));

Comentarios

Si no ha derivado la clase base de CComObjectRoot, debe proporcionar su propio método FinalConstruct. El destructor llama a FinalRelease.

CComObjectGlobal::~CComObjectGlobal

El destructor .

CComObjectGlobal();

Comentarios

Libera todos los recursos asignados y llama a FinalRelease.

CComObjectGlobal::m_hResFinalConstruct

Contiene el valor HRESULT que se devuelve al llamar a FinalConstruct durante la construcción del objeto CComObjectGlobal.

HRESULT m_hResFinalConstruct;

CComObjectGlobal::QueryInterface

Recupera un puntero dirigido al puntero de la interfaz solicitada.

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

Parámetros

iid
[in] GUID de la interfaz que se solicita.

ppvObject
[out] Puntero dirigido al puntero de interfaz identificado por iid, o a NULL si la interfaz no se encuentra.

Valor devuelto

Valor HRESULT estándar.

Comentarios

QueryInterface solo administra interfaces de la tabla de asignación COM.

CComObjectGlobal::Release

Decrementa en uno el recuento de referencias del objeto.

STDMETHOD_(ULONG, Release)();

Valor devuelto

En las compilaciones de depuración, Release devuelve un valor que puede ser útil para los diagnósticos y las pruebas. En compilaciones que no son de depuración, Release siempre devuelve 0.

Comentarios

De manera predeterminada, Release llama a _Module::Unlock, donde _Module es la instancia global de CComModule o una clase derivada de ella.

Consulte también

CComObjectStack (clase)
CComAggObject (clase)
CComObject (clase)
Información general sobre la clase