Udostępnij za pośrednictwem


Klasa CComClassFactory2

Ta klasa implementuje IClassFactory2 interfejsu.

template < 
   class license 
> 
class CComClassFactory2 : public IClassFactory2, 
   public CComObjectRootEx<CComGlobalsThreadModel>, 
   public license

Parametry

  • licencji
    Klasy, która implementuje statycznej następujące funkcje:

    • statyczne BOOL VerifyLicenseKey (BSTRbstr**);**

    • static BOOL GetLicenseKey( DWORD dwReserved**, BSTR*** pBstr );

    • statyczne BOOL IsLicenseValid ();

Członkowie

Metody publiczne

Nazwa

Opis

CComClassFactory2::CreateInstance

Tworzy obiekt określony identyfikator CLSID.

CComClassFactory2::CreateInstanceLic

Biorąc pod uwagę klucz licencji tworzy obiekt określony identyfikator CLSID.

CComClassFactory2::GetLicInfo

Pobiera informacje opisujące licencją Fabryczna klasa.

CComClassFactory2::LockServer

Blokuje fabryki klasy w pamięci.

CComClassFactory2::RequestLicKey

Tworzy i zwraca klucza licencji.

Uwagi

CComClassFactory2implementuje IClassFactory2 interfejs, który jest rozszerzeniem z IClassFactory.IClassFactory2 kontroli obiektu tworzenia za pośrednictwem licencji.Klasy fabrycznej wykonywanie na komputerze licencjonowanych zapewnia, że klucz licencji run-time.Ten klucz licencji umożliwia aplikacji do tworzenia wystąpień obiektów, gdy licencji pełnego maszyny nie istnieje.

Zwykle obiekty ATL nabyć Fabryczna klasa przez wynikających z CComCoClass.Klasa ta obejmuje makro DECLARE_CLASSFACTORY, która deklaruje CComClassFactory jako fabryczna Klasa domyślna.Aby użyć CComClassFactory2, określ DECLARE_CLASSFACTORY2 makro w definicji klasy obiektu użytkownika.Na przykład:

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, parametr szablonu do CComClassFactory2, musi implementować funkcji statycznej VerifyLicenseKey, GetLicenseKey, i IsLicenseValid.Oto przykład klasy proste licencji:

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

CComClassFactory2pochodzi z obu CComClassFactory2Base i licencji.CComClassFactory2Base, z kolei pochodzi od IClassFactory2 i CComObjectRootEx < CComGlobalsThreadModel >.

Hierarchii dziedziczenia

CComObjectRootBase

license

CComObjectRootEx

IClassFactory2

CComClassFactory2

Wymagania

Nagłówek: atlcom.h

Zobacz też

Informacje

Klasa CComClassFactoryAutoThread

Klasa CComClassFactorySingleton

Klasa CComObjectRootEx

CComGlobalsThreadModel

Inne zasoby

Omówienie klasy ATL