- Klasse CComClassFactory2
Diese Klasse implementiert die Schnittstelle IClassFactory2.
template <
class license
>
class CComClassFactory2 : public IClassFactory2,
public CComObjectRootEx<CComGlobalsThreadModel>,
public license
Parameter
Lizenz
Eine Klasse, die die folgenden statischen Funktionen implementiert:static BOOL VerifyLicenseKey( BSTR bstr);
static BOOL GetLicenseKey( DWORD dwReserved**, BSTR*** pBstr);
statisches BOOL IsLicenseValid( );
Mitglieder
Öffentliche Methoden
Name |
Description |
---|---|
Erstellt ein Objekt des angegebenen CLSID. |
|
Erstellen eines Lizenzschlüssel angegeben, erstellt ein Objekt des angegebenen CLSID. |
|
Ruft die Informationen ab, die die Lizenzierungsfunktionen der Class Factory beschreiben. |
|
Sperrt die Klassenfactory im Arbeitsspeicher. |
|
Erstellt und gibt einen Lizenzschlüssel zurück. |
Hinweise
CComClassFactory2IClassFactory2 implementiert die Schnittstelle, die eine Erweiterung von IClassFactory ist.IClassFactory2-Steuerelemente gelten Erstellung durch eine Lizenz ein.Eine Klassenfactory, die auf einem Computer lizenzierten ausführt, kann einen Ablauflizenzschlüssel bereitstellen.Dieser Lizenzschlüssel ermöglicht es einer Anwendung, Objekte zu instanziieren, wenn eine vollständige Compute Lizenz nicht vorhanden ist.
ATL-Objekte rufen normalerweise eine Klassenfactory ab, indem von CComCoClass berechnen.Diese Klasse enthält das Makro DECLARE_CLASSFACTORY, das CComClassFactory als Standardklassenfactory deklariert.Um CComClassFactory2 zu verwenden, geben Sie die DECLARE_CLASSFACTORY2-Makro in der Klassendefinition des Objekts an.Beispiel:
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, der Vorlagenparameter zu CComClassFactory2, muss die statischen Funktionen VerifyLicenseKey, GetLicenseKey und IsLicenseValid implementieren.Im folgenden Beispiel einer einfachen Lizenzklasse:
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 abgeleitet von CComClassFactory2Base und von Lizenz.CComClassFactory2Base berechnet wiederum von IClassFactory2 und von CComObjectRootEx< CComGlobalsThreadModel >.
Vererbungshierarchie
CComObjectRootBase
license
IClassFactory2
CComClassFactory2
Anforderungen
Header: möchten
Siehe auch
Referenz
CComClassFactoryAutoThread-Klasse
CComClassFactorySingleton-Klasse