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

# OnToolChangeBlockRegion Method of the IZoomViewerEvents Interface

> OnToolChangeBlockRegion method of the IZoomViewerEvents Interface in ABBYY FineReader Engine Visual Components on Windows — This method is implemented on the client-side.

This method is implemented on the client-side. It is called by ABBYY FineReader Engine, before changing a region of the block that has been modified in [Zoom Viewer](/fine-reader/engine/visual-components-reference/zoomviewer) with the help of one of the following tools of [Image Viewer](/fine-reader/engine/visual-components-reference/imageviewer):

* <img src="https://mintcdn.com/abbyy/i-EfCQVmseNiPQcp/images/fine-reader/engine/tb_addpart.gif?s=adca0dfae4207e8af75ec13fa1315932" alt="tb_addPart" width="23" height="22" data-path="images/fine-reader/engine/tb_addpart.gif" /> Add Block Part ([MI\_ChooseTool\_AddBlockPart](/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands#mi_choosetool_addblockpart))
* <img src="https://mintcdn.com/abbyy/i-EfCQVmseNiPQcp/images/fine-reader/engine/tb_delpart.gif?s=da5355ff634033aeff15f5b6429e59aa" alt="tb_delPart" width="23" height="22" data-path="images/fine-reader/engine/tb_delpart.gif" /> Cut Block Part ([MI\_ChooseTool\_CutBlockPart](/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands#mi_choosetool_cutblockpart))

See the description of the [Image Viewer Commands](/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands) to know how these tools can be selected.

It delivers to the client information on the blocks the regions of which have been changed, and the new region of the resulting block. With the help of this method it is possible to cancel the operation.

## Syntax

### C++

```cpp theme={null}
HRESULT OnToolChangeBlockRegion(
  IIntsCollection*  blocksToChange,
  IRegion*          NewRegion,
  VARIANT_BOOL*     Cancel
);
```

### C\#

```csharp theme={null}
void OnToolChangeBlockRegion(
  IIntsCollection  blocksToChange,
  Region          NewRegion,
  out bool        Cancel
);
```

### Visual Basic .NET

```vb theme={null}
Sub OnToolChangeBlockRegion( _
  blocksToChange As IIntsCollection, _
  NewRegion As Region, _
  ByRef Cancel As Boolean _
)
```

## Parameters

blocksToChange

\[in] Contains the indices of the changed blocks as the [IntsCollection](/fine-reader/engine/api-reference/supplementary-objects-and-methods/intscollection) object.

NewRegion

\[in] Contains the new region of the resulting block as the [Region](/fine-reader/engine/api-reference/supplementary-objects-and-methods/region) object.

Cancel

\[out] You may set this variable to TRUE to indicate that the process should be terminated. In this case, regions of the blocks will not be changed.

## Return values

\[C++ only] If this method returns a value other than S\_OK, it indicates that an error occurred on the client-side, and in this case the value of the Cancel parameter is not taken into account.

## Remarks

The client implementation of this method must assure that all exceptions thrown inside the method are caught and handled and no exceptions are propagated outside the method. Propagation of an exception outside the method may lead to unpredictable results (such as program termination).

## See also

[IZoomViewerEvents](/fine-reader/engine/visual-components-reference/izoomviewerevents)
