Windows Script Components  

Crear una biblioteca de tipos de Script Component

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

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.

Generar bibliotecas de tipos dinámicamente

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

  1. En la secuencia de comandos del archivo de componente de secuencia de comandos, cree una instancia del objeto Component.GenerateTypeLib; para ello, utilice una sintaxis como la siguiente:
    set oTL = CreateObject("Scriptlet.GenerateTypeLib")
  2. Establezca las propiedades siguientes del objeto Component.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.
  3. Llame al método Write del objeto typelib para crear el archivo .tlb y regístrelo.
  4. Si desea crear una biblioteca de tipos adicional, llame al método Reset del objeto GenerateTypeLib para borrar la lista de archivos de componentes de secuencia de comandos de la propiedad AddURL, restaurar las direcciones URL y otras propiedades que desee y, a continuación, vuelva a llamar al método Write.

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>

Interfaz de línea de comandos

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

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

Solucionar problemas con las bibliotecas de tipos

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.

Consulte también

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.