CComClassFactory2 Class
Этот класс реализует интерфейс IClassFactory2.
template <
class license
>
class CComClassFactory2 : public IClassFactory2,
public CComObjectRootEx<CComGlobalsThreadModel>,
public license
Параметры
лицензия
Класс, который реализует следующие статические функции:static BOOL VerifyLicenseKey( BSTR bstr );
static BOOL GetLicenseKey( DWORD dwReserved**, BSTR*** pBstr );
статическое IsLicenseValid (BOOL);
Члены
Открытые методы
Имя |
Описание |
---|---|
Создает объект указанного идентификатора CLSID. |
|
Данный ключ лицензии, создающий объект указанного идентификатора CLSID. |
|
Получает сведения, описывающая возможности лицензирования фабрики класса. |
|
Блокирует фабрика класса в памяти. |
|
Создает и возвращает ключ лицензии. |
Заметки
CComClassFactory2 реализует интерфейс IClassFactory2, являющийся расширением IClassFactory. Создание с помощью управления IClassFactory2 объект лицензию. Фабрика класса, выполняемых на лицензированном компьютере может предоставить ключ лицензии для среды выполнения. Этот ключ лицензии, позволяет приложению для создания экземпляров объектов при полной лицензия компьютера не существует.
Обычно объекты библиотеки ATL безо фабрику класса, производного от CComCoClass. Этот класс содержит макрос DECLARE_CLASSFACTORY, который объявляет CComClassFactory по умолчанию как фабрика класса. Для использования CComClassFactory2 укажите макрос 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
CMyLicense параметр шаблона в CComClassFactory2, должен реализовывать статические функции VerifyLicenseKey, GetLicenseKey и IsLicenseValid. Ниже приведен пример простого класса лицензии.
class CMyLicense
{
protected:
static BOOL VerifyLicenseKey(BSTR bstr)
{
USES_CONVERSION;
return !lstrcmp(OLE2T(bstr), _T("My run-time license key"));
}
static BOOL GetLicenseKey(DWORD /*dwReserved*/, BSTR* pBstr)
{
USES_CONVERSION;
*pBstr = SysAllocString( T2OLE(_T("My run-time license key")));
return TRUE;
}
static BOOL IsLicenseValid() { return TRUE; }
};
CComClassFactory2 наследуется из CComClassFactory2Base, так и от лицензии. CComClassFactory2Base, в свою очередь, является производным от IClassFactory2 и CComObjectRootEx< CComGlobalsThreadModel >.
Иерархия наследования
CComObjectRootBase
license
IClassFactory2
CComClassFactory2
Требования
Header: atlcom.h
См. также
Ссылки
CComClassFactoryAutoThread Class
CComClassFactorySingleton Class