Partager via


CComClassFactory2, classe

Cette classe implémente l'interface d' IClassFactory2 .

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

Paramètres

  • licence
    Une classe qui implémente des fonctions statiques suivantes :

    • static BOOL VerifyLicenseKey( BSTR bstr);

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

    • BOOL statique IsLicenseValid ( ) ;

Membres

Méthodes publiques

Nom

Description

CComClassFactory2::CreateInstance

Crée un objet de le CLSID spécifié.

CComClassFactory2::CreateInstanceLic

Donné licence, crée un objet de le CLSID spécifié.

CComClassFactory2::GetLicInfo

Récupère des informations décrivant les fonctions de licence de la fabrique de classe.

CComClassFactory2::LockServer

Verrouille la fabrique de classe en mémoire.

CComClassFactory2::RequestLicKey

Crée et retourne la clé de licence.

Notes

CComClassFactory2 implémente l'interface d' IClassFactory2 , qui est une extension d' IClassFactory. Création d'objets de contrôles d'IClassFactory2 via une licence. Une fabrique de classe qui s'exécutent sur un ordinateur - autorisé peut fournir une clé de licence utilisateur. Ce code licence permet à une application d'instancier des objets lorsqu'une licence complète de l'ordinateur n'existe pas.

Les objets ATL dans normalement une fabrique de classe en dérivant de CComCoClass. Cette classe inclut un DECLARE_CLASSFACTORY, qui déclare CComClassFactory comme une fabrique de classe par défaut. Pour utiliser CComClassFactory2, spécifiez la macro de DECLARE_CLASSFACTORY2 dans la définition de classe de votre objet. Par exemple :

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, le paramètre de modèle à CComClassFactory2, doit implémenter les fonctions statiques VerifyLicenseKey, GetLicenseKey, et IsLicenseValid. Voici un exemple d'une classe simple de licence :

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 dérive des deux CComClassFactory2Base et licence. CComClassFactory2Base, ensuite, dérive d' IClassFactory2 et de CComObjectRootEx< CComGlobalsThreadModel >.

Hiérarchie d'héritage

CComObjectRootBase

license

CComObjectRootEx

IClassFactory2

CComClassFactory2

Configuration requise

Header: atlcom.h

Voir aussi

Référence

CComClassFactoryAutoThread, classe

CComClassFactorySingleton, classe

CComObjectRootEx, classe

CComGlobalsThreadModel

Autres ressources

Vue d'ensemble de la classe ATL