Función ToUnicodeEx (winuser.h)
Convierte el código de tecla virtual y el estado de teclado especificados en el carácter o caracteres Unicode correspondientes.
Sintaxis
int ToUnicodeEx(
[in] UINT wVirtKey,
[in] UINT wScanCode,
[in] const BYTE *lpKeyState,
[out] LPWSTR pwszBuff,
[in] int cchBuff,
[in] UINT wFlags,
[in, optional] HKL dwhkl
);
Parámetros
[in] wVirtKey
Tipo: UINT
Código de clave virtual que se va a traducir. Consulte Virtual-Key Códigos.
[in] wScanCode
Tipo: UINT
El hardware código de examen de la clave que se va a traducir. El bit de orden superior de este valor se establece si la clave está arriba.
[in] lpKeyState
Tipo: const BYTE*
Puntero a una matriz de 256 bytes que contiene el estado actual del teclado. Cada elemento (byte) de la matriz contiene el estado de una clave.
Si se establece el bit de orden superior de un byte, la clave está inactiva. El bit bajo, si se establece, indica que la clave está activada. En esta función, solo es relevante el bit de alternancia de la tecla LOCK CAPS. El estado de alternancia de las teclas NUM LOCK y SCROLL LOCK se omite. Consulta GetKeyboardState para obtener más información.
[out] pwszBuff
Tipo: LPWSTR
Búfer que recibe el carácter traducido o los caracteres como matriz de unidades de código UTF-16. Este búfer se puede devolver sin terminar en null, aunque el nombre de la variable sugiere que está terminado en null. Puede usar el valor devuelto de este método para determinar cuántos caracteres se han escrito.
[in] cchBuff
Tipo: int
Tamaño, en caracteres, del búfer al que apunta el parámetro pwszBuff.
[in] wFlags
Tipo: UINT
Comportamiento de la función.
Si se establece el bit 0, hay un menú activo. En este modo no se controlan las combinaciones de teclas Alt+Numeric teclas.
Si se establece el bit 1, toUnicodeEx traducirá los códigos de examen marcados como eventos de interrupción clave además de su tratamiento habitual de eventos de creación de claves.
Si se establece el bit 2, el estado del teclado no cambia (Windows 10, versión 1607 y posteriores)
Todos los demás bits (hasta 31) están reservados.
[in, optional] dwhkl
Tipo: HKL de
Identificador de configuración regional de entrada que se usa para traducir el código especificado. Este parámetro puede ser cualquier identificador de configuración regional de entrada devuelto anteriormente por la función LoadKeyboardLayout.
Valor devuelto
Tipo: int
La función devuelve uno de los siguientes valores.
Valor devuelto | Descripción |
---|---|
|
La clave virtual especificada es un clave muerta carácter (énfasis o diacrítico). Este valor se devuelve independientemente del diseño del teclado, incluso si se han escrito varios caracteres y se almacenan en el estado del teclado. Si es posible, incluso con diseños de teclado Unicode, la función ha escrito una versión de espaciado del carácter de tecla inactiva en el búfer especificado por pwszBuff. Por ejemplo, la función escribe el carácter ACUTE ACCENT (U+00B4), en lugar del carácter COMBINING ACUTE ACCENT (U+0301). |
|
La tecla virtual especificada no tiene traducción para el estado actual del teclado. No se escribió nada en el búfer especificado por pwszBuff. |
|
Una o varias unidades de código UTF-16 se escribieron en el búfer especificado por pwszBuff. Se devuelve pwszBuff puede contener más caracteres que los especificados en el valor devuelto. Cuando esto sucede, los caracteres adicionales no son válidos y deben omitirse. |
Observaciones
El identificador de configuración regional de entrada es un concepto más amplio que un diseño de teclado, ya que también puede abarcar un convertidor de voz a texto, un Editor de métodos de entrada (IME) o cualquier otra forma de entrada.
Algunos diseños de teclado pueden devolver varios caracteres o caracteres complementarios como pares suplentes en pwszBuff. Si el carácter de tecla muerta (énfasis o diacrítico) almacenado en el diseño del teclado no se pudo combinar con la tecla virtual especificada para formar un solo carácter, el carácter muerto especificado se puede combinar con el carácter actual.
Es posible que los parámetros proporcionados a la función
Normalmente, ToUnicodeEx realiza la traducción en función del código de clave virtual. Sin embargo, en algunos casos, el bit 15 del parámetro wScanCode se puede usar para distinguir entre una tecla presionada y una versión de tecla (por ejemplo, para la entrada de tecla ALT+numpad).
Como ToUnicodeEx traduce el código de clave virtual, también cambia el estado del búfer de teclado en modo kernel. Este cambio de estado afecta a las teclas inactivas, ligaduras, alt+teclado numérico entrada de clave, etc. También podría causar efectos secundarios no deseados si se usa junto con TranslateMessage (que también cambia el estado del búfer de teclado en modo kernel).
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 2000 Professional [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows 2000 Server [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
winuser.h (incluya Windows.h) |
biblioteca de |
User32.lib |
DLL de |
User32.dll |
Consulte también
conceptual de
de referencia de
VkKeyScan de