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

# OnProgress Method of the IFRPageEvents Interface

This method is implemented on the client-side. It is called by ABBYY FineReader Engine for some of the methods of the [FRPage](/fine-reader/engine/api-reference/document-related-objects/frpage) object. It delivers to the client information about approximate percentage of the current operation (analysis, recognition, and export). Its implementation may show a progress indicator, as it is done in ABBYY FineReader.

<Note>
  In Windows, it can also process any system messages to help prevent the application from appearing unresponsive during long operations. This can be helpful in applications with a user interface.
</Note>

## Syntax

### C++

```cpp theme={null}
HRESULT OnProgress(
  IFRPage*      Sender,
  int           Percentage,
  VARIANT_BOOL* Cancel
);
```

### C\#

```csharp theme={null}
void OnProgress(
  IFRPage   Sender,
  int      Percentage,
  ref bool Cancel
);
```

### Visual Basic .NET

```vb theme={null}
Sub OnProgress( _
  Sender As IFRPage, _
  Percentage As Integer, _
  ByRef Cancel As Boolean _
)
```

## Parameters

Sender

\[in] This parameter refers to the [FRPage](/fine-reader/engine/api-reference/document-related-objects/frpage) object which sends notifications.

Percentage

\[in] This parameter contains the percent of the work currently done. It is in the range from 0 to 100.

Cancel

\[in, out] You may set this variable to TRUE to indicate that the process should be terminated. In this case, the processing function that reports the percentage returns E\_ABORT.

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

[IFRPageEvents](/fine-reader/engine/api-reference/document-related-objects/ifrpageevents)

[FRPage](/fine-reader/engine/api-reference/document-related-objects/frpage)
