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