Compartilhar via


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