Partager via


Modifier le modèle par défaut de fabrique de classes et de regroupement

Les utilisations CComCoClass ATL pour définir la fabrique de classes et le regroupement par défaut modèle pour votre objet. CComCoClass spécifie les deux macros suivantes :

Vous pouvez substituer l'une ou l'autre de ces valeurs par défaut en spécifiant une autre macro dans la définition de classe. Par exemple, pour utiliser CComClassFactory2 au lieu d' CComClassFactory, spécifiez 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

Deux autres macros qui définissent une fabrique de classe sont DECLARE_CLASSFACTORY_AUTO_THREAD et DECLARE_CLASSFACTORY_SINGLETON.

ATL utilise également le mécanisme d' typedef pour implémenter le comportement par défaut. Par exemple, la macro d' DECLARE_AGGREGATABLE utilise typedef pour définir un type nommé _CreatorClass, qui est ensuite référencé dans tout ATL. Notez que dans une classe dérivée, typedef à l'aide de le même nom que les résultats d' typedef de classe de base dans ATL à votre définition et substituer le comportement par défaut.

Voir aussi

Référence

Notions de base des objets COM ATL

Autres ressources

Macros de regroupement et de fabrique de classes