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

# Méthode GetNextImageDocument de l’interface IImageSource

> Méthode GetNextImageDocument de l’interface IImageSource dans l’API ABBYY FineReader Engine — Cette méthode est implémentée côté client.

<Note>
  Cette méthode est implémentée dans FRE pour Linux et Windows.
</Note>

Cette méthode est implémentée côté client. Elle renvoie le document image suivant de la file d’attente de traitement d’images de la source.

<Note>
  Sous Windows, cette méthode ne doit être utilisée que si vous ouvrez des images déjà chargées en mémoire — par exemple, à l’aide des méthodes [OpenBitmap](/fr/fine-reader/engine/api-reference/engine-object-iengine-interface/processing-methods/openbitmap-method) ou [OpenDib](/fr/fine-reader/engine/api-reference/engine-object-iengine-interface/processing-methods/opendib-method) de l’objet [Engine](/fr/fine-reader/engine/api-reference/engine-object-iengine-interface). Si vous récupérez des images à partir de fichiers stockés sur disque, implémentez [GetNextImageFile](/fr/fine-reader/engine/api-reference/batch-processor/iimagesource/getnextimagefile-method).
</Note>

L’implémentation de la méthode GetNextImageDocument peut inclure un délai d’attente avant le document image suivant. Toutefois, nous ne recommandons pas d’utiliser des délais d’attente longs, car FineReader Engine n’est pas multithread. Pendant l’attente du document suivant, l’Engine ne pourra pas traiter les messages des processus de reconnaissance ni recevoir les notifications de fin de traitement des pages. Si vous devez malgré tout spécifier un délai d’attente long, la méthode GetNextImageDocument peut renvoyer 0. Dans ce cas, l’Engine continuera à traiter les messages des processus de reconnaissance et à fournir les images reconnues, puis vérifiera au bout d’un certain temps si la file d’attente d’images est vide. Si la file d’attente n’est pas vide (c.-à-d. si [IImageSource::IsEmpty](/fr/fine-reader/engine/api-reference/batch-processor/iimagesource/isempty-method) renvoie FALSE), l’Engine appellera de nouveau la méthode GetNextImageDocument. Toutefois, si la méthode GetNextImageDocument renvoie 0 et qu’il n’y a plus de pages à traiter, FineReader Engine rendra le contrôle à l’utilisateur : la méthode [IBatchProcessor::GetNextProcessedPage](/fr/fine-reader/engine/api-reference/batch-processor/batchprocessor/getnextprocessedpage-method) renverra 0.

* Tous les objets [ImageDocument](/fr/fine-reader/engine/api-reference/image-related-objects/imagedocument) de la file d’attente doivent rester valides jusqu’à la fin du traitement. Pour fonctionner correctement, les objets ImageDocument doivent être créés via l’objet [Engine](/fr/fine-reader/engine/api-reference/engine-object-iengine-interface). S’ils sont créés via l’objet [FRDocument](/fr/fine-reader/engine/api-reference/document-related-objects/frdocument), une erreur peut se produire, car l’objet FRDocument peut être détruit pendant l’appel de la méthode GetNextImageDocument.
* Comme la méthode est implémentée côté client, les restrictions suivantes s’appliquent :
  * tous les fichiers protégés par mot de passe doivent être ouverts manuellement côté client ;
  * les attributs spécifiés dans l’objet [PrepareImageMode](/fr/fine-reader/engine/api-reference/image-related-objects/prepareimagemode) lors de l’initialisation de l’objet [BatchProcessor](/fr/fine-reader/engine/api-reference/batch-processor/batchprocessor) n’affecteront pas les objets ImageDocument de la file d’attente.

<div id="syntax">
  ## Syntaxe
</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">
  ## Paramètres
</div>

Result

\[out, retval] Pointeur vers une variable pointeur de type [IImageDocument](/fr/fine-reader/engine/api-reference/image-related-objects/imagedocument)\* donnant accès au document image suivant dans la file d’attente.

<div id="return-values">
  ## Valeurs de retour
</div>

\[C++ uniquement] Si cette méthode renvoie une valeur autre que S\_OK, cela indique qu’une erreur s’est produite côté client.

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

L’implémentation du client pour cette méthode doit garantir que toutes les exceptions levées à l’intérieur de la méthode sont interceptées et traitées, et qu’aucune exception n’est propagée en dehors de la méthode. La propagation d’une exception en dehors de la méthode peut entraîner des résultats imprévisibles (par exemple, l’arrêt du programme).

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

<Accordion title="Code C#">
  ```csharp theme={null}
  // Exemple d'implémentation d'une source d'images personnalisée qui gère une file d'attente de fichiers image
  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">
  ## Voir aussi
</div>

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

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

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

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