> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Trabajo con interfaces COM desde un lenguaje de scripting

> Trabaje con las interfaces COM de ABBYY FineReader Engine desde VBScript, JScript y otros lenguajes de scripting en Windows mediante IDispatch e IEngineLoader (InprocLoader/OutprocLoader).

<Note>
  Este tema se aplica a FRE para Windows.
</Note>

ABBYY FineReader Engine 12 admite el enlace dinámico en las interfaces COM:

* Casi todas las interfaces de ABBYY FineReader Engine 12 derivan de IDispatch (las excepciones son algunas de las interfaces de callback implementadas del lado del cliente).
* Los lenguajes de scripting (por ejemplo, VBScript y JScript) solo admiten el enlace dinámico. Por lo tanto, dado que estas interfaces heredan de IDispatch, usar la API de ABBYY FineReader Engine desde estos lenguajes requiere muy poco esfuerzo adicional: solo el objeto [Engine](/es/fine-reader/engine/api-reference/engine-object-iengine-interface) no puede crearse con el método COM CoCreateObject. Para cargar Engine, use uno de los métodos de la interfaz [IEngineLoader](/es/fine-reader/engine/api-reference/engine-loaders/iengineloader). Esta interfaz está implementada en dos objetos que proporcionan, respectivamente, la carga en proceso y fuera del proceso de Engine: [InprocLoader](/es/fine-reader/engine/api-reference/engine-loaders/inprocloader) y [OutprocLoader](/es/fine-reader/engine/api-reference/engine-loaders/outprocloader). Puede crear cualquiera de estos objetos mediante los métodos que proporciona su lenguaje de scripting y, a continuación, llamar al método [InitializeEngine](/es/fine-reader/engine/api-reference/engine-loaders/iengineloader/initializeengine-method) para cargar Engine.
* Los demás objetos creados por los métodos del objeto Engine llamados "Create..." o "Load..." ahora pueden crearse y usarse directamente desde el lenguaje de scripting.
* La interfaz IEngineLoader también proporciona una propiedad NullObject que devuelve una referencia a un objeto nulo. En los lenguajes de scripting, null en sí no es un objeto, pero algunos métodos necesitan recibir parámetros null para aplicar el comportamiento predeterminado. (Por ejemplo, el método [IFRDocument::Analyze](/es/fine-reader/engine/api-reference/document-related-objects/frdocument/analyze-method) puede recibir null en lugar de objetos de parámetros, en cuyo caso el análisis se realiza con la configuración predeterminada del perfil cargado).

<Warning>
  Es necesario registrar FREngine.dll al instalar la aplicación en el equipo del usuario final. Para registrar FREngine.dll, use la siguiente línea de comandos:
</Warning>

```csharp theme={null}
regsvr32 /s /n /i:"<path to the Inc folder>" "<path to FREngine.dll>"
```

Por ejemplo, puede crear el objeto Engine con la función `ActiveXObject` de JavaScript.

```csharp theme={null}
// crear el objeto EngineLoader
var EngineLoader = new ActiveXObject( "FREngine.OutprocLoader" );
...
// obtener el objeto Engine
var Engine = EngineLoader.InitializeEngine( CustomerProjectId, LicensePath, LicensePassword, "", "", false );
// proporcione su Customer Project ID, la ruta al archivo de licencia en línea y la contraseña de la licencia en línea
```

En VBScript, use el método CreateObject:

```csharp theme={null}
' crear el objeto EngineLoader
Set EngineLoader = CreateObject( "FREngine.OutprocLoader" )
...
' obtener el objeto Engine
Set Engine = EngineLoader.InitializeEngine( CustomerProjectId, LicensePath, LicensePassword, "", "", False )
```

En Perl, utilice el método CreateObject:

```csharp theme={null}
# crear el objeto EngineLoader
$EngineLoader = $WScript->CreateObject( 'FREngine.OutprocLoader' );
...
# obtener el objeto Engine
$Engine = $EngineLoader->InitializeEngine( CustomerProjectId, LicensePath, LicensePassword, '', '', 0 );
```

<div id="samples">
  ## Ejemplos
</div>

Consulte el ejemplo [Hello](/es/fine-reader/engine/guided-tour/samples#hello) en JavaScript, VBScript y Perl para ver una aplicación sencilla que ilustra el uso de ABBYY FineReader Engine en lenguajes de scripting.

<div id="see-also">
  ## Consulte también
</div>

[IEngineLoader](/es/fine-reader/engine/api-reference/engine-loaders/iengineloader)
