> ## 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 OnToolAddBlock de la interfaz IImageViewerEvents

> Método OnToolAddBlock de la interfaz IImageViewerEvents en ABBYY FineReader Engine Visual Components en Windows — Este método se implementa del lado del cliente.

Este método se implementa del lado del cliente. ABBYY FineReader Engine lo llama antes de agregar un nuevo bloque que se haya dibujado con una de las siguientes herramientas de [Image Viewer](/es/fine-reader/engine/visual-components-reference/imageviewer):

* Dibujar área de reconocimiento ([MI\_ChooseTool\_DrawRecognitionArea](/es/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands#mi_choosetool_drawrecognitionarea))
* Dibujar área de texto ([MI\_ChooseTool\_DrawTextBlock](/es/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands#mi_choosetool_drawtextblock))
* Dibujar área de tabla ([MI\_ChooseTool\_DrawTableBlock](/es/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands#mi_choosetool_drawtableblock))
* Dibujar área de imagen ([MI\_ChooseTool\_DrawPictureBlock](/es/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands#mi_choosetool_drawpictureblock))
* Dibujar área de imagen de fondo ([MI\_ChooseTool\_DrawBackgroundPictureBlock](/es/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands#mi_choosetool_drawbackgroundpictureblock))
* Dibujar área de código de barras ([MI\_ChooseTool\_DrawBarcodeBlock](/es/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands#mi_choosetool_drawbarcodeblock))

Consulte la descripción de [Image Viewer Commands](/es/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands) para saber cómo seleccionar estas herramientas.

Este método proporciona al cliente información sobre el bloque dibujado: su tipo y la región. Con este método, es posible cancelar la operación.

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

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

```cpp theme={null}
HRESULT OnToolAddBlock(
  BlockTypeEnum type,
  IFRRectangle* BlockRect,
  VARIANT_BOOL* Cancel
);
```

### C\#

```csharp theme={null}
void OnToolAddBlock(
  BlockTypeEnum type,
  IFRRectangle   BlockRect,
  out bool      Cancel
);
```

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

```vb theme={null}
Sub OnToolAddBlock( _
  type As BlockTypeEnum, _
  BlockRect As IFRRectangle, _
  ByRef Cancel As Boolean _
)
```

<div id="parameters">
  ## Parámetros
</div>

type

\[in] Contiene el tipo del bloque. Consulte la descripción de las constantes de [BlockTypeEnum](/es/fine-reader/engine/api-reference/enumerations/blocktypeenum).

BlockRect

\[in] Contiene las coordenadas del bloque. Las coordenadas se representan mediante el objeto [FRRectangle](/es/fine-reader/engine/api-reference/supplementary-objects-and-methods/frrectangle). Se especifican en píxeles con respecto a la imagen del documento.

Cancel

\[out] Puede establecer esta variable en TRUE para indicar que debe finalizarse el proceso. En este caso, no se creará el bloque.

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

\[Solo para C++] Si este método devuelve un valor distinto de S\_OK, indica que se produjo un error del lado del cliente y, en ese caso, no se tiene en cuenta el valor del parámetro Cancel.

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

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

<div id="see-also">
  ## Consulte también
</div>

[IImageViewerEvents](/es/fine-reader/engine/visual-components-reference/iimageviewerevents)
