Puede generar una biblioteca de tipos para el componente de secuencia de comandos que contenga información de sus interfaces y miembros. En algunas aplicaciones host (como Visual Basic), las bibliotecas de tipos son necesarias a fin de habilitar eventos para el componente de secuencia de comandos, mientras que en otras, las bibliotecas de tipos son opcionales. Sin embargo, incluso si no es necesaria una biblioteca de tipos, la generación de una puede hacer que el trabajo con un componente de secuencia de comandos sea más fácil y con menos errores en la aplicación host.
Por ejemplo, si utiliza Visual Basic como aplicación host, use el cuadro de diálogo Referencias para seleccionar la biblioteca de tipos de un componente de secuencia de comandos. Esto permite enlazar eventos al componente de secuencia de comandos y hacerlos visibles en Visual Basic. Además, cuando escribe código Visual Basic que hace referencia al componente de secuencia de comandos, Visual Basic usa la información de la biblioteca de tipos para completar instrucciones y en el Examinador de objetos para que pueda ver y usar fácilmente las propiedades, métodos y eventos que el componente de secuencia de comandos expone.
Nota Para obtener información acerca de cómo usar una biblioteca de tipos en la aplicación host, consulte la documentación de la aplicación.
Para crear una biblioteca de tipos de componentes de secuencia de comandos
Se genera un archivo .tlb para el componente de secuencia de comandos con el mismo nombre que el archivo componente de secuencia de comandos, se escribe en la carpeta donde se encuentra el archivo .wsc y se registra en el Registro de Windows.
Para obtener un control más preciso sobre la generación de bibliotecas de tipos, puede generar la biblioteca de tipos dinámicamente desde una secuencia de comandos dentro del archivo componente de secuencia de comandos o puede utilizar una interfaz de línea de comandos.
El módulo de tiempo de ejecución del componente de secuencia de comandos incluye una interfaz de automatización implementada por el objeto Component.GenerateTypeLib. Puede utilizar este objeto en una secuencia de comandos para generar una biblioteca de tipos desde el archivo componente de secuencia de comandos. Esto resulta muy útil para crear una biblioteca de tipos automáticamente cuando se registra el componente de secuencia de comandos.
Para crear una biblioteca de tipos de componentes de secuencia de comandos dinámicamente
set oTL = CreateObject("Scriptlet.GenerateTypeLib")
Propiedad/Método | Descripción |
---|---|
AddURL | (Método) Agrega la dirección URL del archivo componente de secuencia de comandos a partir del cual se generará la biblioteca de tipos. Se puede llamar a este método varias veces para incluir varios componentes de secuencia de comandos en la biblioteca de tipos. |
Path | (Propiedad) La ruta y el archivo en donde la biblioteca de tipos se escribirá. La ruta predeterminada es el directorio actual y el nombre predeterminado es el nombre del archivo de componente de la secuencia de comandos con una extensión .tlb. Si el objeto no puede crear la biblioteca específica, se crea de forma predeterminada un biblioteca de tipos llamada .tlb. |
Doc | (Propiedad) Cadena con información que se almacena en el Registro con la información de la biblioteca de tipos. |
GUID | (Propiedad) GUID de la biblioteca de tipos (no se trata del GUID del componente de secuencia de comandos). Si no proporciona un GUID, el objeto GenerateTypeLib creará uno, pero la biblioteca de tipos tendrá un GUID distinto en cada equipo.
GUID debe ser exactamente en este formato, en el que x representa un valor hexadecimal: {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} |
Name | (Propiedad) Nombre interno de la biblioteca de tipos. Este nombre se muestra en algunas aplicaciones, como el Explorador de objetos de Visual Basic. |
MajorVersion | (Propiedad) Un valor entero que Ud. asigna. |
MinorVersion | (Propiedad) Un valor entero que Ud. asigna. |
Por ejemplo, la siguiente secuencia de comandos de un elemento <registration> crea una biblioteca de tipos dinámicamente.
Nota Es necesario incluir una sección CDATA para hacer opaca la secuencia de comandos del elemento <script>. Para obtener información, consulte Archivos de componentes de secuencia de comandos y compatibilidad XML.
<registration description="Mi componente de prueba" progid="Component.PruebaComponent" version="1" classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}"> <script language="VBScript"> <![CDATA[ Function Register() Set oTL = CreateObject("Scriptlet.TypeLib") oTL.AddURL "d:\components\MiComponente.wsc" ' Dirección URL de la secuencia de comandos. oTL.AddURL "d:\components\SuComponente.wsc" oTL.Path = "d:\components\MiComponente.tlb" ' Ruta.tlb. oTL.Doc = "Ejemplo de biblioteca de tipos de componentes" ' Cadena de documentación. oTL.GUID = "{a1e1e3e0-a252-11d1-9fa1-00a0c90fffc0}" oTL.Name = "MiComponenteTLib" ' Nombre interno del archivo tlb. oTL.MajorVersion = 1 oTL.MinorVersion = 0 oTL.Write ' Escribir biblioteca de tipos en el disco. oTL.Reset ' Borrar la lista de direcciones URL de AddURL/. End Function ]]> </script> </registration>
Si trabaja más cómodamente con la ventana Símbolo del sistema, puede llamar al programa Rundll32.exe para crear bibliotecas de tipos.
Para crear una biblioteca de tipos desde el símbolo del sistema
rundll32.exe ruta de acceso\scrobj.dll,GenerateTypeLib opciones
Donde:
-name:Name |
---|
-file:Path |
-doc:\"Doc\" |
-guid:GUID |
-major:MajorVersion |
-minor:MinorVersion |
-URL:AddURL |
Por ejemplo, el comando siguiente crea una biblioteca de tipos denominada MiComponente.tlb a partir del componente de secuencia de comandos MiComponente.wsc (el comando se muestra en varias líneas para mayor claridad):
rundll32.exe c:\winnt\system32\scrobj.dll,GenerateTypeLib -name:MiComponenteTLib -file:d:\componentes\MiComponente.tlb -doc:\"Ejemplo de biblioteca de tipos de componentes\" -guid:{a1e1e3e0-a252-11d1-9fa1-00a0c90fffc0} -major:1 -minor:0 -URL:d:\componentes\MiComponente.wsc
El proceso de generación de una biblioteca de tipos puede fallar por varios motivos. Puede que el error que aparezca no sea lo suficientemente claro en todos los casos para averiguar dónde se halla el problema. Si no puede generar una biblioteca de tipos, busque el error en la lista siguiente de causas posibles.
Nota Es posible definir un componente de secuencia de comandos en el que las funciones de propiedad get y put tengan distintos números de argumentos, pero no se puede crear una biblioteca de tipos de ese componente de secuencia de comandos.
Contenido de los archivos de componentes de secuencia de comandos | Crear información de registro | Comprobar errores en archivos de Script Component | Archivos de componentes de secuencia de comandos y compatibilidad XML
Ayuda de Javascript y Vbscript para Javascripts.astalaweb.com. |