Freigeben über


- 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

86sktbds.collapse_all(de-de,VS.110).gifÖffentliche Methoden

Name

Description

CComClassFactory2::CreateInstance

Erstellt ein Objekt des angegebenen CLSID.

CComClassFactory2::CreateInstanceLic

Erstellen eines Lizenzschlüssel angegeben, erstellt ein Objekt des angegebenen CLSID.

CComClassFactory2::GetLicInfo

Ruft die Informationen ab, die die Lizenzierungsfunktionen der Class Factory beschreiben.

CComClassFactory2::LockServer

Sperrt die Klassenfactory im Arbeitsspeicher.

CComClassFactory2::RequestLicKey

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

CComObjectRootEx

IClassFactory2

CComClassFactory2

Anforderungen

Header: möchten

Siehe auch

Referenz

CComClassFactoryAutoThread-Klasse

CComClassFactorySingleton-Klasse

CComObjectRootEx-Klasse

CComGlobalsThreadModel

Weitere Ressourcen

ATL-Klassenübersicht