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


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);

Члены

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

Имя

Описание

CComClassFactory2::CreateInstance

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

CComClassFactory2::CreateInstanceLic

Данный ключ лицензии, создающий объект указанного идентификатора CLSID.

CComClassFactory2::GetLicInfo

Получает сведения, описывающая возможности лицензирования фабрики класса.

CComClassFactory2::LockServer

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

CComClassFactory2::RequestLicKey

Создает и возвращает ключ лицензии.

Заметки

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

CComObjectRootEx

IClassFactory2

CComClassFactory2

Требования

Header: atlcom.h

См. также

Ссылки

CComClassFactoryAutoThread Class

CComClassFactorySingleton Class

CComObjectRootEx Class

CComGlobalsThreadModel

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

ATL Class Overview