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
Méthodes publiques
Nom |
Description |
---|---|
Crée un objet de le CLSID spécifié. |
|
Donné licence, crée un objet de le CLSID spécifié. |
|
Récupère des informations décrivant les fonctions de licence de la fabrique de classe. |
|
Verrouille la fabrique de classe en mémoire. |
|
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
IClassFactory2
CComClassFactory2
Configuration requise
Header: atlcom.h
Voir aussi
Référence
Classe de CComClassFactoryAutoThread
Classe de CComClassFactorySingleton