> ## 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étodo GetNextImageDocument de la interfaz IImageSource

> Método GetNextImageDocument de la interfaz IImageSource en la API de ABBYY FineReader Engine — Este método está implementado del lado del cliente.

<Note>
  Este método está implementado en FRE para Linux y Windows.
</Note>

Este método está implementado del lado del cliente. Devuelve el siguiente documento de imagen de la cola de procesamiento de imágenes del origen.

<Note>
  En Windows, este método debe usarse solo si abre imágenes que ya se han cargado en memoria; por ejemplo, mediante los métodos [OpenBitmap](/es/fine-reader/engine/api-reference/engine-object-iengine-interface/processing-methods/openbitmap-method) o [OpenDib](/es/fine-reader/engine/api-reference/engine-object-iengine-interface/processing-methods/opendib-method) del objeto [Engine](/es/fine-reader/engine/api-reference/engine-object-iengine-interface). Si obtiene imágenes de archivos del disco, implemente [GetNextImageFile](/es/fine-reader/engine/api-reference/batch-processor/iimagesource/getnextimagefile-method).
</Note>

Una implementación del método GetNextImageDocument puede incluir un tiempo de espera para el siguiente documento de imagen. Sin embargo, no recomendamos implementar tiempos de espera largos, ya que FineReader Engine no es multihilo. Mientras espera el siguiente documento, el Engine no podrá procesar mensajes de los procesos de reconocimiento ni recibir notificaciones de que se ha completado el procesamiento de páginas. Si realmente necesita especificar un tiempo de espera largo, el método GetNextImageDocument puede devolver 0. En este caso, el Engine seguirá procesando mensajes de los procesos de reconocimiento y proporcionando imágenes reconocidas y, al cabo de un tiempo, comprobará si la cola de imágenes está vacía. Si la cola no está vacía (es decir, si [IImageSource::IsEmpty](/es/fine-reader/engine/api-reference/batch-processor/iimagesource/isempty-method) devuelve FALSE), el Engine volverá a llamar al método GetNextImageDocument. Sin embargo, si el método GetNextImageDocument devuelve 0 y no hay más páginas que procesar, FineReader Engine devolverá el control al usuario: el método [IBatchProcessor::GetNextProcessedPage](/es/fine-reader/engine/api-reference/batch-processor/batchprocessor/getnextprocessedpage-method) devolverá 0.

* Todos los objetos [ImageDocument](/es/fine-reader/engine/api-reference/image-related-objects/imagedocument) de la cola deben seguir siendo válidos hasta el final del procesamiento. Para garantizar un funcionamiento correcto, los objetos ImageDocument deben crearse mediante el objeto [Engine](/es/fine-reader/engine/api-reference/engine-object-iengine-interface). Si se crean mediante el objeto [FRDocument](/es/fine-reader/engine/api-reference/document-related-objects/frdocument), puede producirse un error porque el objeto FRDocument se destruye durante la llamada al método GetNextImageDocument.
* Como el método está implementado del lado del cliente, se aplican las siguientes restricciones:
  * todos los archivos protegidos con contraseña deben abrirse manualmente del lado del cliente;
  * los atributos especificados en el objeto [PrepareImageMode](/es/fine-reader/engine/api-reference/image-related-objects/prepareimagemode) durante la inicialización del objeto [BatchProcessor](/es/fine-reader/engine/api-reference/batch-processor/batchprocessor) no afectarán a los objetos ImageDocument de la cola.

<div id="syntax">
  ## Sintaxis
</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">
  ## Parámetros
</div>

Result

\[out, retval] Puntero a una variable de puntero de [IImageDocument](/es/fine-reader/engine/api-reference/image-related-objects/imagedocument)\* que proporciona acceso al siguiente documento de imagen de la cola.

<div id="return-values">
  ## Valores de retorno
</div>

\[Solo para C++] Si este método devuelve un valor distinto de S\_OK, significa que se produjo un error del lado del cliente.

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

La implementación cliente de este método debe garantizar que todas las excepciones que se produzcan dentro del método se capturen y se gestionen, y que ninguna excepción se propague fuera del método. La propagación de una excepción fuera del método puede dar lugar a resultados impredecibles (como la finalización del programa).

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

<Accordion title="Código C#">
  ```csharp theme={null}
  // Implementación de ejemplo de una fuente de imágenes personalizada que mantiene una cola de archivos de imagen
  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">
  ## Consulte también
</div>

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

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

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

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