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

# OnToolChangeTable Method of the IZoomViewerEvents Interface

> OnToolChangeTable 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 table block that has been modified in [Zoom Viewer](/fine-reader/engine/visual-components-reference/zoomviewer) with the help of a tool of [Image Viewer](/fine-reader/engine/visual-components-reference/imageviewer):

* <img src="https://mintcdn.com/abbyy/i-EfCQVmseNiPQcp/images/fine-reader/engine/tb_vertline.gif?s=0310d84f26192721ab13164545559986" alt="tb_VertLine" width="23" height="22" data-path="images/fine-reader/engine/tb_vertline.gif" /> Add Vertical Separator ([MI\_ChooseTool\_AddVertSeparator](/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands#mi_choosetool_addvertseparator))
* <img src="https://mintcdn.com/abbyy/i-EfCQVmseNiPQcp/images/fine-reader/engine/tb_horizontline.gif?s=49d36c57e5067d16666945864c31f102" alt="tb_horizontLine" width="23" height="22" data-path="images/fine-reader/engine/tb_horizontline.gif" /> Add Horizontal Separator ([MI\_ChooseTool\_AddHorizSeparator](/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands#mi_choosetool_addhorizseparator))
* <img src="https://mintcdn.com/abbyy/i-EfCQVmseNiPQcp/images/fine-reader/engine/tb_delline.gif?s=f1548dc0be446f4e53efd531e4bc6e15" alt="tb_delLine" width="23" height="22" data-path="images/fine-reader/engine/tb_delline.gif" /> Delete Separator ([MI\_ChooseTool\_DeleteSeparator](/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands#mi_choosetool_deleteseparator))

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 the index of the table block which is going to be changed, and the position and type of the new or deleted separator. With the help of this method it is possible to cancel the operation.

## Syntax

### C++

```cpp theme={null}
HRESULT OnToolChangeTable(
  int           BlockIndex,
  int           Position,
  VARIANT_BOOL  IsVerticalSeparator,
  VARIANT_BOOL  DeleteSeparator,
  VARIANT_BOOL* Cancel
);
```

### C\#

```csharp theme={null}
void OnToolChangeTable(
  int           BlockIndex,
  int           Position,
  bool          IsVerticalSeparator,
  bool          DeleteSeparator,
  out bool      Cancel
);
```

### Visual Basic .NET

```vb theme={null}
Sub OnToolChangeTable( _
  BlockIndex As Integer, _
  Position As Integer, _
  IsVerticalSeparator As Boolean, _
  DeleteSeparator As Integer, _
  ByRef Cancel As Boolean _
)
```

## Parameters

BlockIndex

\[in] Contains the index of the table block that is going to be modified. The index is in the [ILayout::VisualBlocks](/fine-reader/engine/api-reference/layout-related-objects/layout#visualblocks) collection.

Position

\[in] Contains the position of the separator in the table. The position of the separator is its coordinate in a base grid.

IsVerticalSeparator

\[in] Specifies whether the separator is vertical or horizontal.

DeleteSeparator

\[in] Specifies whether the separator is going to be deleted or added.

Cancel

\[out] You may set this variable to TRUE to indicate that the process should be terminated. In this case, the separator will not be added (or deleted).

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