Classe de CComClassFactory
Essa classe implementa a interface de IClassFactory .
class CComClassFactory : public IClassFactory,
public CComObjectRootEx< CComGlobalsThreadModel >
Membros
Métodos públicos
Nome |
Descrição |
---|---|
Cria um objeto de CLSID especificado. |
|
Bloqueia o factory da classe na memória. |
Comentários
CComClassFactory implementa a interface de IClassFactory , que contém métodos para criar um objeto de um determinado CLSID, bem como bloquear o factory da classe na memória para permitir que os novos objetos criados mais rapidamente.IClassFactory deve ser implementado para cada classe que você registra no Registro do sistema e a qual você atribui a uma CLSID.
Os objetos de ATL geralmente adquirem uma fábrica da classe derivando de CComCoClass.Essa classe inclui DECLARE_CLASSFACTORYmacros, que declara CComClassFactory como o factory de classe padrão.Para substituir essa opção, especifique um dos macros de DECLARE_CLASSFACTORYXXX em sua definição de classe.Por exemplo, a macro de DECLARE_CLASSFACTORY_EX usa a classe especificada para o factory da 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.
A definição de classe anterior especifica que CMyClassFactory será usado como o factory padrão da classe do objeto.CMyClassFactory deve derivar de CComClassFactory e substituir CreateInstance.
ATL fornece outros três macros que declarar uma fábrica da classe:
DECLARE_CLASSFACTORY2 usa CComClassFactory2, que controla a criação através de uma licença.
DECLARE_CLASSFACTORY_AUTO_THREAD usa CComClassFactoryAutoThread, que cria objetos em vários construção.
DECLARE_CLASSFACTORY_SINGLETON usa CComClassFactorySingleton, que constrói um único objeto de CComObjectGlobal .
Requisitos
Cabeçalho: atlcom.h