Classe CComObjectGlobal
Essa classe gerencia uma contagem de referência no módulo que contém seu objeto Base
.
Sintaxe
template<class Base>
class CComObjectGlobal : public Base
Parâmetros
Base
Sua classe, derivada de CComObjectRoot ou CComObjectRootEx, bem como de qualquer outra interface que você deseja dar suporte no objeto.
Membros
Construtores públicos
Nome | Descrição |
---|---|
CComObjectGlobal::CComObjectGlobal | O construtor . |
CComObjectGlobal::~CComObjectGlobal | O destruidor. |
Métodos públicos
Nome | Descrição |
---|---|
CComObjectGlobal::AddRef | Implementa um AddRef global. |
CComObjectGlobal::QueryInterface | Implementa um QueryInterface global. |
CComObjectGlobal::Release | Implementa um Release global. |
Membros de Dados Públicos
Nome | Descrição |
---|---|
CComObjectGlobal::m_hResFinalConstruct | Contém o HRESULT retornado durante a construção do objeto CComObjectGlobal . |
Comentários
CComObjectGlobal
gerencia uma contagem de referências no módulo que contém seu objeto Base
. CComObjectGlobal
garante que seu objeto não será excluído desde que o módulo não seja liberado. Seu objeto só será removido quando a contagem de referências no módulo inteiro for zero.
Por exemplo, usando CComObjectGlobal
, uma fábrica de classes pode conter um objeto global comum compartilhado por todos os clientes.
Hierarquia de herança
Base
CComObjectGlobal
Requisitos
Cabeçalho: atlcom.h
CComObjectGlobal::AddRef
Incrementa a contagem de referência do objeto em 1.
STDMETHOD_(ULONG, AddRef)();
Valor de retorno
Um valor que pode ser útil para diagnóstico e teste.
Comentários
Por padrão, AddRef
chama _Module::Lock
, onde _Module
é a instância global de CComModule ou a classe derivada dela.
CComObjectGlobal::CComObjectGlobal
O construtor . Chama FinalConstruct
e define m_hResFinalConstruct como o HRESULT
retornado por FinalConstruct
.
CComObjectGlobal(void* = NULL));
Comentários
Se você não tiver derivado sua classe base do CComObjectRoot, deverá fornecer seu próprio método FinalConstruct
. O destruidor chama FinalRelease
.
CComObjectGlobal::~CComObjectGlobal
O destruidor.
CComObjectGlobal();
Comentários
Libera todos os recursos alocados e chama FinalRelease.
CComObjectGlobal::m_hResFinalConstruct
Contém o HRESULT da chamada de FinalConstruct
durante a construção do objeto CComObjectGlobal
.
HRESULT m_hResFinalConstruct;
CComObjectGlobal::QueryInterface
Recupera um ponteiro para o ponteiro de interface solicitado.
STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);
Parâmetros
iid
[in] O GUID da interface que está sendo solicitado.
ppvObject
[saída] Um ponteiro para o ponteiro de interface identificado por iid ou NULL se a interface não for encontrada.
Valor de retorno
Um valor HRESULT padrão.
Comentários
QueryInterface
somente lida com interfaces na tabela de mapa COM.
CComObjectGlobal::Release
Decrementa a contagem de referência do objeto em 1.
STDMETHOD_(ULONG, Release)();
Valor de retorno
Em compilações de depuração, o Release
retorna um valor que pode ser útil para diagnóstico e teste. Em builds que não sejam de depuração, o Release
sempre retorna 0.
Comentários
Por padrão, Release
chama _Module::Unlock
, onde _Module
é a instância global de CComModule ou a classe derivada dela.
Confira também
Classe CComObjectStack
Classe CComAggObject
Classe CComObject
Visão geral da aula