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

> Método OnKeyDown de la interfaz IInputEvents en Visual Components de ABBYY FineReader Engine en 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 se presiona una tecla en [Visor de imágenes](/es/fine-reader/engine/visual-components-reference/imageviewer), [Visor de zoom](/es/fine-reader/engine/visual-components-reference/zoomviewer), [Editor de texto](/es/fine-reader/engine/visual-components-reference/texteditor), [Validador de texto](/es/fine-reader/engine/visual-components-reference/textvalidator) o [Visor de documentos](/es/fine-reader/engine/visual-components-reference/documentviewer).

Proporciona al cliente el código de la tecla, el número de repeticiones y las teclas modificadoras utilizadas. Con este método, es posible cancelar la operación.

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

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

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

### C\#

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

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

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

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

KeyCode

\[in] Especifica el código de tecla virtual de la tecla que se ha presionado.

Count

\[in] Contiene el recuento 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 tecla, el estado previo 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 de la derecha que aparecen en un teclado mejorado de 101 o 102 teclas. El valor es 1 si es una tecla extendida; en caso contrario, es 0. |
| 9-12  | Windows lo 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; en caso contrario, el valor es 0.                                                               |
| 14    | Especifica el estado previo de la tecla. El valor es 1 si la tecla está presionada antes de que se envíe el mensaje; es 0 si la tecla no está presionada.                                                          |
| 15    | Especifica el estado de transición. El valor es 1 si se está soltando la tecla; es 0 si se está presionando.                                                                                                       |

Cancel

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

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

\[Solo para C++] Si este método devuelve un valor distinto de S\_OK, significa que se produjo un error del lado del cliente y, en ese caso, no se considera 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 se controlen, y que ninguna se propague fuera de él. Propagar una excepción fuera del método puede provocar 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)
