ToAsciiEx

機能
仮想キーコードとキーの状態に対応するWindows文字(AscII値)を取得する
Declare Function ToAsciiEx Lib "user32.dll" _
(ByVal uVirtKey As Long, ByVal uScanCode As Long, _
lpKeyState As Any, lpChar As Integer, ByVal uFlags As Long, _
ByVal dwhkl As Long) As Long
Declare Function ToAsciiEx Lib "user32.dll" _
(ByVal uVirtKey As Integer, ByVal uScanCode As Integer, _
lpKeyState As Integer, lpChar As Short, ByVal uFlags As Integer, _
ByVal dwhkl As Integer) As Integer

int ToAsciiEx(
UINT uVirtKey,
UINT uScanCode,
PBYTE lpKeyState,
LPWORD lpChar,
UINT uFlags,
HKL dwhkl
);
引数
uVirtKey

仮想キーコード
uScanCode
スキャンコード(ビット7がオンのとき、キーダウン状態を示す)
lpKeyState
キーボードの状態を示す256バイトのバイト配列
ビット7がオンのとき、キーダウン状態を示す
ビット0がオンのとき、Capsロックキーがオン
lpChar
(戻り値)AscII値を受け取るバッファ
uFlags
メニューがアクティブかどうかを指定するフラッグ
メニューがアクティブなとき        1
アクティブでないとき              0
dwhkl
キーボードレイアウトのハンドル
戻り値
指定のキーがデッドキーのとき      負数
それ以外のとき                    戻り値を示す定数
戻り値を示す定数

0         指定の仮想キーは、キーの状態に対して変換されなかった
1         バッファに1文字コピーした
2         バッファに2文字コピーした(デッドキーを使うときのみ発生)