Condividi tramite


CComClassFactory2 Class

Questa classe implementa l'interfaccia IClassFactory2.

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

Parametri

  • licenza
    Classe che implementa le seguenti funzioni statiche:

    • static BOOL VerifyLicenseKey( BSTR bstr);

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

    • BOOL statico IsLicenseValid( );

Membri

Metodi pubblici

Nome

Descrizione

CComClassFactory2::CreateInstance

Crea un oggetto del CLSID specificato.

CComClassFactory2::CreateInstanceLic

Dato un codice di licenza, viene creato un oggetto del CLSID specificato.

CComClassFactory2::GetLicInfo

Recupera informazioni che descrivono le funzionalità di gestione licenze di class factory.

CComClassFactory2::LockServer

Blocca il class factory in memoria.

CComClassFactory2::RequestLicKey

Crea e restituisce un codice di licenza.

Note

CComClassFactory2 implementa l'interfaccia IClassFactory2, che è un'estensione IClassFactory. Creazione di un oggetto dei comandi diIClassFactory2 tramite una licenza. Una class factory eseguito su un computer con licenza può fornire una chiave di licenza runtime. Questo codice consente di licenza un'applicazione creare un'istanza degli oggetti quando una licenza a macchina completa non esiste.

Gli oggetti ATL in genere acquisiscono una class factory derivazione da CComCoClass. Questa classe include macro DECLARE_CLASSFACTORY, che dichiara CComClassFactory come la factory della classe predefinita. Per utilizzare CComClassFactory2, specificare la macro DECLARE_CLASSFACTORY2 nella definizione di classe dell'oggetto. Di seguito è riportato un esempio:

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, il parametro di modello a CComClassFactory2, deve implementare le funzioni VerifyLicenseKey, GetLicenseKeye IsLicenseValidstatico. L'esempio seguente è un esempio di una classe semplice di licenza:

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 deriva da entrambi i CComClassFactory2Base e licenza. CComClassFactory2Base, a sua volta, deriva da IClassFactory2 e da CComObjectRootEx< CComGlobalsThreadModel >.

Gerarchia di ereditarietà

CComObjectRootBase

license

CComObjectRootEx

IClassFactory2

CComClassFactory2

Requisiti

Header: atlcom.h

Vedere anche

Riferimenti

CComClassFactoryAutoThread Class

CComClassFactorySingleton Class

CComObjectRootEx Class

CComGlobalsThreadModel

Altre risorse

ATL Class Overview