Classe de CComClassFactory
Cette classe implémente l'interface d' IClassFactory .
class CComClassFactory : public IClassFactory,
public CComObjectRootEx< CComGlobalsThreadModel >
Membres
Méthodes publiques
Nom |
Description |
---|---|
Crée un objet de le CLSID spécifié. |
|
Verrouille la fabrique de classe en mémoire. |
Notes
CComClassFactory implémente l'interface d' IClassFactory , qui contient des méthodes pour créer un objet CLSID particulier, ainsi que verrouille la fabrique de classe en mémoire pour permettre de nouveaux objets à créer plus rapidement.IClassFactory doit être implémenté pour chaque classe à que vous stockez dans la base de registres et que vous assignez à le CLSID.
Les objets ATL dans normalement une fabrique de classe en dérivant de CComCoClass.Cette classe inclut un DECLARE_CLASSFACTORY, qui déclare CComClassFactory comme une fabrique de classe par défaut.Pour remplacer cette valeur par défaut, spécifiez l'une des macros d' DECLARE_CLASSFACTORYXXX dans la définition de classe.Par exemple, la macro de DECLARE_CLASSFACTORY_EX utilise la classe spécifiée pour la fabrique de classe :
class ATL_NO_VTABLE CMyCustomClass :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CMyCustomClass, &CLSID_MyCustomClass>,
public IDispatchImpl<IMyCustomClass, &IID_IMyCustomClass, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
DECLARE_CLASSFACTORY_EX(CMyClassFactory)
// Remainder of class declaration omitted.
La définition de classe ci-dessus spécifie que CMyClassFactory sera utilisé comme fabrique de classe par défaut de l'objet.CMyClassFactory doit dériver d' CComClassFactory et remplacer CreateInstance.
ATL fournit trois autres macros qui déclarent une fabrique de classe :
DECLARE_CLASSFACTORY2 utilise CComClassFactory2, qui contrôle la création par une licence.
DECLARE_CLASSFACTORY_AUTO_THREAD utilise CComClassFactoryAutoThread, qui crée des objets dans plusieurs des apartments.
DECLARE_CLASSFACTORY_SINGLETON utilise CComClassFactorySingleton, qui crée un objet unique de CComObjectGlobal .
Configuration requise
Header: atlcom.h