Partilhar via


Classe CComObjectGlobal

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