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

# GetNextImageDocument-Methode der IImageSource-Schnittstelle

> GetNextImageDocument-Methode der IImageSource-Schnittstelle in der ABBYY FineReader Engine API — Diese Methode ist clientseitig implementiert.

<Note>
  Diese Methode ist in FRE für Linux und Windows implementiert.
</Note>

Diese Methode ist clientseitig implementiert. Sie gibt das nächste Bilddokument aus der Bildverarbeitungswarteschlange der Quelle zurück.

<Note>
  Unter Windows sollte diese Methode nur verwendet werden, wenn Sie Bilder öffnen, die bereits in den Speicher geladen wurden — zum Beispiel mit den Methoden [OpenBitmap](/de/fine-reader/engine/api-reference/engine-object-iengine-interface/processing-methods/openbitmap-method) oder [OpenDib](/de/fine-reader/engine/api-reference/engine-object-iengine-interface/processing-methods/opendib-method) des [Engine](/de/fine-reader/engine/api-reference/engine-object-iengine-interface)-Objekts. Wenn Sie Bilder aus Dateien auf dem Datenträger beziehen, implementieren Sie [GetNextImageFile](/de/fine-reader/engine/api-reference/batch-processor/iimagesource/getnextimagefile-method).
</Note>

Eine Implementierung der Methode GetNextImageDocument kann eine Wartezeit auf das nächste Bilddokument vorsehen. Wir empfehlen jedoch keine langen Wartezeiten, da FineReader Engine nicht multithreaded ist. Während auf das nächste Dokument gewartet wird, kann die Engine keine Nachrichten aus den Erkennungsprozessen verarbeiten und keine Benachrichtigungen über abgeschlossene Seitenverarbeitung empfangen. Wenn Sie dennoch eine lange Wartezeit angeben müssen, kann die Methode GetNextImageDocument 0 zurückgeben. In diesem Fall verarbeitet die Engine weiterhin Nachrichten aus den Erkennungsprozessen und stellt erkannte Bilder bereit; nach einer Weile prüft sie, ob die Bildwarteschlange leer ist. Wenn die Warteschlange nicht leer ist (d. h. wenn [IImageSource::IsEmpty](/de/fine-reader/engine/api-reference/batch-processor/iimagesource/isempty-method) FALSE zurückgibt), ruft die Engine die Methode GetNextImageDocument erneut auf. Gibt die Methode GetNextImageDocument jedoch 0 zurück und sind keine weiteren Seiten mehr zu verarbeiten, gibt FineReader Engine die Steuerung an den Benutzer zurück: Die Methode [IBatchProcessor::GetNextProcessedPage](/de/fine-reader/engine/api-reference/batch-processor/batchprocessor/getnextprocessedpage-method) gibt 0 zurück.

* Alle [ImageDocument](/de/fine-reader/engine/api-reference/image-related-objects/imagedocument)-Objekte in der Warteschlange müssen bis zum Ende der Verarbeitung gültig bleiben. Für einen korrekten Betrieb sollten die ImageDocument-Objekte über das [Engine](/de/fine-reader/engine/api-reference/engine-object-iengine-interface)-Objekt erstellt werden. Werden sie über das [FRDocument](/de/fine-reader/engine/api-reference/document-related-objects/frdocument)-Objekt erstellt, kann ein Fehler auftreten, weil das FRDocument-Objekt während des Aufrufs der Methode GetNextImageDocument zerstört wird.
* Da die Methode clientseitig implementiert ist, gelten die folgenden Einschränkungen:
  * alle passwortgeschützten Dateien sollten clientseitig manuell geöffnet werden;
  * die im Objekt [PrepareImageMode](/de/fine-reader/engine/api-reference/image-related-objects/prepareimagemode) während der Initialisierung des Objekts [BatchProcessor](/de/fine-reader/engine/api-reference/batch-processor/batchprocessor) angegebenen Attribute wirken sich nicht auf die ImageDocument-Objekte in der Warteschlange aus.

<div id="syntax">
  ## Syntax
</div>

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

```cpp theme={null}
HRESULT GetNextImageDocument( IImageDocument** Result );
```

### C\#

```csharp theme={null}
IImageDocument GetNextImageDocument();
```

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

```vb theme={null}
Function GetNextImageDocument() As IImageDocument
```

<div id="parameters">
  ## Parameter
</div>

Result

\[out, retval] Ein Zeiger auf eine Zeigervariable vom Typ [IImageDocument](/de/fine-reader/engine/api-reference/image-related-objects/imagedocument)\*, die Zugriff auf das nächste Bilddokument in der Warteschlange bietet.

<div id="return-values">
  ## Rückgabewerte
</div>

\[Nur C++] Wenn diese Methode einen anderen Wert als S\_OK zurückgibt, bedeutet dies, dass auf Clientseite ein Fehler aufgetreten ist.

<div id="remarks">
  ## Hinweise
</div>

Die Implementierung dieser Methode auf Clientseite muss sicherstellen, dass alle innerhalb der Methode ausgelösten Ausnahmen abgefangen und behandelt werden und dass keine Ausnahmen über die Methode hinaus weitergegeben werden. Die Weitergabe einer Ausnahme über die Methode hinaus kann zu unvorhersehbaren Ergebnissen führen (z. B. zur Beendigung des Programms).

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

<Accordion title="C#-Code">
  ```csharp theme={null}
  // Beispielimplementierung einer benutzerdefinierten Bildquelle, die eine Warteschlange mit Bilddateien verwaltet
  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">
  ## Siehe auch
</div>

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

[GetNextImageFile](/de/fine-reader/engine/api-reference/batch-processor/iimagesource/getnextimagefile-method)

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

[ImageDocument](/de/fine-reader/engine/api-reference/image-related-objects/imagedocument)
