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

# IImageSource インターフェイスの GetNextImageFile メソッド

> ABBYY FineReader Engine API の IImageSource インターフェイスの GetNextImageFile メソッド — このメソッドはクライアント側で実装されます。

<Note>
  このメソッドは、Linux 版および Windows 版の FRE で実装されています。
</Note>

このメソッドはクライアント側で実装されます。ソースの画像処理キューから次の画像ファイルを返します。

<Note>
  Windows で、すでにメモリに読み込まれている画像を扱う場合 (たとえば、[Engine](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface) オブジェクトの [OpenBitmap](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface/processing-methods/openbitmap-method) または [OpenDib](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface/processing-methods/opendib-method) メソッドを使用する場合) は、[GetNextImageDocument](/ja/fine-reader/engine/api-reference/batch-processor/iimagesource/getnextimagedocument-method) を実装してください。
</Note>

GetNextImageFile メソッドの実装には、次の画像ファイルを待機する時間を含めることができます。ただし、FineReader Engine はマルチスレッドではないため、長い待機時間を設けることは推奨されません。次のファイルを待機している間、Engine は認識プロセスからのメッセージを処理できず、特定のページが処理済みであることを示す通知も受け取れません。長い待機時間を指定する必要がある場合は、GetNextImageFile メソッドが 0 を返すことがあります。この場合、Engine は認識プロセスからのメッセージ処理と認識済み画像の提供を継続し、しばらくしてから画像キューが空かどうかを確認します。キューが空でない場合 (つまり、[IImageSource::IsEmpty](/ja/fine-reader/engine/api-reference/batch-processor/iimagesource/isempty-method) が FALSE を返す場合) 、Engine は GetNextImageFile メソッドを再度呼び出します。ただし、GetNextImageFile メソッドが 0 を返し、処理対象のページがもうない場合、FineReader Engine は制御をユーザーに戻します。つまり、[IBatchProcessor::GetNextProcessedPage](/ja/fine-reader/engine/api-reference/batch-processor/batchprocessor/getnextprocessedpage-method) メソッドは 0 を返します。

<div id="syntax">
  ## 構文
</div>

<div id="c">
  ### C++
</div>

```cpp theme={null}
HRESULT GetNextImageFile( IFileAdapter** Result );
```

### C\#

```csharp theme={null}
IFileAdapter GetNextImageFile();
```

<div id="visual-basic-net">
  ### Visual Basic .NET
</div>

```vb theme={null}
Function GetNextImageFile() As IFileAdapter
```

<div id="parameters">
  ## パラメーター
</div>

Result

\[out, retval] キュー内の次の画像ファイルにアクセスするための [IFileAdapter](/ja/fine-reader/engine/api-reference/batch-processor/ifileadapter)\* ポインター変数へのポインター。

<div id="return-values">
  ## 戻り値
</div>

\[C++ のみ] このメソッドから S\_OK 以外の値が返された場合は、クライアント側でエラーが発生したことを示します。

<div id="remarks">
  ## 注記
</div>

* このメソッドのクライアント実装では、メソッド内でスローされるすべての例外を必ずキャッチして処理し、例外がメソッドの外部へ伝播しないようにする必要があります。例外がメソッドの外部へ伝播すると、予期しない結果 (プログラムの終了など) を招くおそれがあります。
* お使いのライセンスに [Office Formats Opening](/ja/fine-reader/engine/licensing/modules#officeformatsopening) モジュールが含まれている場合は、このメソッドを使用して、[サポートされている形式](/ja/fine-reader/engine/specifications/supported-digital-document-input-formats) のデジタルドキュメントを開くこともできます。

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

<Accordion title="C# コード">
  ```csharp theme={null}
  // 画像ファイルのキューを保持するカスタム画像ソースの実装例
  public class ImageSourceCallback : FREngine.IImageSource
  {
     public ImageSourceCallback( string imageFilesDirectory )
     {
         imageFiles = ImageSourceHelper.LoadFilesNames( imageFilesDirectory );
         nextFileIndex = 0;
     }
     public bool IsEmpty()
     {
         return nextFileIndex >= imageFiles.Length;
     }
     public FREngine.IFileAdapter GetNextImageFile()
     {
         if( !IsEmpty() ) {
             return new FileAdapterCallback( imageFiles[nextFileIndex++] );
         }
         return null;
     }
     public FREngine.IImageDocument GetNextImageDocument()
     {
         ...
     }
     private string[] imageFiles;
     private int nextFileIndex;
  }
  public class FileAdapterCallback : FREngine.IFileAdapter
  {
      ...
  }
  public class ImageSourceHelper
  {
      ...
  }
  ```
</Accordion>

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

[IImageSource](/ja/fine-reader/engine/api-reference/batch-processor/iimagesource)

[GetNextImageDocument](/ja/fine-reader/engine/api-reference/batch-processor/iimagesource/getnextimagedocument-method)

[IsEmpty](/ja/fine-reader/engine/api-reference/batch-processor/iimagesource/isempty-method)

[IFileAdapter](/ja/fine-reader/engine/api-reference/batch-processor/ifileadapter)
