Compartir a través de


Clase de CComTearOffObject

Esta clase implementa una interfaz de rasgón.

template<
   class Base 
>
class CComTearOffObject :
   public Base

Parámetros

  • Base
    La clase de rasgón, derivadas de CComTearOffObjectBase e interfaces desea que el objeto de rasgón admitir.

ATL implementa el rasga interfaces en dos fases — los métodos de CComTearOffObjectBase administran el recuento y QueryInterfacede referencia, mientras que CComTearOffObject implementa IUnknown.

Members

wh8b86c9.collapse_all(es-es,VS.110).gifConstructores públicos

Name

Descripción

CComTearOffObject::CComTearOffObject

el constructor.

CComTearOffObject::~CComTearOffObject

El destructor.

wh8b86c9.collapse_all(es-es,VS.110).gifMétodos públicos

Name

Descripción

CComTearOffObject::AddRef

Incrementa el recuento de referencias de un objeto de CComTearOffObject .

CComTearOffObject::QueryInterface

Devuelve un puntero a la interfaz solicitada en la clase de rasgón o la clase propietaria.

CComTearOffObject::Release

Decrementa para un objeto de CComTearOffObject y destruir.

wh8b86c9.collapse_all(es-es,VS.110).gifmétodos de CComTearOffObjectBase

CComTearOffObjectBase

Constructor.

wh8b86c9.collapse_all(es-es,VS.110).gifmiembros de datos de CComTearOffObjectBase

m_pOwner

Un puntero a CComObject derivado de la clase propietaria.

Comentarios

CComTearOffObject implementa una interfaz de rasgón como objeto independiente se cree instancias que cuando esa interfaz se consulta para.Se elimina el rasgón cuando su recuento de referencia se convierte en cero.Normalmente, se compila una interfaz de rasgón para una interfaz que se utilice raramente, ya que utilizar un rasgón guardar un puntero vtable en todas las instancias del objeto principal.

Debe derivar la clase que implementa el rasgón de CComTearOffObjectBase y de las interfaces desea que el objeto de rasgón admitir.CComTearOffObjectBase templatized en la clase propietaria y el modelo de subprocesos.La clase propietario es la clase del objeto para el que se implementa un rasgón.Si no especifica un modelo de subprocesos, se utiliza el modelo predeterminado de subproceso.

Debe crear un mapa COM para la clase de rasgón.Cuando ATL crea instancias del rasgón, creará CComTearOffObject <CTheTearOffClass> o CComCachedTearOffObject <CTheTearOffClass> .

Por ejemplo, en el ejemplo BEEPER, la clase de CBeeper2 es la clase de rasgón y la clase de CBeeper es la clase propietaria:

class CBeeper2 :
   public ISupportErrorInfo,
   public CComTearOffObjectBase<CBeeper>
{
public:
   CBeeper2() {}
   STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid)
   {
      return (InlineIsEqualGUID(IID_IBeeper, riid)) ? S_OK : S_FALSE;
   }

BEGIN_COM_MAP(CBeeper2)
   COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()
};

class ATL_NO_VTABLE CBeeper :
   public CComObjectRootEx<CComSingleThreadModel>,
   public CComCoClass<CBeeper, &CLSID_Beeper>,
   public IDispatchImpl<IBeeper, &IID_IBeeper, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
   CBeeper()
   {
   }

DECLARE_REGISTRY_RESOURCEID(IDR_BEEPER)

DECLARE_NOT_AGGREGATABLE(CBeeper)

BEGIN_COM_MAP(CBeeper)
   COM_INTERFACE_ENTRY(IBeeper)
   COM_INTERFACE_ENTRY(IDispatch)
   COM_INTERFACE_ENTRY_TEAR_OFF(IID_ISupportErrorInfo, CBeeper2)
END_COM_MAP()

// ISupportsErrorInfo
   STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);


   DECLARE_PROTECT_FINAL_CONSTRUCT()

   HRESULT FinalConstruct()
   {
      return S_OK;
   }

   void FinalRelease()
   {
   }

public:

};

Jerarquía de herencia

Base

CComTearOffObject

Requisitos

encabezado: atlcom.h

Vea también

Referencia

Clase de CComCachedTearOffObject

Otros recursos

Información general de la clase ATL