Compartilhar via


Classe CComObjectStack

Essa classe cria um objeto COM temporário e fornece a ele uma implementação estrutural de IUnknown.

Sintaxe

template <class  Base>
class CComObjectStack : 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
CComObjectStack::CComObjectStack O construtor .
CComObjectStack::~CComObjectStack O destruidor.

Métodos públicos

Nome Descrição
CComObjectStack::AddRef Retorna zero. No modo de depuração, chama _ASSERTE.
CComObjectStack::QueryInterface Retorna E_NOINTERFACE. No modo de depuração, chama _ASSERTE.
CComObjectStack::Release Retorna zero. No modo de depuração, chama _ASSERTE. ~

Membros de Dados Públicos

Nome Descrição
CComObjectStack::m_hResFinalConstruct Contém o HRESULT retornado durante a construção do objeto CComObjectStack.

Comentários

CComObjectStack é usado para criar um objeto COM temporário e fornecer ao objeto uma implementação estrutural de IUnknown. Normalmente, o objeto é usado como uma variável local dentro de uma função (ou seja, enviada por push para a pilha). Como o objeto é destruído quando a função é concluída, a contagem de referências não é executada para aumentar a eficiência.

O seguinte exemplo mostra como criar um objeto COM usado dentro de uma função:

void MyFunc()
{
   CComObjectStack<CMyClass2> Tempobj;
   //...
}

O objeto Tempobj temporário é enviado por push para a pilha e desaparece automaticamente quando a função é concluída.

Hierarquia de herança

Base

CComObjectStack

Requisitos

Cabeçalho: atlcom.h

CComObjectStack::AddRef

Retorna zero.

STDMETHOD_(ULONG, AddRef)();

Valor de retorno

Retorna zero.

Comentários

No modo de depuração, chama _ASSERTE.

CComObjectStack::CComObjectStack

O construtor .

CComObjectStack(void* = NULL);

Comentários

Chama FinalConstruct e define m_hResFinalConstruct para o HRESULT retornado por FinalConstruct. Se você não tiver derivado sua classe base do CComObjectRoot, deverá fornecer seu próprio método FinalConstruct. O destruidor chama FinalRelease.

CComObjectStack::~CComObjectStack

O destruidor.

CComObjectStack();

Comentários

Libera todos os recursos alocados e chama FinalRelease.

CComObjectStack::m_hResFinalConstruct

Contém o HRESULT retornado ao chamar FinalConstruct durante a construção do objeto CComObjectStack.

HRESULT    m_hResFinalConstruct;

CComObjectStack::QueryInterface

Retorna E_NOINTERFACE.

HRESULT    QueryInterface(REFIID, void**);

Valor de retorno

Retorna E_NOINTERFACE.

Comentários

No modo de depuração, chama _ASSERTE.

CComObjectStack::Release

Retorna zero.

STDMETHOD_(ULONG, Release)();

Valor de retorno

Retorna zero.

Comentários

No modo de depuração, chama _ASSERTE.

Confira também

Classe CComAggObject
Classe CComObject
Classe CComObjectGlobal
Visão geral da aula