Compartir a través de


CComClassFactory2 Class

esta clase implementa la interfaz de IClassFactory2 .

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

Parámetros

  • licencia
    Una clase que implementa las funciones estáticas siguientes:

    • static BOOL VerifyLicenseKey( BSTR bstr);

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

    • BOOL estático IsLicenseValid( );

Members

Métodos públicos

Name

Descripción

CComClassFactory2::CreateInstance

crea un objeto de CLSID especificado.

CComClassFactory2::CreateInstanceLic

Dada una clave de licencia, crea un objeto de CLSID especificado.

CComClassFactory2::GetLicInfo

Recupera información que describe las funciones de autorización de generador de clases.

CComClassFactory2::LockServer

Bloquea la generador de clases en memoria.

CComClassFactory2::RequestLicKey

Crea y devuelve una clave de licencia.

Comentarios

CComClassFactory2 implementa la interfaz de IClassFactory2 , que es una extensión de IClassFactory. Creación de objetos de los controles deIClassFactory2 a través de licencias. Un generador de clases que se ejecuta en un equipo con licencia puede proporcionar una clave de licencia en tiempo de ejecución. Esta clave de licencia permite que una aplicación para crear instancias de objetos cuando no existe una licencia completa del equipo.

Objetos ATL adquieren normalmente un generador de clases derivando de CComCoClass. Esta clase incluye DECLARE_CLASSFACTORYmacros, que declara CComClassFactory mientras el generador predeterminada de la clase. Para utilizar CComClassFactory2, especifique la macro de DECLARE_CLASSFACTORY2 en la definición de clase del objeto. Por ejemplo:

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, el parámetro de plantilla a CComClassFactory2, debe implementar las funciones estáticas VerifyLicenseKey, GetLicenseKey, y IsLicenseValid. A continuación se muestra un ejemplo de una clase simple de licencia:

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 deriva de ambos CComClassFactory2Base y license. CComClassFactory2Base, a su vez, se deriva de IClassFactory2 y de CComObjectRootEx< CComGlobalsThreadModel >.

Jerarquía de herencia

CComObjectRootBase

license

CComObjectRootEx

IClassFactory2

CComClassFactory2

Requisitos

encabezado: atlcom.h

Vea también

Referencia

CComClassFactoryAutoThread Class

CComClassFactorySingleton Class

CComObjectRootEx Class

CComGlobalsThreadModel

Otros recursos

ATL Class Overview