Вы находитесь на странице: 1из 9

Controles de ActiveX

Daniel Hidalgo Escuela Polit ecnica Nacional

Abstract
En el siguiente documento se expondr a informaci on referente a los Controles de ActiveX, as como tambi en la puesta en pr actica y creaci on de un control que estar a hospedado en un aplicacion WPF

1.2

Elementos de ActiveX

ActiveX incluye tecnolog as tanto cliente como servidor: Los Controles ActiveX son objetos interactivos en una p agina Web que provee funciones controlables por el usuario y ya ayudan a resaltar el movimiento del sitio Web. Los documentos ActiveX permiten a los usuarios ver documentos no HTML, como ser documentos de Microsoft Excel o archivos de Word, a trav es de un navegador Web. El script de ActiveX controla el comportamiento de varios controles ActiveX en conjunto y/u otros Applets de Java desde el navegador o desde el servidor. La m aquina virtual de Java permite a cualquier navegador soportado por ActiveX ejecutar applets de Java e integrar applets de java con controles ActiveX. ActiveX Server Framework provee un n umero de funciones basadas en servidores, como ser seguridad, acceso a base de datos y otras.

ActiveX

ActiveX es un conjunto de tecnolog as de Microsoft que permiten incluir contenido interactivo en la World Wide Web. Tiempo atr as, el contenido de la Web era est atico, es decir texto e im agenes en 2 dimensiones. Con ActiveX, los sitios cobran vida utilizando efectos multimedia, objetos interactivos, y aplicaciones sosticadas que crean un entorno similar al de un CD-ROM de buena calidad. ActiveX provee el nexo que une una variedad de tecnolog as que logran darle movimiento a los sitios Web.

1.1

Benecios de Active

El contenido ActiveX es entretenido e impactante por lo que ayuda a atraer y retener clientes. Es abierto y tiene soporte cross-plataform para Macintosh, Windows y Unix. Herramientas familiares de una gran variada de proveedores y lenguajes de programaci on, incluyendo Visual Basic, Visual C++, Borland Delphi, Borland C++ y Java. Los desarrolladores pueden utilizar lo que saben y comenzar a producir al instante. Ya existe una gran variedad de controles ActiveX disponibles para el uso de los Webmasters. Est andares industriales, con soporte para industrias claves y est andares impuestos por el p ubico como ser HTML, TCP/IP, Java, COM y otros

1.3

Qu e puedes hacer?

ActiveX lleva a m aximo los recursos de creatividad e innovaci on y permite que estos trabajen en conjunto en el mismo sitio Web.

1.4

Qu e es lo importante?

ActiveX hace f acil y r apida la tarea de los desarrolladores Web a la hora de crear sitios interactivos u nicos, que hacen que la Internet sea cada vez m as u til y productiva

Page 1

1.5

C omo se compara con Java?

ActiveX extiende las capacidades del lenguaje Java permitiendo a los programadores de este lenguaje integrar sus applets con la riqueza de ActiveX. ActiveX une los applets con objetos creados en otros lenguajes, de manera que los programadores de Java pueden linkear con controles ActiveX directamente desde sus programas en Java.

pr acticamente todas as plataformas: Linux, Mac o Windows, independientemente del navegador web. Ya los Controles ActiveX, ocialmente s olo funcionan en Internet Explorer y en ambiente Windows. Adem as, existe una diferencia m as preocupante entre los dos: a diferencia de los applets Java, los Controles ActiveX, una vez cargados por el browser, tienen acceso ilimitado a cualquier aspecto del sistema operativo y del hardware de la computadora.

1.6

Qui en lo soporta?

Peque nas, medianas y grandes empresas de software est an creando controles ActiveX actualmente, incluyendo compa n as como Borland, Oracle y Sybase/Powersoft. Como resultado de su trabajo, ya existen m as de 1000 controles ActiveX disponibles para utilizar.

1.7

En d onde se ejecuta?
Fig 1: Controles ActiveX en InternetExplorer

ActiveX es soportado actualmente por Windows. Microsoft est a trabajando con MetroWorks para elaborar el soporte en plataformas Macintosh, y tambi en est a trabajando con Bristol y MainSoft para elaborar soporte en plataformas Unix.

Historia

Controles ActiveX

ActiveX fue dise nado para que componentes de software pudieran ser reutilizados m as tarde, sin importar el idioma en que fueron programados. Por lo tanto, un desarrollador pod a usar uno o m as de esos componentes para incorporar sus funcionalidades a un software. Ya los controles ActiveX son peque nos programas de extensi on OCX, que tambi en son llamados complementos. Estos archivos se pueden incorporar a sitios web para permitirles recursos adicionales al navegador web al mejorar la experiencia de navegaci on ayudando con tareas, tales como la instalaci on de actualizaciones de seguridad en Microsoft Update., recoger datos del usuario, reproducir determinados videos o simplemente mostrar una animaci on. Algunos sitios web exigen la instalaci on de controles ActiveX para ver el sitio o realizar determinadas tareas en el mismo. Cuando visita uno de estos sitios, Windows Internet Explorer le pregunta si desea instalar el control Active. De manera muy simplista, podemos comparar los Controles ActiveX a los applets Java, ya que los dos son peque nos programas que el navegador le descarga y le ejecuta al usuario. Sin embargo, tienen diferencias signicativas. Los applets Java funcionan en

La tecnolog a fue creada en 1996 por Microsoft como parte del desarrollo de las tecnolog as Component Object Model (COM) y Object Linking and Embedding (OLE), esta u ltima responsable por la posibilidad de insertar una hoja de Excel dentro de un documento de Word, por ejemplo. A partir de Internet Explorer 3.0 (1996), Microsoft a nadi o soporte para la inclusi on de controles ActiveX en contenidos HTML.

Herramientas para el Desarrollo de Controles ActiveX

Ya que ActiveX es independiente del lenguaje (language-independent), casi cualquier herramienta de desarrollo puede ser usada para la implementacion de Controles ActiveX. Entre las herramientas m as populares se encuentran Delphi de la compa nia Borland, PowerBuilder de la compa nia Powersoft y el arsenal de herramientas de la compa nia Microsoft (Visual Basic, Visual C++, Visual J++, ...).

4.1

Soporte para la Implementaci on de Controles ActiveX

Existen diversas maneras de crear Controles ActiveX usando 3GLs (3GL, Third Generation Language):

Page 2

Usando la Classes).

MFC

(Microsoft

Foundation

Usando la ATL (ActiveX Template Library. Esta es la manera elegida por C++ Builder 5.0).

Usando el BaseCtrl Framework.

La MFC es la m as ampliamente usada. Esta permite a los desarrolladores concentrarse en el comportamiento del objeto en vez de en las interfaces del mismo. Su desventaja es el (elevado) tama no de los controles y la necesidad de un DLL en tiempo de ejecuci on para que el Contenedor soporte al control. La ATL permite generar c odigo cada vez que se necesite, mediante el uso de Templates. As , se evita el uso de librer as o DLLs, que en otro caso, deber an acompa nar a la implementaci on del Control. ATL requiere que se derive una clase a partir de Templates base. Mediante la ATL, es mucho m as dif cil implementar las interfaces del objeto, debido a que se debe crear cada una de las interfaces que se necesiten para cierta aplicaci on. Adem as, la descripci on en IDL (Interface Description Language) de las interfaces del objeto (Type Library), no es autom aticamente generada mediante el c odigo que implementa dichas interfaces. BaseCtrl es una librer a liviana, muy similar a la ATL, pero que no usa Templates. BaseCtrl provee un Modelo, f acil de entender, para el desarrollo de Controles ActiveX. Sin embargo, este modelo no es tan f acil como el presentado por la ATL y presenta una poca exibilidad.

Fig 2: Herramientas de ActiveX

5
5.1

Desarrollo de Controles ActiveX en C++ Builder 5.0


Estructura de un Control ActiveX

Un Control ActiveX est a conformado por diversos elementos cada uno de los cuales desarrolla una funci on espec ca. Entre los elementos est an: Un control VCL (Visual Component Library), un Objeto COM que envuelve al anterior (wraper) control y expone sus propiedades, m etodos, y eventos; y una o m as Librer as de Tipos (Type Libraries). 5.1.1 Control VCL

4.2

Herramientas Comerciales

La primera herramienta que tuvo capacidades para el desarrollo de Controles ActiveX fue Visual C++ (de Microsoft). Mediante Visual J++ es tambi en posible crear Controles ActiveX. Borland provee a C++ Builder y Delphi como herramientas para el desarrollo de Controles ActiveX. PowerBuilder es otra herramienta de desarrollo, cliente/servidor, apta para el desarrollo de aplicaciones relacionadas con ActiveX.

La base de la implementaci on de un Control ActiveX en C++ Builder es un Control VCL. Al crear un Control ActiveX, primero se tiene que dise nar o escoger un control VCL desde el cual empezar a implementar el Control ActiveX. 5.1.2 Encapsulador para ActiveX

Es un Objeto COM que sirve como Objeto Encapsulador para el Control VCL. El Encapsulador para ActiveX expone las propiedades y m etodos del Control VCL mediante su interfaz por defecto.

Page 3

5.1.3

Librer a de Tipo (Type Library)

Esta informacion de tipo provee una forma para que el Control ActiveX siendo creado, muestre sus servicios a la Aplicaci on Contenedora (Host Application). 5.1.4 P agina de Propiedades

Temporizador Multimedia El Temporizador Multimedia fue Implementado mediante el Componente VCL, TTimer. Este encapsula toda la funcionalidad ofrecida, por la API de Windows, para la creaci on de Temporizadores Multimedia. Adquisici on de Datos desde Puertos del PC El ujo de datos desde y hacia la planta Movilab, es controlado por una Tarjeta de Adquisici on de Datos ubicada en el bus ISA. 5.2.2 Registro en el Sistema del Control ActiveX

Es posible, de manera opcional, darle al Control ActiveX una Pagina de Propiedades (Property Page). La P agina de Propiedades permite al usuario de una Aplicaci on Contenedora (cliente), ver y editar las propiedades del control.

5.2

Creaci on de Controles ActiveX

Un Control ActiveX es un componente que integra y extiende la funcionalidad de cualquier Aplicaci on Contenedora que soporta el uso de Controles ActiveX. Un Control ActiveX tambi en puede ser usado en documentos HTML y visto mediante navegadores de internet compatibles con ActiveX. Los siguientes son los pasos para crear un Control ActiveX: 1. Dise ne y cree al Control VCL que implementara la funcionalidad base del Control ActiveX. 2. Use el wizard para Controles ActiveX, este generara un Control ActiveX a partir del Control VCL creado. 3. Registre el Control ActiveX en el Registro del Sistema. 4. Pruebe el Control ActiveX en todas las aplicaciones potenciales. 5.2.1 Dise no del Componente VCL

Despu es de crear el Control ActiveX, este se tiene que registrar para que otras aplicaciones puedan encontrarlo en el sistema y usarlo. Para registrar un Control ActiveX se selecciona en el IDE Run |RegisterActiveXServer. Antes de borrar un Control ActiveX, este debe eliminarse del Registro del Sistema. Para esto se selecciona el men u del IDE Run |RegisterActiveXServer. Una manera m as conable y directa de Registrar el Control ActiveX en el sistema, es aquella que usa al comando regsvr32 o que ejecuta al archivo del sistema operative regsvr32.exe. Este comando se ejecuta mediante la aplicaci on en el men u de Inicio de Windows, Ejecutar... 5.2.3 Pruebas de Desempe no para el Control ActiveX generado

Los componentes de C++ Builder son todos parte de una jerarqu a de clases llamada la Librer a de Componentes Visuales (VCL, Visual Component Library). La siguiente es su jerarqu a (de clases).

Para probar un Control ActiveX, este debe importarse a un package File-New Package como un Control ActiveX de modo que pueda instalarse en la Paleta de Componentes de C++ Builder. Luego de instalado, el Control ActiveX puede incluirse en una forma y probarse como si fuera un Control VCL. El Control debe tambi en probarse en todos los Contenedores ActiveX en que se usara. Para hacer debug a un Control ActiveX, se selecciona Run Parameters y se ingresa el nombre de la Aplicaci on Servidor *.exe en el campo Host Application. Seleccionando Run-Run se ejecuta a la Aplicaci on Cliente o Servidor, y ser a posible jar breakpoints en el Control ActiveX.

Ejecuci on

Fig 3: Jerarqu a de clases de VCL

Los controles ActiveX se ejecutan directamente en el sistema para el que han sido compilados. La mayor a de los compiladores optimizar an el c odigo ActiveX por la eliminaci on de c odigo innecesario o redundante.

Page 4

Cargar el control

Los controles ActiveX, son perdurables, es decir, cuando se bajan de Internet, el navegador Web guardar a en disco una copia del control. Antes de salvar en disco un control ActiveX, el navegador Web lleve a cabo tres comprobaciones (licencia, versi on y rma) con el n de garantizar la seguridad y proteger los derechos de propiedad del mismo.

Uno de los peligros inherentes a las funciones binarias y extendidas a todo el sistema es la posibilidad de que generen conictos de nombres. Para solucionar este problema, la arquitectura ActiveX marca cada interfaz con un identicador u nico a escala global. El algoritmo utilizado garantiza su unicidad. Por consiguiente, un programa ActiveX que solicite un identicador correcto siempre acceder a a la interfaz adecuada. Otra de la ventaja de usar funciones en interfaces ActiveX, se deriva del protocolo Distributed COM de Microsoft, o DCOM. Con este protocolo los programas ActiveX pueden invocar funciones ubicadas no s olo dentro del sistema sino en cualquier punto de la red. El soporte a las interfaces distribuidas procede de un proceso denominado marshaling (enganche).

Comprobaci on de licencia

Para evitar el uso sin licencia de los controles ActiveX en las p aginas Web se ha incluido un mecanismo especial de protecci on, seg un el cual la distribuci on de los controles se acompa na de una licencia al desarrollador. Con esta licencia, los usuarios reciben permiso para insertar el control en herramientas como Visual Basic, Visual J++ y Visual C++. Si no se dispone de esa licencia, el usuario tan solo podr a visualizar el control dentro de una p agina Web o en una aplicaci on existente, nunca modicar su modo de actuar.

11

Creaci on de un Control ActiveX

Interfaces ActiveX

Las interfaces ActiveX son colecciones de funciones interrelacionadas. Las interfaces ActiveX no han sido dise nadas en el ambito de la POO, y no tienen relaci on alguna con las clases o la herencia.

Para habilitar la interacci on mejorada con los exploradores, puede utilizar controles Microsoft ActiveX en la aplicaci on basada en WPF. A continuaci on se muestra c omo hospedar Microsoft Windows Media Player como un control en una p agina de WPF.

10

Funciones binarias

11.1

Creaci on del proyecto

Las interfaces activeX, se pueden considerar como funciones ActiveX, pero como funciones a nivel binario. Las funciones normales, al ser miembros de una clase, s olo existen en c odigo fuente y, por tanto, dejan de ser accesibles una vez que se compilan. En cambio, las interfaces ActiveX se encuentran en el extremo opuesto: s olo pueden llamarse despu es de haber sido compiladas en forma binaria. Una vez hecho esto, las funciones ActiveX pasan a estar disponibles para todo el sistema. Cualquier programa compatible con ActiveX, con independencia de c omo haya sido creado (con C++, Java, Visual Basic u otro lenguaje), puede invocar funciones binarias sin necesidad del c odigo fuente. Esta peculiar caracter stica conforma un tipo de programa particular, llamado software de componentes, que ofrece ciertas ventajas con respecto al dise no tradicional orientado a objetos.

Cree un proyecto de aplicaci on de WPF denominado HostingAxInWpf

Fig 4: Creaci on del proyecto WPF Agregue un proyecto de biblioteca de controles de Windows Forms a la soluci on, y asigne al proyecto el nombre WmpAxLib.

Page 5

Fig 5: Agregar Biblioteca de controles

Fig 8: Cuadro de elecci on de elmentos Haga clic en la pesta na Componentes COM, seleccione el control Reproductor de Windows Media y, a continuaci on, haga clic en Aceptar.

Fig 6: Soluci on con ambos royectos En el proyecto WmpAxLib, agregue una referencia al ensamblado del Reproductor de Windows Media, que se denomina wmp.dll. Fig 9: Componente de Reproductor de Windows Media El control del Reproductor de Windows Media se agregar a al Cuadro de herramientas.

Fig 7: Referencia a wmp.dll Haga clic con el bot on secundario del mouse en el Cuadro de herramientas y seleccione Elegir elementos.

Fig 10: Cuadro de Herramientas

Page 6

En el Explorador de soluciones, haga clic con el bot on secundario del mouse en el archivo UserControl1 y seleccione Cambiar nombre

Fig 13: Supercie de dise no Fig 11: Cambiar nombre del archivo Cambie el nombre a WmpAxControl.cs En la ventana Propiedades, establezca el valor de la propiedad Dock del control del Reproductor de Windows Media en Fill.

Fig 12: Archivo cambiado el nombre Fig 14: Propiedades Compile el proyecto de biblioteca de controles WmpAxLib.

11.2

Crear el control

Abra WmpAxControl.vb o WmpAxControl.cs en el Dise nador de Windows Forms. En el Cuadro de herramientas, agregue el control del Reproductor de Windows Media a la supercie de dise no.

11.3

Hospedar

En el proyecto HostingAxInWpf, agregue una referencia al ensamblado de interoperabilidad del control ActiveX generado.

Page 7

Abra MainWindow.xaml en WPF Designer. Asigne el nombre grid1 al elemento Grid.

Fig 18: Asignar nombre al grid En la vista de dise no o en la vista XAML, seleccione el elemento Window. Fig 15: Agregando referencia Agregue una referencia al ensamblado WindowsFormsIntegration, que se denomina WindowsFormsIntegration.dll. En la ventana Propiedades, haga clic en la pesta na Eventos.

Fig 19: Propiedades Fig 16: Agregando referencia Agregue una referencia al ensamblado de Windows Forms, que se denomina System.Windows.Forms.dll. Haga doble clic en el evento Loaded. Inserte el c odigo siguiente para controlar el evento Loaded. Presione F5 para compilar y ejecutar la aplicaci on.

Fig 17: Agregando referencia

Fig 21: Ejecuci on del proyecto

Page 8

12

Conclusiones

1. Los controles de ActiveX, son muy u tiles para que la navegaci on en el explorador sea m as amigable y el usuario no tenga dicultades. 2. La creaci on de un control ActiveX no es muy complicada dependiendo de la funcionalidad del mismo. 3. Se pueden crear controles ActiveX para incluir el Reproductor de Windows Media en una pagina web. 4. Tambi en se pueden crear controles con contorl ActiveX MFC

13

Referencias

1. http://www2.udec.cl/sscheel/pagina%20virus/activex.htm 2. http://www.microsoft.com/eses/security/resources/activex-whatis.aspx 3. http://es.wikipedia.org/wiki/ActiveX 4. http://www.enlactualidad.com/2010/12/queson-controles-activex-y-cuando-debesinstalarlos/ 5. http://www.waldyd.8m.com/Implementacion.htm 6. http://www.buenastareas.com/ensayos/ControlesActivex/374963.html 7. http://msdn.microsoft.com/eses/library/ms742735%28v=vs.100%29.aspx?cssave-lang=1&cs-lang=csharp#code-snippet-2

Page 9

Вам также может понравиться