Поделиться через


CComClassFactory Class

Этот класс реализует интерфейс IClassFactory.

class CComClassFactory : public IClassFactory,  
   public CComObjectRootEx< CComGlobalsThreadModel >

Члены

Открытые методы

Имя

Описание

CComClassFactory::CreateInstance

Создает объект указанного идентификатора CLSID.

CComClassFactory::LockServer

Блокирует фабрика класса в памяти.

Заметки

CComClassFactory реализует интерфейс IClassFactory, содержащий методы для создания объекта заданного идентификатора CLSID, а также блокирует фабрика класса в памяти для новых объектов для создания быстрее. IClassFactory должен быть реализован для каждого класса, который регистрируется в системном реестре и к которому можно присвоить CLSID.

Обычно объекты библиотеки ATL безо фабрику класса, производного от CComCoClass. Этот класс содержит макрос DECLARE_CLASSFACTORY, который объявляет CComClassFactory по умолчанию как фабрика класса. Чтобы переопределить это значение по умолчанию, укажите один из макросов DECLARE_CLASSFACTORYXXX в определении класса. Например, макрос DECLARE_CLASSFACTORY_EX использует указанный класс для фабрики классов:

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.

Приведенное выше определение класса указывает, что CMyClassFactory будет использоваться как фабрика класса объекта по умолчанию. CMyClassFactory должно быть производным от CComClassFactory, и переопределить CreateInstance.

Библиотеки ATL предоставляет 3 остальных макросов, объявляются фабрику класса:

Требования

Header: atlcom.h

См. также

Ссылки

CComObjectRootEx Class

CComGlobalsThreadModel

Другие ресурсы

ATL Class Overview