2009-02-11 09:24:56 +00:00
|
|
|
#include "VKey.h"
|
2009-02-11 20:47:41 +00:00
|
|
|
#include "Global.h"
|
|
|
|
#include <stdio.h>
|
2009-02-11 09:24:56 +00:00
|
|
|
|
|
|
|
wchar_t *GetVKStringW(unsigned char vk) {
|
|
|
|
int flag;
|
|
|
|
static wchar_t t[20];
|
|
|
|
switch(vk) {
|
2009-02-11 20:47:41 +00:00
|
|
|
case 0x0C: return L"Clear";
|
|
|
|
case 0x13: return L"Pause";
|
|
|
|
|
|
|
|
case 0x21:// return "Page Up";
|
|
|
|
case 0x22:// return "Page Down";
|
|
|
|
case 0x23:// return "End";
|
|
|
|
case 0x24:// return "Home";
|
|
|
|
case 0x25:// return "Left";
|
|
|
|
case 0x26:// return "Up";
|
|
|
|
case 0x27:// return "Right";
|
|
|
|
case 0x28:// return "Down";
|
|
|
|
case 0x2D:// return "Insert";
|
|
|
|
case 0x2E:// return "Delete";
|
|
|
|
case 0x5B:// return "Left Windows";
|
|
|
|
case 0x5C:// return "Right Windows";
|
|
|
|
case 0x5D:// return "Application";
|
|
|
|
case 0x6F:// return "Num /";
|
|
|
|
flag = 1<<24;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 0x29: return L"Select";
|
|
|
|
case 0x2A: return L"Print";
|
|
|
|
case 0x2B: return L"Execute";
|
|
|
|
case 0x2C: return L"Prnt Scrn";
|
|
|
|
case 0x2F: return L"Help";
|
|
|
|
|
|
|
|
case 0x6C: return L"|";
|
|
|
|
case 0x90: return L"Num Lock";
|
2009-02-11 09:24:56 +00:00
|
|
|
|
2009-02-11 20:47:41 +00:00
|
|
|
case 0xA0: return L"Left Shift";
|
|
|
|
case 0xA1: return L"Right Shift";
|
|
|
|
case 0xA2: return L"Left Ctrl";
|
|
|
|
case 0xA3: return L"Right Ctrl";
|
|
|
|
case 0xA4: return L"Left Alt";
|
|
|
|
case 0xA5: return L"Right Alt";
|
2009-02-11 09:24:56 +00:00
|
|
|
|
2009-02-11 20:47:41 +00:00
|
|
|
case 0xA6: return L"Back";
|
|
|
|
case 0xA7: return L"Forward";
|
|
|
|
case 0xA8: return L"Refresh";
|
|
|
|
case 0xA9: return L"Stop";
|
|
|
|
case 0xAA: return L"Search";
|
|
|
|
case 0xAB: return L"Favorites";
|
|
|
|
case 0xAC: return L"Browser";
|
2009-02-11 09:24:56 +00:00
|
|
|
|
2009-02-11 20:47:41 +00:00
|
|
|
case 0xFA: return L"Play";
|
|
|
|
case 0xFB: return L"Zoom";
|
|
|
|
default:
|
|
|
|
flag = 0;
|
|
|
|
break;
|
2009-02-11 09:24:56 +00:00
|
|
|
}
|
|
|
|
int res = MapVirtualKey(vk, MAPVK_VK_TO_VSC);
|
|
|
|
if (res && GetKeyNameText((res<<16) | flag, t, 20)) {
|
|
|
|
// don't trust windows
|
|
|
|
t[19] = 0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
wsprintfW(t, L"Key %i", vk);
|
|
|
|
}
|
|
|
|
return t;
|
|
|
|
}
|
|
|
|
|