Crear un DLL ActiveX para usar con ASP.
Autor Mauro Rondinelli
 

Veremos como crear componentes ActiveX personalizados, un ejemplo de componente ActiveX es por ejemplo CDONTS que lo utilizamos para enviar emails u otro mas comun es ADODB que lo utilizamos para el trabajo con bases de datos, de ahi sus siglas ADO (ActiveX Data Object) DB (Database).

Primero que nada tenemos que tener encuenta que no todos los servicios de hosting permiten el uso de componentes personalizados y algunos solo lo permiten dependiendo el plan que utilicemos, el plan Developer de WaveNet permite este tipo de controles, pero si solo queremos probarlos en nuestra PC con el Personal Web Server no hay problema.

PRIMER PASO

El primer paso es crear el componente, para esto abrimos el Visual Basic 5/6 y seleccionamos crear un proyecto del tipo DLL ActiveX...

Una ves echo esto, debemos modificar el nombre del proyecto a ASPTest y el de la clase que nos aparece por defecto lo modificamos a Test, quedaria asi...

Tengan en cuenta estos cambios dado que si nos lo realizamos nuestro script ASP no funcionara, mas adelante les explicare en detalle la funcion de dichos nombres. Para terminar la configuracion de nuestro projecto falta indicarle que vamos a interactuar con una pagina ASP para ello tenemos que agregar la referencia desde el menu Proyecto > Referencias y seleccionamos "Microsoft Active Server Pages Object Library"...

Ahora guardamos todo y dentro de la clase Test agregamos el siguiente codigo...

Option Explicit

Private ScriptingContext As ScriptingContext
Private Application As Application
Private Request As Request
Private Response As Response
Private Server As Server
Private Session As Session

Public Sub OnStartPage(PassedScriptingContext As ScriptingContext)
Set ScriptingContext = PassedScriptingContext
Set Application = ScriptingContext.Application
Set Request = ScriptingContext.Request
Set Response = ScriptingContext.Response
Set Server = ScriptingContext.Server
Set Session = ScriptingContext.Session
End Sub

Public Sub OnEndPage()
Set ScriptingContext = Nothing
Set Application = Nothing
Set Request = Nothing
Set Response = Nothing
Set Server = Nothing
Set Session = Nothing
End Sub

Public Sub Mensaje(Texto As String)
Response.Write "<b><font color='red'>" & Texto & "</font></b>"
End Sub

EXPLICANDO EL CODIGO

Como vamos a interactuar con las paginas ASP debemos declarar las variables que nos permitan heredar todos los objetos de la pagina ASP ¿se entiende? por ejemplo heredamos el objeto Response el cual lo podemos utilizar desde Visual Basic como si fuese la pagina ASP en si mismo, es decir que si ponemos Response.Write("Hola") en Visual Basic eso saldra en la pagina ASP.

Despues nos encontramos con el procedimiento 'OnStartPage' que se ejecuta de forma automatica al llamar a nuestro componente desde la pagina ASP mediante Server.CreateObject, este procedimiento trae un parametro con todos los objetos de esa pagina ASP los cuales debemos asignarselos a las variables anteriormente declaradas. El procedimiento 'OnEndPage' se produce cuando descargamos nuestro componente desde la pagina ASP, lo mejor que podemos hacer aqui es limpiar todas los objetos, los dos procedimientos anteriores van a ser siempre igual.

Lo que sigue es nuestro procedimiento personalizado, en este caso va a mostrar un texto (en negrita y de color rojo) que se le pasara como parametro (Texto) ¿ok? . Bueno guardamos todo y lo compilamos a DLL.

LA PAGINA ASP

La pagina ASP que llama a este componente personalizado no es muy diferente a las que siempre hacemos...

<html>
<body>
<%
Dim Test

Set Test = Server.CreateObject("ASPTest.Test")

Test.Mensaje "Hola, esta es una prueba."

Set Test = Nothing

%>
</body>
</html>

La linea 'Set Test = Server......' lo que hace es crear el componente personalizado, primero se pone el nombre del proyecto "ASPTest" y luego la clase a la cual queremos tener acceso en este caso "Test", luego utilizamos el unico metodo de esta clase que es Mensaje seguido de un texto entre comillas, por ultimo liberamos el objeto.

La ejecucion de la pagina ASP nos dara como resultado lo siguiente...

Hola, esta es una prueba.

CONCLUSION

Este componente es muy basico, la verdad casi inservible, pero en base a esto podemos crear componentes mas complejos que nos facilitaran la programacion de las paginas ASP o hasta si el componente creado es muy bueno podemos comercializarlo dado que es una tecnologia bastante extendida y utilizada. Bajate el codigo completo!. Saludos ""

 
WWW.ELGURUPROGRAMADOR.COM.AR