簡介
函式功能:該函式將給定的虛擬鍵碼和鍵盤狀態翻譯成相應的字元或字元串。函式原型:int ToUnicode(UINT wVirtKey,UINT wScanCode,PBYTE lpKeyState,LPWSTR pwszBuff,int cchBuff,UINTwFlags);
參數
wVirtKey:定義將被翻譯的虛擬鍵碼。wScanCode:定義被翻譯鍵的硬體掃描碼。若該值的最高為被置為1,則該鍵處於Up狀態。
lpKeyState:指向一個包含當前鍵盤狀態的256位元組數組。數組中的每個成員(位元組)包含了一個鍵的狀態。若一位元組的最高位被置為1,則該鍵處於down狀態。
PwszBuff:接受翻譯所得Unicode宇符或字元串的緩衝區指針。
cchBuff:定義pwszBuff參數指向的緩衝區中字元串的大小。
wFlags:形成函式執行條件的一個標誌域集。若一個選單處於激活狀態,則將第0位設定為1。第1位到第31位保留。
返回值
返回值:該函式返回一個如下的值:-1:指定的虛擬鍵碼是死鍵(重音或雙音字元)。即使已敲擊了幾個字元,且這幾個字元已存儲在鍵盤狀態中時,也將忽略鍵盤布局,返回該值。如果可能的話,即使對於Unicode鍵盤布局,該函式也己給出了一個將死鍵字元寫入pwszBuff參數定義的緩衝區的間隔形式。例如,函式寫入字元SPACING ACUTE
(0x00B4),而不是寫入字元NON_SPACING ACUTE(0x0301)。
0:對於當前鍵盤狀態,所定義的鍵沒有翻譯。沒有寫人任何東西到pwszBuff參數定義的緩衝區。
1:一個字元被寫入pwszBuff參數定義的緩衝區
2:兩個或兩個以上字元被寫入pwszBuff參數定義的緩衝區。發生這種情況最常見的原因是由於存放在鍵盤布局中的一個死鍵無法由指定的虛擬鍵碼組合成單鍵字元。