Compartir a través de


Generadores de clases y licencias

Para crear una instancia del control OLE, una aplicación contenedora llama a una función miembro del generador de clases del control. Como el control es en realidad un objeto OLE, el generador de clases es responsable de crear instancias del control. Cada clase de control OLE debe tener un generador de clases.

Otra característica importante de los controles OLE es su capacidad para aplicar una licencia. ControlWizard le permite incorporar licencias durante la creación del proyecto de control. Para más información sobre las licencias de control, consulte el artículo Controles ActiveX: Licencias de un control ActiveX.

En la tabla siguiente, se enumeran varias macros y funciones que se usan para declarar e implementar el generador de clases del control y para la licencia del control.

Generadores de clases y licencias

Macro o función Descripción
DECLARE_OLECREATE_EX Declara el generador de clases para una página de propiedades o control OLE.
IMPLEMENT_OLECREATE_EX Implementa la función GetClassID del control y declara una instancia del generador de clases.
BEGIN_OLEFACTORY Comienza la declaración de cualquier función de licencia.
END_OLEFACTORY Finaliza la declaración de cualquier función de licencia.
AfxVerifyLicFile Comprueba si un control tiene licencia para su uso en un equipo determinado.

DECLARE_OLECREATE_EX

Declara un generador de clases y la función miembro GetClassID de la clase de control.

DECLARE_OLECREATE_EX(class_name)

Parámetros

class_name
Nombre de la clase de control.

Comentarios

Use esta macro en el archivo de encabezado de clase de control para un control que no admite licencias.

Tenga en cuenta que esta macro tiene el mismo propósito que el ejemplo de código siguiente:

BEGIN_OLEFACTORY(CMyAxCtrl)
END_OLEFACTORY(CMyAxCtrl)

Requisitos

Encabezado: afxctl.h

IMPLEMENT_OLECREATE_EX

Implementa el generador de clases del control y la función miembro GetClassID de la clase de control.

IMPLEMENT_OLECREATE_EX(
   class_name,
    external_name,
    l,
    w1,
    w2,
    b1,
    b2,
    b3,
    b4,
    b5,
    b6,
    b7,
    b8)

Parámetros

class_name
Nombre de la clase de la página de propiedades del control.

external_name
Nombre del objeto expuesto a las aplicaciones.

l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8
Componentes de CLSID de la clase. Para más información sobre estos parámetros, consulte la sección Comentarios sobre IMPLEMENT_OLECREATE.

Comentarios

Esta macro debe aparecer en el archivo de implementación de cualquier clase de control que utiliza la macro DECLARE_OLECREATE_EX o las macros BEGIN_OLEFACTORY y END_OLEFACTORY. El nombre externo es el identificador del control OLE que se expone a otras aplicaciones. Los contenedores usan este nombre para solicitar un objeto de esta clase de control.

Requisitos

Encabezado: afxctl.h

BEGIN_OLEFACTORY

Comienza la declaración del generador de clases en el archivo de encabezado de la clase de control.

BEGIN_OLEFACTORY(class_name)

Parámetros

class_name
Especifica el nombre de la clase de control cuyo generador de clases es este.

Comentarios

Las declaraciones de las funciones de licencia del generador de clases deben comenzar inmediatamente después de BEGIN_OLEFACTORY.

Requisitos

Encabezado: afxctl.h

END_OLEFACTORY

Finaliza la declaración del generador de clases del control.

END_OLEFACTORY(class_name)

Parámetros

class_name
El nombre de la clase de control cuyo generador de clases es este.

Requisitos

Encabezado: afxctl.h

AfxVerifyLicFile

Llame a esta función para comprobar que el archivo de licencia nombrado por pszLicFileName es válido para el control OLE.

BOOL AFXAPI AfxVerifyLicFile(
    HINSTANCE  hInstance,
    LPCTSTR  pszLicFileName,
    LPOLESTR  pszLicFileContents,
    UINT cch = -1);

Parámetros

hInstance
Identificador de instancia del archivo DLL asociado al control con licencia.

pszLicFileName
Apunta a una cadena de caracteres que finaliza en un valor NULL y que contiene el nombre de archivo de licencia.

pszLicFileContents
Apunta a una secuencia de bytes que debe coincidir con la secuencia encontrada al inicio del archivo de licencia.

cch
Número de caracteres en pszLicFileContents.

Valor devuelto

Distinto de cero si el archivo de licencia existe y comienza con la secuencia de caracteres en pszLicFileContents; de lo contrario, 0.

Comentarios

Si cch es -1, esta función usa:

_tcslen(pszLicFileContents);

Requisitos

Encabezado: afxctl.h

Consulte también

Macros y variables globales