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
Metodi pubblici
Nome |
Descrizione |
---|---|
Crea un oggetto del CLSID specificato. |
|
Dato un codice di licenza, viene creato un oggetto del CLSID specificato. |
|
Recupera informazioni che descrivono le funzionalità di gestione licenze di class factory. |
|
Blocca il class factory in memoria. |
|
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
IClassFactory2
CComClassFactory2
Requisiti
Header: atlcom.h
Vedere anche
Riferimenti
Classe di CComClassFactoryAutoThread
Classe di CComClassFactorySingleton