> ## 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.

# スクリプト言語から COM インターフェイスを操作する

> IDispatch と IEngineLoader（InprocLoader/OutprocLoader）を介して、Windows 上の VBScript、JScript、およびその他のスクリプト言語から ABBYY FineReader Engine の COM インターフェイスを操作します。

<Note>
  このトピックは Windows 用 FRE に適用されます。
</Note>

ABBYY FineReader Engine 12 は、COM インターフェイスでの動的バインディングをサポートしています。

* ほぼすべての ABBYY FineReader Engine 12 のインターフェイスは IDispatch から派生しています (例外は、クライアント側で実装される一部のコールバック インターフェイスです) 。
* スクリプト言語 (VBScript や JScript など) は動的バインディングのみをサポートします。そのため、これらのインターフェイスが IDispatch を継承していることにより、これらの言語から ABBYY FineReader Engine API を使用するために必要な追加作業は最小限で済みます。唯一、[Engine](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface) オブジェクトだけは COM メソッド CoCreateObject を使って作成できません。Engine をロードするには、[IEngineLoader](/ja/fine-reader/engine/api-reference/engine-loaders/iengineloader) インターフェイスのいずれかのメソッドを使用します。このインターフェイスは、Engine のインプロセス ロードとアウトプロセス ロードをそれぞれ提供する 2 つのオブジェクト、[InprocLoader](/ja/fine-reader/engine/api-reference/engine-loaders/inprocloader) と [OutprocLoader](/ja/fine-reader/engine/api-reference/engine-loaders/outprocloader) に実装されています。これらのオブジェクトはいずれも、使用しているスクリプト言語で用意されているメソッドで作成でき、その後 [InitializeEngine](/ja/fine-reader/engine/api-reference/engine-loaders/iengineloader/initializeengine-method) メソッドを呼び出して Engine をロードできます。
* Engine オブジェクトの "Create..." または "Load..." という名前のメソッドで作成される他のオブジェクトは、スクリプト言語から直接作成して使用できます。
* IEngineLoader インターフェイスには、null オブジェクトへの参照を返す NullObject プロパティもあります。スクリプト言語では null 自体はオブジェクトではありませんが、既定の動作を行うために、一部のメソッドでは null パラメーターを受け取る必要があります。 (たとえば、[IFRDocument::Analyze](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/analyze-method) メソッドでは、parameters オブジェクトの代わりに null を渡すことができ、その場合はロードされたプロファイルの既定設定で解析が実行されます。)

<Warning>
  エンドユーザーのコンピューターにアプリケーションをインストールする際には、FREngine.dll の登録が必要です。FREngine.dll を登録するには、次のコマンドラインを使用します。
</Warning>

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

例えば、JavaScript の ActiveXObject 関数を使って Engine オブジェクトを作成できます。

```csharp theme={null}
// EngineLoader オブジェクトを作成する
var EngineLoader = new ActiveXObject( "FREngine.OutprocLoader" );
...
// Engine オブジェクトを取得する
var Engine = EngineLoader.InitializeEngine( CustomerProjectId, LicensePath, LicensePassword, "", "", false );
// Customer Project ID、オンライン ライセンス ファイルへのパス、オンライン ライセンスのパスワードを指定する
```

VBScript では、CreateObject メソッドを使用します。

```csharp theme={null}
' EngineLoaderオブジェクトを作成する
Set EngineLoader = CreateObject( "FREngine.OutprocLoader" )
...
' Engineオブジェクトを取得する
Set Engine = EngineLoader.InitializeEngine( CustomerProjectId, LicensePath, LicensePassword, "", "", False )
```

Perl では、CreateObject メソッドを使用します。

```csharp theme={null}
# EngineLoaderオブジェクトを作成する
$EngineLoader = $WScript->CreateObject( 'FREngine.OutprocLoader' );
...
# Engineオブジェクトを取得する
$Engine = $EngineLoader->InitializeEngine( CustomerProjectId, LicensePath, LicensePassword, '', '', 0 );
```

<div id="samples">
  ## サンプル
</div>

スクリプト言語で ABBYY FineReader Engine を使用する簡単なアプリケーションについては、JavaScript、VBScript、Perl 向けの [Hello](/ja/fine-reader/engine/guided-tour/samples#hello) サンプルを参照してください。

<div id="see-also">
  ## 関連項目
</div>

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