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 |
---|---|
crea un objeto de CLSID especificado. |
|
Dada una clave de licencia, crea un objeto de CLSID especificado. |
|
Recupera información que describe las funciones de autorización de generador de clases. |
|
Bloquea la generador de clases en memoria. |
|
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
IClassFactory2
CComClassFactory2
Requisitos
encabezado: atlcom.h
Vea también
Referencia
CComClassFactoryAutoThread Class
CComClassFactorySingleton Class