Udostępnij za pośrednictwem


Zmienianie domyślnej klasy fabrycznej i modelu agregacji

Używa ATL CComCoClass do definiowania domyślnej klasy fabrycznej i agregacji modelu obiektu.CComCoClassOkreśla dwa następujące makra:

Albo te ustawienia domyślne można zastąpić przez określenie innego makra w Państwa definicji klasy.Na przykład, aby użyć CComClassFactory2 zamiast CComClassFactory, określ DECLARE_CLASSFACTORY2 makro:

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

Są dwa makr definiujących Fabryczna klasa DECLARE_CLASSFACTORY_AUTO_THREAD i DECLARE_CLASSFACTORY_SINGLETON.

Używa również ATL typedef mechanizmu implementują domyślne zachowanie.Na przykład DECLARE_AGGREGATABLE używa makra typedef , aby zdefiniować typ o nazwie _CreatorClass, następnie odwołują całej ATL.Należy zauważyć, że w klasie pochodnej typedef przy użyciu tej samej nazwy jako klasa podstawowa typedef skutkuje ATL przy użyciu programu definicji i zastępowanie zachowania domyślnego.

Zobacz też

Informacje

Podstawy obiektów COM ATL

Inne zasoby

Agregacja i klasy fabrycznej makra