Condividi tramite


Classe CComClassFactory2

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

86sktbds.collapse_all(it-it,VS.110).gifMetodi 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

Classe di CComClassFactoryAutoThread

Classe di CComClassFactorySingleton

Classe di CComObjectRootEx

CComGlobalsThreadModel

Altre risorse

I cenni preliminari sulle classi ATL