ToUnicodeEx

A função ToUnicodeEx converte o código de chave virtual especificado e o estado do teclado para o correspondente caractere Unicode ou caracteres.

int ToUnicodeEx ( UINT  wVirtKey, / / virtual-chave códigoUINTwScanCode, / / código de verificaçãoPBYTElpKeyState, / / chave estado matrizLPWSTRpwszBuff, / / chave traduzidas de buffer intcchBuff, / / tamanho do buffer de chave traduzidoUINTwFlags, / / definir sinalizadores de função-condicionado HKLdwhkl / / identificador layout de teclado);
 

Parâmetros

wVirtKey
Especifica o virtual-código de chave a ser traduzido.
wScanCode
Especifica a codificar digitalizar hardware da chave a ser traduzido. O bit de ordem alta desse valor é definido se a chave é para cima.
lpKeyState
Ponteiro para uma matriz de 256 bytes que contém o estado atual do teclado. Cada elemento (byte) na matriz contém o estado de uma chave. Se o bit de alta ordem de um byte é definido, a chave é para baixo.
pwszBuff
Ponteiro para a reserva que recebe o caractere Unicode ou caracteres traduzidos.
cchBuff
Especifica o tamanho em caracteres do buffer apontado pelo parâmetro pwszBuff .
wFlags
Um conjunto de bit sinalizadores que condição o comportamento da função. Definir o bit 0 se um menu está ativo. Bits de 1 a 31 são reservados.
dwhkl
Identificador para o layout de teclado para usar para traduzir o código fornecido. Este parâmetro pode ser qualquer identificador de layout de teclado anteriormente retornado por LoadKeyboardLayout função.

Retornar valores

A função retorna um dos seguinte valores.

Valor Significado
– 1 A chave virtual especificada é um caractere de mortos-chave (acento ou sinal diacrítico). Esse valor é retornado independentemente do layout do teclado, mesmo se vários caracteres forem digitados e são armazenados no estado do teclado. Se possível, mesmo com layouts de teclado de Unicode, a função tem escrito uma versão de espaçamento do personagem morto-chave para a reserva especificada por pwszBuffer. Por exemplo, a função grava o caractere de ESPAÇAMENTO aguda (0x00B4), em vez do personagem NON_SPACING aguda (0x0301).
0 A chave virtual especificada não tem nenhuma tradução para o estado atual do teclado. Nada foi escrito para o buffer especificado por pwszBuffer.
1 Um caractere foi escrito para o buffer especificado por pwszBuffer.
2 ou mais Dois ou mais caracteres foram gravados para o buffer especificado por pwszBuff. A causa mais comum para isso é que um personagem morto-chave (acento ou sinal diacrítico) armazenado no layout do teclado não poderia ser combinado com a chave virtual especificada para formar um único caractere.

Observações

Os parâmetros fornecidos para a função ToUnicodeEx podem não ser suficientes para traduzir o código de chave virtual porque uma chave de inatividade anterior é armazenada no layout do teclado.

Normalmente, ToUnicodeEx realiza a tradução baseada o código de chave virtual. Em alguns casos, no entanto, o bit 15 do parâmetro wScanCode pode ser usado para distinguir entre um pressionamento de tecla e uma liberação chave.

QuickInfo

nbsp; Windows &NT: requer a versão 4.0 ou posterior.
Windows:Sem suporte.
Windows CE:Sem suporte.
Cabeçalho:Declarado em WinUser. h.
Biblioteca de importação:Use user32.lib.

Ver também

Visão geral de entrada de teclado, funções de entrada de teclado, ToAscii, ToUnicode, VkKeyScan

Index