Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Esta classe gere uma contagem de referências no módulo que contém o seu Base objeto.
Sintaxe
template<class Base>
class CComObjectGlobal : public Base
Parâmetros
Base
A sua classe, derivada de CComObjectRoot ou CComObjectRootEx, bem como de qualquer outra interface que queira suportar no objeto.
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| CComObjectGlobal::CComObjectGlobal | O construtor. |
| CComObjectGlobal::~CComObjectGlobal | O destruidor. |
Métodos Públicos
| Nome | Description |
|---|---|
| CComObjectGlobal::AddRef | Implementa um global AddRefde . |
| CComObjectGlobal::QueryInterface | Implementa um global QueryInterfacede . |
| CComObjectGlobal::Release | Implementa um global Releasede . |
Membros de Dados Públicos
| Nome | Description |
|---|---|
| CComObjectGlobal::m_hResFinalConstruct | Contém o HRESULT devolvido durante a construção do CComObjectGlobal objeto. |
Observações
CComObjectGlobal gere a contagem de referências no módulo que contém o seu Base objeto.
CComObjectGlobal Garante que o seu objeto não será eliminado enquanto o módulo não for libertado. O teu objeto só será removido quando a contagem de referências de todo o módulo chegar a zero.
Por exemplo, usando CComObjectGlobal, uma fábrica de classes pode conter um objeto global comum que é partilhado por todos os seus clientes.
Hierarquia de herança
Base
CComObjectGlobal
Requerimentos
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 testes.
Observações
Por defeito, AddRef chama _Module::Lock, onde _Module é a instância global do CComModule ou uma classe derivada dele.
CComObjectGlobal::CComObjectGlobal
O construtor. Chama FinalConstruct e depois define m_hResFinalConstruct para o HRESULT devolvido por FinalConstruct.
CComObjectGlobal(void* = NULL));
Observações
Se não tiver derivado a sua classe base do CComObjectRoot, deve fornecer o seu próprio FinalConstruct método. O destruidor chama FinalRelease.
CComObjectGlobal::~CComObjectGlobal
O destruidor.
CComObjectGlobal();
Observações
Liberta todos os recursos alocados e chama o FinalRelease.
CComObjectGlobal::m_hResFinalConstruct
Contém o HRESULT da chamada FinalConstruct durante a construção do CComObjectGlobal objeto.
HRESULT m_hResFinalConstruct;
CComObjectGlobal::QueryInterface
Recupera um ponteiro para o ponteiro de interface solicitado.
STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);
Parâmetros
IID
[dentro] O GUID da interface a ser solicitada.
ppvObject
[fora] Um ponteiro para o ponteiro da interface identificado por iid, ou NULL se a interface não for encontrada.
Valor de retorno
Um valor HRESULT padrão.
Observações
QueryInterface apenas trata de interfaces na tabela de mapas COM.
CComObjectGlobal::Release
Diminui a contagem de referência do objeto em 1.
STDMETHOD_(ULONG, Release)();
Valor de retorno
Em compilações de depuração, Release devolve um valor que pode ser útil para diagnóstico e testes. Em builds que não são de depuração, Release devolve sempre 0.
Observações
Por defeito, Release chama _Module::Unlock, onde _Module é a instância global do CComModule ou uma classe derivada dele.
Consulte também
Classe CComObjectStack
Classe CComAggObject
Classe CComObject
Visão geral da classe