Compartilhar via


Classe CComContainedObject

Essa classe implementa o IUnknown delegando-se ao objeto proprietário. IUnknown

Importante

Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.

Sintaxe

template<class Base>
class CComContainedObject : public Base

Parâmetros

Base
Sua classe, derivada de CComObjectRoot ou CComObjectRootEx.

Membros

Construtores públicos

Nome Descrição
CComContainedObject::CComContainedObject O construtor . Inicializa o ponteiro do membro para o objeto IUnknown do proprietário.
CComContainedObject::~CComContainedObject O destruidor.

Métodos públicos

Nome Descrição
CComContainedObject::AddRef Incrementa a contagem de referência no objeto do proprietário.
CComContainedObject::GetControllingUnknown Recupera o objeto do proprietário IUnknown.
CComContainedObject::QueryInterface Recupera um ponteiro para a interface solicitada no objeto proprietário.
CComContainedObject::Release Diminui a contagem de referência no objeto proprietário.

Comentários

A ATL usa CComContainedObject nas classes CComAggObject, CComPolyObject e CComCachedTearOffObject. CComContainedObject implementa IUnknown delegando ao objeto proprietário IUnknown. (O proprietário é o objeto externo de uma agregação ou o objeto para o qual uma interface de tear-off está sendo criada). CComContainedObject chama CComObjectRootEx' s OuterQueryInterface, OuterAddRefe OuterRelease, todos herdados através Base.

Hierarquia de herança

Base

CComContainedObject

Requisitos

Cabeçalho: atlcom.h

CComContainedObject::AddRef

Incrementa a contagem de referência no objeto do proprietário.

STDMETHOD_(ULONG, AddRef)();

Valor de retorno

Um valor que pode ser útil para diagnóstico ou teste.

CComContainedObject::CComContainedObject

O construtor .

CComContainedObject(void* pv);

Parâmetros

pv
[in] O objeto do proprietário IUnknown.

Comentários

Define o ponteiro membro m_pOuterUnknown (herdado por meio da classe Base) como pv.

CComContainedObject::~CComContainedObject

O destruidor.

~CComContainedObject();

Comentários

Libera todos os recursos alocados.

CComContainedObject::GetControllingUnknown

Retorna o ponteiro membro m_pOuterUnknown (herdado por meio da classe Base) que contém o objeto do proprietário IUnknown.

IUnknown* GetControllingUnknown();

Valor de retorno

O objeto do proprietário IUnknown.

Comentários

Este método pode ser virtual se Base tiver declarado a macro DECLARE_GET_CONTROLLING_UNKNOWN.

CComContainedObject::QueryInterface

Recupera um ponteiro para a interface solicitada no objeto proprietário.

STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);
template <class Q>
HRESULT STDMETHODCALLTYPE QueryInterface(Q** pp);

Parâmetros

iid
[in] O identificador da interface sendo solicitada.

ppvObject
[out] Um ponteiro para o ponteiro da interface identificado por iid. Se o objeto não der suporte a essa interface, o ppvObject será definido como NULL.

pp
[out] Um ponteiro para o ponteiro da interface identificado pelo tipo Q. Se o objeto não der suporte a essa interface, o pp será definido como NULL.

Valor de retorno

Um valor HRESULT padrão.

CComContainedObject::Release

Diminui a contagem de referência no objeto proprietário.

STDMETHOD_(ULONG, Release)();

Valor de retorno

Em builds de depuração, Release retorna um valor que pode ser útil para diagnóstico ou teste. Em builds que não sejam de depuração, o Release sempre retorna 0.

Confira também

Visão geral da aula