Compartir a través de


Cambiar el modelo predeterminado del generador y de agregación de clases

ATL utiliza CComCoClass para definir el modelo predeterminado de generador y la agregación de clase del objeto.CComCoClass especifica las dos macros siguientes:

Puede reemplazar cualquiera de estos valores predeterminados especificando otra macro en la definición de clase.Por ejemplo, para utilizar CComClassFactory2 en lugar de CComClassFactory, especifique la macro de DECLARE_ CLASSFACTORY2 :

class ATL_NO_VTABLE CMyClass2 :
   public CComObjectRootEx<CComSingleThreadModel>,
   public CComCoClass<CMyClass2, &CLSID_MyClass>,
   public IDispatchImpl<IMyClass, &IID_IMyClass, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
   public IDispatchImpl<IMyDualInterface, &__uuidof(IMyDualInterface), &LIBID_NVC_ATL_COMLib, /* wMajor = */ 1, /* wMinor = */ 0>
{
public:
   DECLARE_CLASSFACTORY2(CMyLicense)

   // Remainder of class declaration omitted

Otras dos macros que definen un generador de clases son DECLARE_CLASSFACTORY_AUTO_THREAD y DECLARE_CLASSFACTORY_SINGLETON.

ATL también utiliza el mecanismo de typedef para implementar el comportamiento predeterminado.Por ejemplo, la macro de DECLARE_AGGREGATABLE utiliza typedef para definir un tipo denominado _CreatorClass, que se hace referencia en ATL.Observe que en una clase derivada, typedef utilizando el mismo nombre que los resultados de typedef de clase base en ATL mediante la definición y reemplazar el comportamiento predeterminado.

Vea también

Referencia

Fundamentos de objetos COM de ATL

Otros recursos

Macros de generador de agregación y la clase