Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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