ToUnicodeEx

【勇芳软件工作室】汉化HomePreviousNext

ToUnicodeEx功能将指定的虚拟键代码和键盘状态转换为相应的Unicode字符或字符。

int ToUnicodeEx(

UINT 【wVirtKey】,//虚拟键代码
UINT 【wScanCode】,//扫描代码
PBYTE 【lpKeyState】,//键状态数组的地址
LPWSTR 【pwszBuff】,//用于翻译的键缓冲区
INT 【cchBuff】,//翻译密钥缓冲区的大小
UINT 【wFlags】,//设置功能调节标志
HKL【dwhkl】//键盘布局句柄
); 

参数

【wVirtKey】

指定要翻译的虚拟键代码。

【wScanCode】

指定要翻译的键的硬件扫描代码。该键的高位被设置为键。

【lpKeyState】

指向包含当前键盘状态的256字节数组。数组中的每个元素(字节)包含一个键的状态。如果设置了一个字节的高位,则该键被关闭。

【pwszBuff】

指向接收翻译的Unicode字符或字符的缓冲区。

【cchBuff】

指定由【pwszBuff】参数指向的缓冲区的字符大小。

【wFlags】

一组影响功能行为的位标志。如果菜单有效,请设置位0。位1至31保留。

【dwhkl】

标识用于转换给定代码的键盘布局。此参数可以是以前由LoadKeyboardLayout功能返回的任何键盘布局句柄。

返回值

该函数返回以下值之一:

含义
- 1指定的虚拟键是一个死键字符(口音或变音符号)。无论键盘布局如何,即使输入了多个字符并以键盘状态存储,也会返回此值。如果可能,即使使用Unicode键盘布局,该函数已将死锁字符的间隔版本写入【pwszBuffer】指定的缓冲区。例如,函数写入字符SPACING ACUTE(0x00B4),而不是字符NON_SPACING ACUTE(0x0301)。
0指定的虚拟键对于键盘的当前状态没有转换。没有写入【pwszBuffer】指定的缓冲区。
1一个字符被写入【pwszBuffer】指定的缓冲区。
2以上两个或多个字符被写入由【pwszBuff】指定的缓冲区。最常见的原因是存储在键盘布局中的死键字符(重音或变音符)不能与指定的虚拟键组合形成单个字符。

备注

提供给ToUnicodeEx功能的参数可能不足以翻译虚拟键代码,因为之前的死钥存储在键盘布局中。

通常,ToUnicodeEx基于虚拟密钥代码执行翻译。然而,在某些情况下,【wScanCode】参数的第15位可用于区分按键和键释放。

也可以看看

ToAscii, ToUnicode, VkKeyScan