> ## 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 OnChar de la interfaz IInputEvents

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

Este método se implementa del lado del cliente. ABBYY FineReader Engine lo llama cuando una pulsación de tecla se convierte en un carácter en [Image Viewer](/es/fine-reader/engine/visual-components-reference/imageviewer), [Zoom Viewer](/es/fine-reader/engine/visual-components-reference/zoomviewer), [Text Editor](/es/fine-reader/engine/visual-components-reference/texteditor), [Text Validator](/es/fine-reader/engine/visual-components-reference/textvalidator) o [Document Viewer](/es/fine-reader/engine/visual-components-reference/documentviewer).

Proporciona al cliente el código del carácter, el número de repeticiones y cierta información adicional sobre la pulsación de tecla. Con este método, es posible cancelar la operación.

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

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

```cpp theme={null}
HRESULT OnChar(
  int           Character,
  int           Count,
  int           Flags,
  VARIANT_BOOL* Cancel
);
```

### C\#

```csharp theme={null}
void OnChar(
  int      Character,
  int      Count,
  int      Flags,
  out bool Cancel
);
```

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

```vb theme={null}
Sub OnChar( _
  Character As Integer, _
  Count As Integer, _
  Flags As Integer, _
  ByRef Cancel As Boolean _
)
```

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

Character

\[in] Contiene el valor del código de carácter de la tecla.

Count

\[in] Contiene el número de repeticiones; es decir, el número de veces que se repite la pulsación cuando el usuario mantiene presionada la tecla.

Flags

\[in] Contiene el código de escaneo, el código de transición de la tecla, el estado anterior de la tecla y el código de contexto, como se muestra en la siguiente lista:

| Valor | Descripción                                                                                                                                                                                                 |
| ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 0-7   | Especifica el código de escaneo. El valor depende del fabricante del equipo original (OEM).                                                                                                                 |
| 8     | Especifica si la tecla es una tecla extendida, como las teclas ALT y CTRL derechas que aparecen en un teclado mejorado de 101 o 102 teclas. El valor es 1 si es una tecla extendida; de lo contrario, es 0. |
| 9-12  | Windows los usa internamente.                                                                                                                                                                               |
| 13    | Especifica el código de contexto. El valor es 1 si la tecla ALT se mantiene presionada mientras se pulsa la tecla; de lo contrario, el valor es 0.                                                          |
| 14    | Especifica el estado anterior de la tecla. El valor es 1 si la tecla está presionada antes de que se envíe el mensaje; de lo contrario, es 0 si la tecla no está presionada.                                |
| 15    | Especifica el estado de transición. El valor es 1 si la tecla se está soltando; de lo contrario, es 0 si la tecla se está presionando.                                                                      |

Cancel

\[out] Puede establecer esta variable en TRUE para indicar que el proceso debe finalizar.

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

\[Solo C++] Si este método devuelve un valor distinto de S\_OK, significa que se produjo un error en el 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 propaguen fuera de él. La propagación de una excepción fuera del método puede dar lugar a resultados impredecibles (como la finalización del programa).

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

[IInputEvents](/es/fine-reader/engine/visual-components-reference/iinputevents)
