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 :
DECLARE_CLASSFACTORY déclare la fabrique de classe pour être CComClassFactory.
DECLARE_AGGREGATABLE déclare que votre objet peut être regroupé.
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