Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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