CComCachedTearOffObject (clase)
Esta clase implementa IUnknown para una interfaz desplazable.
Sintaxis
template
<class contained>
class CComCachedTearOffObject : public
IUnknown,
public CComObjectRootEx<contained
::_ThreadModel::ThreadModelNoCS>
Parámetros
contained
La clase desplazable, derivada de CComTearOffObjectBase
y las interfaces que quiera que admita el objeto desplazado.
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CComCachedTearOffObject::CComCachedTearOffObject | Constructor . |
CComCachedTearOffObject::~CComCachedTearOffObject | El destructor . |
Métodos públicos
Nombre | Descripción |
---|---|
CComCachedTearOffObject::AddRef | Incrementa el recuento de referencias de un objeto CComCachedTearOffObject . |
CComCachedTearOffObject::FinalConstruct | Llama al método m_contained::FinalConstruct (el método de la clase desplazable). |
CComCachedTearOffObject::FinalRelease | Llama al método m_contained::FinalRelease (el método de la clase desplazable). |
CComCachedTearOffObject::QueryInterface | Devuelve un puntero al IUnknown del objeto CComCachedTearOffObject o a la interfaz solicitada en la clase desplazable (la clase contained ). |
CComCachedTearOffObject::Release | Disminuye el recuento de referencias de un objeto CComCachedTearOffObject y lo destruye si el recuento de referencias es 0. |
Miembros de datos públicos
Nombre | Descripción |
---|---|
CComCachedTearOffObject::m_contained | Objeto CComContainedObject derivado de la clase desplazable (la clase contained ). |
Comentarios
CComCachedTearOffObject
implementa IUnknown para una interfaz desplazable. Esta clase difiere de CComTearOffObject
en que CComCachedTearOffObject
tiene su propio IUnknown
, independiente del del objeto propietario IUnknown
(el propietario es el objeto para el que se crea el desplazamiento). CComCachedTearOffObject
mantiene su propio recuento de referencias en su objeto IUnknown
y elimina a sí mismo una vez que su recuento de referencias es cero. Sin embargo, si consulta alguna de sus interfaces desplazables, se incrementará el recuento de referencias IUnknown
del objeto propietario.
Si ya se ha creado una instancia el objeto CComCachedTearOffObject
que implementa el desplazamiento y se consulta de nuevo la interfaz ya ha creado una instancia, se reutiliza el mismo objeto CComCachedTearOffObject
. Por el contrario, si se vuelve a consultar una interfaz desplazable implementada por un objeto CComTearOffObject
a través del objeto propietario, se creará una instancia de otro objeto CComTearOffObject
.
La clase propietaria debe implementar FinalRelease
y llamar a Release
en la memoria caché IUnknown
para CComCachedTearOffObject
, que disminuirá su recuento de referencias. Esto hará que FinalRelease
de CComCachedTearOffObject
se llame a y elimine el desplazamiento.
Jerarquía de herencia
CComObjectRootBase
IUnknown
CComCachedTearOffObject
Requisitos
Encabezado: atlcom.h
CComCachedTearOffObject::AddRef
Incrementa el recuento de referencias del objeto CComCachedTearOffObject
en 1.
STDMETHOD_(ULONG, AddRef)();
Valor devuelto
Valor que puede ser útil para los diagnósticos y las pruebas.
CComCachedTearOffObject::CComCachedTearOffObject
Constructor .
CComCachedTearOffObject(void* pv);
Parámetros
pv
[in] Puntero al IUnknown
de CComCachedTearOffObject
.
Comentarios
Inicializa el miembro CComContainedObject
, m_contained.
CComCachedTearOffObject::~CComCachedTearOffObject
El destructor .
~CComCachedTearOffObject();
Comentarios
Libera todos los recursos asignados y llama a FinalRelease.
CComCachedTearOffObject::FinalConstruct
Llama a m_contained::FinalConstruct
para crear m_contained
, el objeto CComContainedObject
<contained
> utilizado para acceder a la interfaz implementada por la clase desplazable.
HRESULT FinalConstruct();
Valor devuelto
Valor HRESULT estándar.
CComCachedTearOffObject::FinalRelease
Llama a m_contained::FinalRelease
para liberar m_contained
, el objeto CComContainedObject
<contained
>.
void FinalRelease();
CComCachedTearOffObject::m_contained
Objeto CComContainedObject derivado de la clase desplazable.
CcomContainedObject <contained> m_contained;
Parámetros
contained
[in] La clase desplazable, derivada de CComTearOffObjectBase
y las interfaces que desea que admita el objeto desplazable.
Comentarios
Los métodos m_contained
heredados se usan para acceder a la interfaz desplazable en la clase de desmontaje a través de los objetos desplazables QueryInterface
, FinalConstruct
y FinalRelease
.
CComCachedTearOffObject::QueryInterface
Recupera un puntero a la interfaz solicitada.
STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);
Parámetros
iid
[in] GUID de la interfaz que se solicita.
ppvObject
[out] Puntero al puntero de interfaz identificado por iid o NULL si la interfaz no se encuentra.
Valor devuelto
Valor HRESULT estándar.
Comentarios
Si la interfaz solicitada es IUnknown
, devuelve un puntero al IUnknown
propio de CComCachedTearOffObject
e incrementa el recuento de referencias. De lo contrario, consulta la interfaz de la clase desplazable mediante el método InternalQueryInterface heredado de CComObjectRootEx
.
CComCachedTearOffObject::Release
Disminuye el recuento de referencias en 1 y, si el recuento de referencias es 0, elimina el objeto CComCachedTearOffObject
.
STDMETHOD_(ULONG, Release)();
Valor devuelto
En compilaciones que no son de depuración, siempre devuelve 0. En las compilaciones de depuración, devuelve un valor que puede ser útil para los diagnósticos o las pruebas.
Consulte también
CComTearOffObject (clase)
CComObjectRootEx (clase)
Información general sobre la clase