Condividi tramite


Modificare la factory della classe predefinita e il modello di aggregazione

Utilizzare CComCoClass ATL definire la factory della classe predefinita e il modello di aggregazione per l'oggetto.CComCoClass specifica le seguenti due macro:

È possibile eseguire l'override di queste impostazioni predefinite specificando un'altra macro nella definizione della classe.Ad esempio, per utilizzare CComClassFactory2 anziché CComClassFactory, specificare la macro 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

Altre due macro che definiscono una class factory sono DECLARE_CLASSFACTORY_AUTO_THREAD e DECLARE_CLASSFACTORY_SINGLETON.

ATL utilizza il meccanismo typedef per implementare il comportamento predefinito.Ad esempio, la macro DECLARE_AGGREGATABLE utilizza typedef per definire un tipo denominato _CreatorClass, che viene fatto riferimento in qualsiasi ATL.Si noti che in una classe derivata, typedef utilizzando gli stessi nomi dei risultati typedef della classe base in ATL mediante la definizione di eseguire l'override del comportamento predefinito.

Vedere anche

Riferimenti

Principi fondamentali di oggetti COM ATL

Altre risorse

Macro di class factory e di aggregazione