Modification de la fabrique de classe par défaut et le modèle de regroupement

ATL utilise CComCoClass pour définir le modèle par défaut classe usine et agrégation pour votre objet. CComCoClass spécifie les deux macros suivantes:

Vous pouvez substituer ou l'autre de ces valeurs par défaut en spécifiant une autre macro dans votre définition de classe. Par exemple, pour utiliser CComClassFactory2 au lieu de CComClassFactory, spécifiez la macro DECLARE_CLASSFACTORY2:

classe CMyClass:..., nbsp ; public CComCoClass < CMyClass & CLSID_CMyClass >
{
public :
   DECLARE_CLASSFACTORY2(CMyLicense)

...
}

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

ATL utilise également le mécanisme de typedef pour implémenter le comportement par défaut. Par exemple, la macro DECLARE_AGGREGATABLE utilise typedef pour définir un type appelé _CreatorClass, qui est alors la référence tout au long d'ATL Notez que dans une classe dérivée, un typedef en utilisant le même nom que la classe de base typedef résultats dans ATL à l'aide de votre définition et de substitution du comportement par défaut.

Index