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

# Visual Components: FineReader Engine 12 vs 9.0/9.5 Compatibility

> Backward compatibility changes between FineReader Engine 12 and 9.0/9.5 Visual Components: renamed objects, grouped processing parameters, type updates.

Some of the changes are caused by the changes in FineReader Engine API. For details on these changes, please see [ABBYY FineReader Engine 12 and 9 Compatibility](/fine-reader/engine/specifications/backward-compatibility-issues/version-9). They are the following:

* All processing parameters are grouped in one [DocumentProcessingParams](/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/documentprocessingparams) object.
* LongsCollection object has been renamed to [IntsCollection](/fine-reader/engine/api-reference/supplementary-objects-and-methods/intscollection).
* long data type has been replaced with int data type in all properties and methods that used it.
* [Text Validator](/fine-reader/engine/visual-components-reference/textvalidator) can be called directly from the [Text Editor](/fine-reader/engine/visual-components-reference/texteditor) using the Check Spelling button.
* The events of mouse and keyboard input are grouped into the [IInputEvents](/fine-reader/engine/visual-components-reference/iinputevents) interface.
* The new [Zoom Viewer](/fine-reader/engine/visual-components-reference/zoomviewer) component, separated from the [Image Viewer](/fine-reader/engine/visual-components-reference/imageviewer).
* Working with commands via the [Commands](/fine-reader/engine/visual-components-reference/supplementary-objects/commands) object.

Other changes:

<table><thead><tr><th><p><strong>Object/Enumeration</strong></p></th><th><p><strong>Property/Method/Constant</strong></p></th><th><p><strong>What has happened?</strong></p></th><th><p><strong>Comment</strong></p></th></tr></thead><tbody><tr><td rowspan="7"><p><strong><a href="/fine-reader/engine/visual-components-reference/imageviewer">ImageViewer</a></strong></p></td><td><p><strong>PageProcessingParams</strong></p><p><strong>SynthesisParamsForPage</strong></p><p><strong>SynthesisParamsForDocument</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong>ProcessingParams</strong> property instead.</p></td></tr><tr><td><p><strong>ContextMenu</strong></p></td><td><p>Removed</p></td><td><p>The format of context menu is different now. Use the<strong> ContextMenuEnabled</strong> and<strong> PopupMenu</strong> properties instead.</p></td></tr><tr><td><p><strong>SymbolRect</strong></p><p><strong>SymbolRectEnabled</strong></p></td><td><p>Removed</p></td><td><p>This properties make sense only for the Zoom Viewer component. As Image Viewer and Zoom Viewer components have been separated, you should use corresponding properties of the <strong><a href="/fine-reader/engine/visual-components-reference/zoomviewer">ZoomViewer</a></strong> object instead.</p></td></tr><tr><td><p><strong>DisableCommand</strong></p><p><strong>DoCommand</strong></p><p><strong>EnableCommand</strong></p><p><strong>RegisterUserCommand</strong></p><p><strong>UnregisterUserCommand</strong></p></td><td><p>Removed</p></td><td><p>Use the corresponding methods of the <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/commands">Commands</a></strong> subobject of the <strong>ImageViewer</strong> object instead.</p></td></tr><tr><td><p><strong>ShowRecognizedRect</strong> <strong>HideRecognizingInfo</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong>HighlightRecognizedArea</strong> property instead.</p></td></tr><tr><td><p><strong>BlocksColorScheme</strong></p></td><td><p>Removed</p></td><td><p>This property is currently not supported.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/visual-components-reference/imageviewer#windowhandle">WindowHandle</a></strong></p></td><td><p>The type of the property has been changed.</p></td><td><p>The property has the <strong><a href="/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties">\_\_int64</a></strong> type.</p><p>This change has been made for 64-bit operating systems support.</p></td></tr><tr><td rowspan="10"><p><strong><a href="/fine-reader/engine/visual-components-reference/iimageviewerevents">IImageViewerEvents</a></strong></p></td><td><p><strong>OnCommand</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/icommandevents/oncommand-method">OnCommand</a></strong> method of the <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/icommandevents">ICommandEvent</a></strong> interface.</p></td></tr><tr><td><p><strong>OnAnalyzeBlock</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong><a href="/fine-reader/engine/visual-components-reference/iimageviewerevents/onanalyzeregion-method">OnAnalyzeRegion</a></strong> method instead.</p></td></tr><tr><td><p><strong>OnToolRenumberBlocks</strong></p></td><td><p>Removed</p></td><td><p>This functionality is not currently supported.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/visual-components-reference/iimageviewerevents/ontooleraserect-method">OnToolEraseRect</a></strong></p></td><td><p>Input parameters number changed</p></td><td><p>This method takes as an input parameter the index of an active page in the document.</p></td></tr><tr><td><p><strong>OnRecognizeBlocks</strong></p></td><td><p>Renamed</p></td><td><p>The new name of the method is <strong><a href="/fine-reader/engine/visual-components-reference/iimageviewerevents/onreadblocks-method">OnReadBlocks</a></strong>.</p></td></tr><tr><td><p><strong>OnRecognizePage</strong></p></td><td><p>Renamed</p></td><td><p>The new name of the method is <strong><a href="/fine-reader/engine/visual-components-reference/iimageviewerevents/onreadpage-method">OnReadPage</a></strong>.</p></td></tr><tr><td><p><strong>OnDraw</strong></p></td><td><p>Removed</p></td><td><p>This method worked with low level drawing tools and presumed a large number of code to be written. As Image Viewer provides a wide variety of special tools for working with an image, so the method has been removed.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/visual-components-reference/iimageviewerevents/ontablecellsselected-method">OnTableCellsSelected</a></strong></p></td><td><p>The second parameter has been renamed.</p></td><td><p>The new name of the second parameter is Rect. This name for rectangle input parameter is generally used in FineReader Engine API.</p></td></tr><tr><td><p><strong>OnChar</strong></p><p><strong>OnKeyDown</strong></p><p><strong>OnKeyUp</strong></p><p><strong>OnMouseButtonDown</strong></p><p><strong>OnMouseButtonUp</strong></p><p><strong>OnMouseDoubleClick</strong></p><p><strong>OnMouseMove</strong></p><p><strong>OnMouseWheel</strong></p><p><strong>OnScroll</strong></p></td><td><p>Removed</p></td><td><p>These methods are inherited from the <strong><a href="/fine-reader/engine/visual-components-reference/iinputevents">IInputEvents</a></strong> interface.</p></td></tr><tr><td><p><strong>OnToolDeleteBlocks</strong></p></td><td><p>Renamed</p></td><td><p>The new name of the method is <strong><a href="/fine-reader/engine/visual-components-reference/iimageviewerevents/ondeleteblocks-method">OnDeleteBlocks</a></strong>.</p></td></tr><tr><td rowspan="5"><p><strong><a href="/fine-reader/engine/visual-components-reference/documentviewer">DocumentViewer</a></strong></p></td><td><p><strong>PageProcessingParams</strong></p><p><strong>SynthesisParamsForPage</strong></p><p><strong>SynthesisParamsForDocument</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong>ProcessingParams</strong> property instead.</p></td></tr><tr><td><p><strong>ContextMenu</strong></p></td><td><p>Removed</p></td><td><p>The format of context menu is different now. Use the<strong> ContextMenuEnabled</strong> and<strong> PopupMenu</strong> properties instead.</p></td></tr><tr><td><p><strong>SelectedPages</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong>SelectedPagesIndexes </strong>and the <strong>FRDocument</strong> properties to receive the selected pages.</p></td></tr><tr><td><p><strong>DisableCommand</strong></p><p><strong>DoCommand</strong></p><p><strong>EnableCommand</strong></p><p><strong>RegisterUserCommand</strong></p><p><strong>UnregisterUserCommand</strong></p></td><td><p>Removed</p></td><td><p>Use the corresponding methods of the <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/commands">Commands</a> </strong>subobject of the <strong>DocumentViewer</strong> object instead.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/visual-components-reference/documentviewer#windowhandle">WindowHandle</a></strong></p></td><td><p>The type of the property has been changed.</p></td><td><p>The property has the <strong><a href="/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties">\_\_int64</a></strong> type.</p><p>This change has been made for 64-bit operating systems support.</p></td></tr><tr><td rowspan="8"><p><strong><a href="/fine-reader/engine/visual-components-reference/idocumentviewerevents">IDocumentViewerEvents</a></strong></p></td><td><p><strong>OnCommand</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/icommandevents/oncommand-method">OnCommand</a></strong> method of the <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/icommandevents">ICommandEvent</a></strong> interface.</p></td></tr><tr><td><p><strong>OnChar</strong></p><p><strong>OnKeyDown</strong></p><p><strong>OnKeyUp</strong></p><p><strong>OnMouseButtonDown</strong></p><p><strong>OnMouseButtonUp</strong></p><p><strong>OnMouseDoubleClick</strong></p><p><strong>OnMouseMove</strong></p><p><strong>OnMouseWheel</strong></p><p><strong>OnScroll</strong></p></td><td><p>Removed</p></td><td><p>These methods are inherited from the <strong><a href="/fine-reader/engine/visual-components-reference/iinputevents">IInputEvents</a></strong> interface.</p></td></tr><tr><td><p><strong>OnRenumberPage</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong><a href="/fine-reader/engine/visual-components-reference/idocumentviewerevents/onrenumberingpages-method">OnRenumberingPages</a></strong> method instead. The method differs from the old one in the following aspect: the method delivers to the client the new order of pages.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/visual-components-reference/idocumentviewerevents/onactivepagechanged-method">OnActivePageChanged</a></strong></p></td><td><p>Input parameter type changed</p></td><td><p>This method delivers to the client a reference to the new active page instead of its index.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/visual-components-reference/idocumentviewerevents/onactivepagechanging-method">OnActivePageChanging</a></strong></p></td><td><p>Event invocation has been changed. Input parameter type has been changed.</p></td><td><p>The process is not invoked if the active page is changed via API of Document Viewer. When the page is changed via API, the code developer is aware of it beforehand and does not need the notification. This process is invoked only when changed by user of the application.</p><p>This method delivers to the client a reference to the new active page instead of its index.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/visual-components-reference/idocumentviewerevents/onlocked-method">OnLocked</a></strong></p></td><td><p>Event invocation has been changed.</p></td><td><p>The method is called after Document Viewer has been locked or unlocked.</p></td></tr><tr><td><p><strong>OnDraw</strong></p></td><td><p>Removed</p></td><td><p>This method worked with low level drawing tools and presumed a large number of code to be written. As Document Viewer provides a wide variety of special tools for working with pages in the document, so the method has been removed.</p></td></tr><tr><td><p><strong>OnTextEditorModeChange</strong></p></td><td><p>Removed</p></td><td><p>The method is obsolete. Now there is no need to synchronize the mode of Text Editor with the export settings specified in Document Viewer.</p></td></tr><tr><td rowspan="3"><p><strong><a href="/fine-reader/engine/visual-components-reference/texteditor">TextEditor</a></strong></p></td><td><p><strong>TextEditorMode</strong></p></td><td><p>Renamed</p></td><td><p>The same functionality is provided via the <strong>Mode</strong> property.</p></td></tr><tr><td><p><strong>ContextMenu</strong></p></td><td><p>Removed</p></td><td><p>The format of context menu is different now. Use the<strong> ContextMenuEnabled</strong> and<strong> PopupMenu</strong> properties instead.</p></td></tr><tr><td><p><strong>DisableCommand</strong></p><p><strong>DoCommand</strong></p><p><strong>EnableCommand</strong></p><p><strong>RegisterUserCommand</strong></p><p><strong>UnregisterUserCommand</strong></p></td><td><p>Removed</p></td><td><p>Use the corresponding methods of the <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/commands">Commands</a> </strong>subobject of the <strong>TextEditor </strong>object instead.</p></td></tr><tr><td rowspan="4"><p><strong><a href="/fine-reader/engine/visual-components-reference/itexteditorevents">ITextEditorEvents</a></strong></p></td><td><p><strong>OnCommand</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/icommandevents/oncommand-method">OnCommand</a></strong> method of the <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/icommandevents">ICommandEvent</a></strong> interface.</p></td></tr><tr><td><p><strong>OnTextEditorModeChange</strong></p></td><td><p>Removed</p></td><td><p>The method is obsolete. Now there is no need to synchronize the mode of Text Editor with the export settings specified in Document Viewer.</p></td></tr><tr><td><p><strong>OnDraw</strong></p></td><td><p>Removed</p></td><td><p>This method worked with low level drawing tools and presumed a large number of code to be written. As Text Editor provides a wide variety of special tools for editing recognized text, so the method has been removed.</p></td></tr><tr><td><p><strong>OnChar</strong></p><p><strong>OnKeyDown</strong></p><p><strong>OnKeyUp</strong></p><p><strong>OnMouseButtonDown</strong></p><p><strong>OnMouseButtonUp</strong></p><p><strong>OnMouseDoubleClick</strong></p><p><strong>OnMouseMove</strong></p><p><strong>OnMouseWheel</strong></p><p><strong>OnScroll</strong></p></td><td><p>Removed</p></td><td><p>These methods are inherited from the <strong><a href="/fine-reader/engine/visual-components-reference/iinputevents">IInputEvents</a></strong> interface.</p></td></tr><tr><td rowspan="4"><p><strong><a href="/fine-reader/engine/visual-components-reference/textvalidator">TextValidator</a></strong></p></td><td><p><strong>ContextMenu</strong></p></td><td><p>Removed</p></td><td><p>This component does not support context menu any longer.</p></td></tr><tr><td><p><strong>FRPage</strong></p></td><td><p>Removed</p></td><td><p>The Text Validator works with a whole document, therefore this property has been replaced with the <strong>FRDocument</strong> property.</p></td></tr><tr><td><p><strong>SkipPromptingWordForms</strong></p></td><td><p>Removed</p></td><td><p>This property is no longer supported due to the changes in recognition technologies.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/visual-components-reference/textvalidator/spellblock-method">SpellBlock</a></strong></p></td><td><p>Input parameters number changed</p></td><td><p>The index of the page, on which the block is located, is used as an input parameter.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/visual-components-reference/itextvalidatorevents">ITextValidatorEvents</a></strong></p></td><td><p><strong>OnChar</strong></p><p><strong>OnKeyDown</strong></p><p><strong>OnKeyUp</strong></p><p><strong>OnMouseButtonDown</strong></p><p><strong>OnMouseButtonUp</strong></p><p><strong>OnMouseDoubleClick</strong></p><p><strong>OnMouseMove</strong></p><p><strong>OnMouseWheel</strong></p></td><td><p>Removed</p></td><td><p>These methods are inherited from the <strong><a href="/fine-reader/engine/visual-components-reference/iinputevents">IInputEvents</a></strong> interface.</p></td></tr><tr><td rowspan="2"><p><strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/componentsynchronizer">ComponentSynchronizer</a></strong></p></td><td><p><strong>OverView</strong></p><p><strong>ZoomView</strong></p></td><td><p>Renamed</p></td><td><p>Use the <strong>ImageViewer</strong> and <strong>ZoomViewer</strong> properties, respectively.</p></td></tr><tr><td><p><strong>PageProcessingParams</strong></p><p><strong>SynthesisParamsForPage</strong></p><p><strong>SynthesisParamsForDocument</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong>ProcessingParams</strong> property instead.</p></td></tr><tr><td><p><strong>FRContextMenu</strong></p></td><td><br /></td><td><p>Removed</p></td><td><p>Use the <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/commands">Commands</a></strong> object instead. It provides access to the available commands of the component.</p></td></tr><tr><td><p><strong>ToolbarPositionEnum</strong></p></td><td><br /></td><td><p>Removed</p></td><td><p>This functionality is no longer supported.</p></td></tr><tr><td><p><strong>BlocksColorScheme</strong></p></td><td><br /></td><td><p>Removed</p></td><td><p>This functionality is currently not supported.</p></td></tr><tr><td><p><strong><a href="/fine-reader/engine/visual-components-reference/enumerations/texteditormodeenum">TextEditorModeEnum</a></strong></p></td><td><br /></td><td><p>The constants have been changed.</p></td><td><p>Text Editor has different viewing modes in this version.</p></td></tr><tr><td rowspan="2"><p><strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellreplacementcollection">SpellReplacementCollection</a></strong></p></td><td><p><strong>Item</strong></p></td><td><p>Renamed</p></td><td><p>The new name of the property is <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/element-property">Element</a></strong>.</p></td></tr><tr><td><p><strong>Insert</strong></p><p><strong>Remove</strong></p><p><strong>RemoveAll</strong></p></td><td><p>Renamed</p></td><td><p>The new names of the methods are <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/insertat-method">InsertAt</a></strong>, <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/deleteat-method">DeleteAt</a></strong>, <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/deleteall-method">DeleteAll</a></strong>.</p></td></tr><tr><td rowspan="2"><p><strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection">SpellWordCollection</a></strong></p></td><td><p><strong>Item</strong></p></td><td><p>Renamed</p></td><td><p>The new name of the property is <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/element-property">Element</a></strong>.</p></td></tr><tr><td><p><strong>Insert</strong></p><p><strong>Remove</strong></p><p><strong>RemoveAll</strong></p></td><td><p>Renamed</p></td><td><p>The new names of the methods are <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/insertat-method">InsertAt</a></strong>, <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/deleteat-method">DeleteAt</a></strong>, <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/deleteall-method">DeleteAll</a></strong>.</p></td></tr><tr><td rowspan="5"><p><strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/toolbar">Toolbar</a></strong></p></td><td><p><strong>DockingPosition</strong></p><p><strong>LargeButtons</strong></p><p><strong>Visible</strong></p></td><td><p>Removed</p></td><td><p>This functionality is no longer supported.</p></td></tr><tr><td><p><strong>MenuItemAtPosition</strong></p></td><td><p>Renamed</p></td><td><p>The same functionality is provided via the <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/toolbar/item-method">Item</a></strong> method.</p></td></tr><tr><td><p><strong>InsertButton</strong></p><p><strong>InsertSeparator</strong></p></td><td><p>Removed</p></td><td><p>Use the <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/toolbar/insertat-method">InsertAt</a></strong> method instead.</p></td></tr><tr><td><p><strong>RemoveButton</strong></p></td><td><p>Renamed</p></td><td><p>The same functionality is provided via the <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/toolbar/delete-method">Delete</a></strong> method.</p></td></tr><tr><td><p><strong>RemoveButtonByPosition</strong></p></td><td><p>Renamed</p></td><td><p>The same functionality is provided via the <strong><a href="/fine-reader/engine/visual-components-reference/supplementary-objects/toolbar/deleteat-method">DeleteAt</a></strong> method.</p></td></tr><tr><td rowspan="2"><p><strong><a href="/fine-reader/engine/visual-components-reference/enumerations/menuitemenum">MenuItemEnum</a></strong></p></td><td><p>MI\_DespeckleImage</p><p>MI\_DespeckleBlock</p><p>MI\_DocumentViewCustomize</p><p>MI\_ChooseTool\_DrawBarcodeBlock</p><p>MI\_ConvertImageToBlackAndWhite</p><p>MI\_CustomCommandMax</p></td><td><p>Removed</p></td><td><p>This functionality is no longer supported.</p></td></tr><tr><td><p>MI\_RotateClockwize</p><p>MI\_RotateCounterClockwize</p><p>MI\_ImageScale\_200</p><p>MI\_ImageScale\_100</p><p>MI\_ImageScale\_50</p><p>MI\_ImageScale\_25</p><p>MI\_ImageScale\_FitToWidth</p><p>MI\_ImageScale\_FitToHeight</p><p>MI\_ImageScale\_BestFit</p><p>MI\_ImageScale\_ZoomToSelBlocks</p><p>MI\_ImageScale\_800</p><p>MI\_ImageScale\_600</p><p>MI\_ImageScale\_400</p><p>MI\_ImageScale\_300</p><p>MI\_ImageScale\_PixelToPixel</p><p>MI\_DocumentViewThumbnail</p><p>MI\_ChooseTool\_AddHorzSeparator</p></td><td><p>Renamed</p></td><td><p>The new names of the constants:</p><ul><li>MI\_RotateClockwise</li><li>MI\_RotateCounterClockwise</li><li>MI\_Scale\_200</li><li>MI\_Scale\_100</li><li>MI\_Scale\_50</li><li>MI\_Scale\_25</li><li>MI\_Scale\_FitToWidth</li><li>MI\_Scale\_FitToHeight</li><li>MI\_Scale\_BestFit</li><li>MI\_Scale\_ZoomToSelBlocks</li><li>MI\_Scale\_800</li><li>MI\_Scale\_600</li><li>MI\_Scale\_400</li><li>MI\_Scale\_300</li><li>MI\_Scale\_PixelToPixel</li><li>MI\_DocumentViewThumbnails</li><li>MI\_ChooseTool\_AddHorizSeparator</li></ul></td></tr></tbody></table>
