Sdílet prostřednictvím


Změna výchozí třída a agregace modelu

Používá ATL CComCoClass definovat výchozí třídu factory a agregace model pro objekt.CComCoClassUrčuje dvě následující makra:

Buď tato výchozí nastavení můžete přepsat zadáním jiného makra ve své definici třídy.Například pomocí CComClassFactory2 namísto CComClassFactory , zadejte 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

Jsou dvě makra, které definují třídu factory DECLARE_CLASSFACTORY_AUTO_THREAD a DECLARE_CLASSFACTORY_SINGLETON.

ATL používá také typedef mechanismus implementují výchozí chování.Například DECLARE_AGGREGATABLE makro používá typedef definovat typ s názvem _CreatorClass, který potom odkazované v celém ATL.Všimněte si, že v odvozené třídě typedef pomocí stejného názvu jako základní třída typedef výsledkem ATL pomocí své definice a anuluje výchozí nastavení.

Viz také

Referenční dokumentace

Základy objektů COM ATL

Další zdroje

Agregace a třídu Factory makra