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

> Método OnKeyUp de la interfaz IInputEvents en ABBYY FineReader Engine Visual Components 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 suelta 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 OnKeyUp(
  int           KeyCode,
  int           Count,
  int           Flags,
  VARIANT_BOOL* Cancel
);
```

### C\#

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

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

```vb theme={null}
Sub OnKeyUp( _
  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 teclado de la tecla que se libera.

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 exploración, 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:

| Value | Descripción                                                                                                                                                                                                 |
| ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 0-7   | Especifica el código de exploración. 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 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; 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, o 0 si no lo está.                                                                   |
| 15    | Especifica el estado de transición. El valor es 1 si la tecla se está liberando, o 0 si se está presionando.                                                                                                |

Cancel

\[out] Puede establecer esta variable en TRUE para indicar que el proceso debe terminar. En este caso, la función correspondiente devuelve E\_ABORT.

<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 del 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 se 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)
