Partager via


Classe CComClassFactory2

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

86sktbds.collapse_all(fr-fr,VS.110).gifMé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

Classe de CComClassFactoryAutoThread

Classe de CComClassFactorySingleton

Classe de CComObjectRootEx

CComGlobalsThreadModel

Autres ressources

Vue d'ensemble de la classe ATL