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:
DECLARE_CLASSFACTORY dichiara la class factory per essere CComClassFactory.
DECLARE_AGGREGATABLE indicare che l'oggetto può essere aggregatoe.
È 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