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 implementa o IUnknown para uma interface de remoção.
Sintaxe
template
<class contained>
class CComCachedTearOffObject : public
IUnknown,
public CComObjectRootEx<contained
::_ThreadModel::ThreadModelNoCS>
Parâmetros
contido
A sua classe de remoção derivada e CComTearOffObjectBase as interfaces que quer que o seu objeto de remoção suporte.
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| CComCachedTearOffObject::CComCachedTearOffObject | O construtor. |
| CComCachedTearOffObject::~CComCachedTearOffObject | O destruidor. |
Métodos Públicos
| Nome | Description |
|---|---|
| CComCachedTearOffObject::AddRef | Incrementa a contagem de referência para um CComCachedTearOffObject objeto. |
| CComCachedTearOffObject::FinalConstruct | Chama-se o m_contained::FinalConstruct método da classe de remoção. |
| CComCachedTearOffObject::FinalRelease | Chama-se o m_contained::FinalRelease método da classe de remoção. |
| CComCachedTearOffObject::QueryInterface | Devolve um ponteiro para o IUnknownCComCachedTearOffObject do objeto, ou para a interface solicitada na sua classe de remoção (a classe contained). |
| CComCachedTearOffObject::Release | Diminui a contagem de referência de um CComCachedTearOffObject objeto e destrói-a se a contagem de referência for 0. |
Membros de Dados Públicos
| Nome | Description |
|---|---|
| CComCachedTearOffObject::m_contained | Um CComContainedObject objeto derivado da tua classe de remoção (a classe contained). |
Observações
CComCachedTearOffObject implementa IUnknown para uma interface de remoção. Esta classe difere de CComTearOffObject que CComCachedTearOffObject tem o seu próprio IUnknown, separado do objeto IUnknown do proprietário (o proprietário é o objeto para o qual a separação está a ser criada).
CComCachedTearOffObject mantém a sua própria contagem de referências no IUnknown seu e apaga-se a si própria assim que a contagem de referências é zero. No entanto, se consultar qualquer uma das suas interfaces de remoção, a contagem de referências do objeto IUnknown proprietário será incrementada.
Se o CComCachedTearOffObject objeto que implementa o tear-off já for instanciado, e a interface de tear-off for novamente consultada, o mesmo CComCachedTearOffObject objeto é reutilizado. Em contraste, se uma interface tear-off implementada por um CComTearOffObject for novamente consultada através do objeto proprietário, outra CComTearOffObject será instanciada.
A classe proprietária deve implementar FinalRelease e invocar Release a cache IUnknown para o CComCachedTearOffObject, o que irá decrementar a sua contagem de referências. Isto fará com CComCachedTearOffObjectque 's FinalRelease sejam chamados e apagados o remoção'.
Hierarquia de herança
CComObjectRootBase
IUnknown
CComCachedTearOffObject
Requerimentos
Cabeçalho: atlcom.h
CComCachedTearOffObject::AddRef
Incrementa a contagem de referência do CComCachedTearOffObject objeto em 1.
STDMETHOD_(ULONG, AddRef)();
Valor de retorno
Um valor que pode ser útil para diagnóstico e testes.
CComCachedTearOffObject::CComCachedTearOffObject
O construtor.
CComCachedTearOffObject(void* pv);
Parâmetros
PV
[dentro] Apontar para o IUnknown de .CComCachedTearOffObject
Observações
Inicializa o CComContainedObject membro, m_contained.
CComCachedTearOffObject::~CComCachedTearOffObject
O destruidor.
~CComCachedTearOffObject();
Observações
Liberta todos os recursos alocados e chama o FinalRelease.
CComCachedTearOffObject::FinalConstruct
Chamadas para criar , o<CComContainedObjectcontained> objeto usado para aceder à interface implementada pela sua classe de remoção.m_containedm_contained::FinalConstruct
HRESULT FinalConstruct();
Valor de retorno
Um valor HRESULT padrão.
CComCachedTearOffObject::FinalRelease
Apela m_contained::FinalRelease para libertar m_contained, o CComContainedObject<contained> objeto.
void FinalRelease();
CComCachedTearOffObject::m_contained
Um objeto CComContainedObject derivado da tua classe de remoção.
CcomContainedObject <contained> m_contained;
Parâmetros
contido
[dentro] A sua classe de remoção derivada e CComTearOffObjectBase as interfaces que quer que o seu objeto de remoção suporte.
Observações
Os métodos m_contained herdeiros são usados para aceder à interface de remoção na sua classe de remoção através dos objetos QueryInterfacede remoção em cache , FinalConstruct, e FinalRelease.
CComCachedTearOffObject::QueryInterface
Recupera um ponteiro para a interface solicitada.
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
Se a interface solicitada for IUnknown, devolve um ponteiro para o CComCachedTearOffObjectseu próprio IUnknown e incrementa a contagem de referência. Caso contrário, as consultas para a interface na sua classe de remoção usando o método InternalQueryInterface herdadas de CComObjectRootEx.
CComCachedTearOffObject::Release
Diminui a contagem de referências por 1 e, se a contagem for 0, elimina o CComCachedTearOffObject objeto.
STDMETHOD_(ULONG, Release)();
Valor de retorno
Em builds que não são de depuração, devolve sempre 0. Em compilações de depuração, devolve um valor que pode ser útil para diagnóstico ou testes.
Consulte também
Classe CComTearOffObject
Classe CComObjectRootEx
Visão geral da classe