locale: update rdp scancodes according to Win CE "Translating Scan Codes to Virtual-Key Codes"
The values in @msdn{ms892480} seems to be what is used in TS_KEYBOARD_EVENT @msdn{cc240584}. All the "XT Scan Code Translation Libraries" has been checked and integrated. Only the Korean has been skipped. It is clearly something completely different from everything else. The Japanese is just an extension of the US keyboard like the others.
This commit is contained in:
parent
a9296e976d
commit
16478d8fad
@ -84,7 +84,7 @@ void xf_kbd_send_key(xfInfo* xfi, boolean down, uint8 keycode)
|
||||
{
|
||||
freerdp_input_send_keyboard_event_2(input, down, rdp_scancode);
|
||||
|
||||
if ((rdp_scancode == RDP_SCANCODE_CAPITAL) && (down == false))
|
||||
if ((rdp_scancode == RDP_SCANCODE_CAPSLOCK) && (down == false))
|
||||
{
|
||||
uint32 syncFlags;
|
||||
syncFlags = xf_kbd_get_toggle_keys_state(xfi);
|
||||
|
@ -34,184 +34,150 @@ typedef uint32 RDP_SCANCODE; /* Our own representation of a RDP protocol scancod
|
||||
|
||||
|
||||
/* Defines for known RDP_SCANCODE protocol values.
|
||||
* Mostly the same as the undocumented PKBDLLHOOKSTRUCT scanCode, "A hardware scan code for the key", @msdn{ms644967} */
|
||||
* Mostly the same as the PKBDLLHOOKSTRUCT scanCode, "A hardware scan code for the key", @msdn{ms644967}.
|
||||
* Based @msdn{ms894073} US, @msdn{ms894072} UK, @msdn{ms892472} */
|
||||
|
||||
#define RDP_SCANCODE_UNKNOWN mk_rdp_scancode(0x00, false)
|
||||
/* #define RDP_SCANCODE_LBUTTON VK_LBUTTON */
|
||||
/* #define RDP_SCANCODE_RBUTTON VK_RBUTTON */
|
||||
/* #define RDP_SCANCODE_CANCEL VK_CANCEL */
|
||||
/* #define RDP_SCANCODE_MBUTTON VK_MBUTTON */
|
||||
/* #define RDP_SCANCODE_XBUTTON1 VK_XBUTTON1 */
|
||||
/* #define RDP_SCANCODE_XBUTTON2 VK_XBUTTON2 */
|
||||
#define RDP_SCANCODE_BACK mk_rdp_scancode(0x0E, false) /* VK_BACK */
|
||||
#define RDP_SCANCODE_TAB mk_rdp_scancode(0x0F, false) /* VK_TAB */
|
||||
/* #define RDP_SCANCODE_CLEAR VK_CLEAR */
|
||||
#define RDP_SCANCODE_RETURN mk_rdp_scancode(0x1C, false) /* VK_RETURN */
|
||||
#define RDP_SCANCODE_SHIFT mk_rdp_scancode(0x2A, false) /* VK_SHIFT */
|
||||
/* #define RDP_SCANCODE_CONTROL VK_CONTROL */
|
||||
#define RDP_SCANCODE_MENU mk_rdp_scancode(0x38, false) /* VK_MENU */
|
||||
#define RDP_SCANCODE_PAUSE mk_rdp_scancode(0x46, true) /* VK_PAUSE */
|
||||
#define RDP_SCANCODE_CAPITAL mk_rdp_scancode(0x3A, false) /* VK_CAPITAL */
|
||||
#define RDP_SCANCODE_KANA / VK_HANGUL mk_rdp_scancode(0x72, false) /* VK_KANA / VK_HANGUL */
|
||||
/* #define RDP_SCANCODE_JUNJA VK_JUNJA */
|
||||
/* #define RDP_SCANCODE_FINAL VK_FINAL */
|
||||
#define RDP_SCANCODE_HANJA / VK_KANJI mk_rdp_scancode(0x71, false) /* VK_HANJA / VK_KANJI */
|
||||
#define RDP_SCANCODE_ESCAPE mk_rdp_scancode(0x01, false) /* VK_ESCAPE */
|
||||
/* #define RDP_SCANCODE_CONVERT VK_CONVERT */
|
||||
/* #define RDP_SCANCODE_NONCONVERT VK_NONCONVERT */
|
||||
/* #define RDP_SCANCODE_ACCEPT VK_ACCEPT */
|
||||
/* #define RDP_SCANCODE_MODECHANGE VK_MODECHANGE */
|
||||
#define RDP_SCANCODE_SPACE mk_rdp_scancode(0x39, false) /* VK_SPACE */
|
||||
#define RDP_SCANCODE_PRIOR mk_rdp_scancode(0x49, true) /* VK_PRIOR */
|
||||
#define RDP_SCANCODE_NEXT mk_rdp_scancode(0x51, true) /* VK_NEXT */
|
||||
#define RDP_SCANCODE_END mk_rdp_scancode(0x4F, true) /* VK_END */
|
||||
#define RDP_SCANCODE_HOME mk_rdp_scancode(0x47, true) /* VK_HOME */
|
||||
#define RDP_SCANCODE_LEFT mk_rdp_scancode(0x4B, true) /* VK_LEFT */
|
||||
#define RDP_SCANCODE_UP mk_rdp_scancode(0x48, true) /* VK_UP */
|
||||
#define RDP_SCANCODE_RIGHT mk_rdp_scancode(0x4D, true) /* VK_RIGHT */
|
||||
#define RDP_SCANCODE_DOWN mk_rdp_scancode(0x50, true) /* VK_DOWN */
|
||||
/* #define RDP_SCANCODE_SELECT VK_SELECT */
|
||||
#define RDP_SCANCODE_PRINT mk_rdp_scancode(0x37, true) /* VK_PRINT */
|
||||
#define RDP_SCANCODE_EXECUTE mk_rdp_scancode(0x37, true) /* VK_EXECUTE */
|
||||
#define RDP_SCANCODE_SNAPSHOT mk_rdp_scancode(0x37, true) /* VK_SNAPSHOT */
|
||||
#define RDP_SCANCODE_INSERT mk_rdp_scancode(0x52, true) /* VK_INSERT */
|
||||
#define RDP_SCANCODE_DELETE mk_rdp_scancode(0x53, true) /* VK_DELETE */
|
||||
#define RDP_SCANCODE_HELP mk_rdp_scancode(0x63, false) /* VK_HELP */
|
||||
#define RDP_SCANCODE_KEY_0 mk_rdp_scancode(0x0B, false) /* VK_KEY_0 */
|
||||
#define RDP_SCANCODE_KEY_1 mk_rdp_scancode(0x02, false) /* VK_KEY_1 */
|
||||
#define RDP_SCANCODE_KEY_2 mk_rdp_scancode(0x03, false) /* VK_KEY_2 */
|
||||
#define RDP_SCANCODE_KEY_3 mk_rdp_scancode(0x04, false) /* VK_KEY_3 */
|
||||
#define RDP_SCANCODE_KEY_4 mk_rdp_scancode(0x05, false) /* VK_KEY_4 */
|
||||
#define RDP_SCANCODE_KEY_5 mk_rdp_scancode(0x06, false) /* VK_KEY_5 */
|
||||
#define RDP_SCANCODE_KEY_6 mk_rdp_scancode(0x07, false) /* VK_KEY_6 */
|
||||
#define RDP_SCANCODE_KEY_7 mk_rdp_scancode(0x08, false) /* VK_KEY_7 */
|
||||
#define RDP_SCANCODE_KEY_8 mk_rdp_scancode(0x09, false) /* VK_KEY_8 */
|
||||
#define RDP_SCANCODE_KEY_9 mk_rdp_scancode(0x0A, false) /* VK_KEY_9 */
|
||||
#define RDP_SCANCODE_KEY_A mk_rdp_scancode(0x1E, false) /* VK_KEY_A */
|
||||
#define RDP_SCANCODE_KEY_B mk_rdp_scancode(0x30, false) /* VK_KEY_B */
|
||||
#define RDP_SCANCODE_KEY_C mk_rdp_scancode(0x2E, false) /* VK_KEY_C */
|
||||
#define RDP_SCANCODE_KEY_D mk_rdp_scancode(0x20, false) /* VK_KEY_D */
|
||||
#define RDP_SCANCODE_KEY_E mk_rdp_scancode(0x12, false) /* VK_KEY_E */
|
||||
#define RDP_SCANCODE_KEY_F mk_rdp_scancode(0x21, false) /* VK_KEY_F */
|
||||
#define RDP_SCANCODE_KEY_G mk_rdp_scancode(0x22, false) /* VK_KEY_G */
|
||||
#define RDP_SCANCODE_KEY_H mk_rdp_scancode(0x23, false) /* VK_KEY_H */
|
||||
#define RDP_SCANCODE_KEY_I mk_rdp_scancode(0x17, false) /* VK_KEY_I */
|
||||
#define RDP_SCANCODE_KEY_J mk_rdp_scancode(0x24, false) /* VK_KEY_J */
|
||||
#define RDP_SCANCODE_KEY_K mk_rdp_scancode(0x25, false) /* VK_KEY_K */
|
||||
#define RDP_SCANCODE_KEY_L mk_rdp_scancode(0x26, false) /* VK_KEY_L */
|
||||
#define RDP_SCANCODE_KEY_M mk_rdp_scancode(0x32, false) /* VK_KEY_M */
|
||||
#define RDP_SCANCODE_KEY_N mk_rdp_scancode(0x31, false) /* VK_KEY_N */
|
||||
#define RDP_SCANCODE_KEY_O mk_rdp_scancode(0x18, false) /* VK_KEY_O */
|
||||
#define RDP_SCANCODE_KEY_P mk_rdp_scancode(0x19, false) /* VK_KEY_P */
|
||||
#define RDP_SCANCODE_KEY_Q mk_rdp_scancode(0x10, false) /* VK_KEY_Q */
|
||||
#define RDP_SCANCODE_KEY_R mk_rdp_scancode(0x13, false) /* VK_KEY_R */
|
||||
#define RDP_SCANCODE_KEY_S mk_rdp_scancode(0x1F, false) /* VK_KEY_S */
|
||||
#define RDP_SCANCODE_KEY_T mk_rdp_scancode(0x14, false) /* VK_KEY_T */
|
||||
#define RDP_SCANCODE_KEY_U mk_rdp_scancode(0x16, false) /* VK_KEY_U */
|
||||
#define RDP_SCANCODE_KEY_V mk_rdp_scancode(0x2F, false) /* VK_KEY_V */
|
||||
#define RDP_SCANCODE_KEY_W mk_rdp_scancode(0x11, false) /* VK_KEY_W */
|
||||
#define RDP_SCANCODE_KEY_X mk_rdp_scancode(0x2D, false) /* VK_KEY_X */
|
||||
#define RDP_SCANCODE_KEY_Y mk_rdp_scancode(0x15, false) /* VK_KEY_Y */
|
||||
#define RDP_SCANCODE_KEY_Z mk_rdp_scancode(0x2C, false) /* VK_KEY_Z */
|
||||
#define RDP_SCANCODE_LWIN mk_rdp_scancode(0x5B, true) /* VK_LWIN */
|
||||
#define RDP_SCANCODE_RWIN mk_rdp_scancode(0x5C, true) /* VK_RWIN */
|
||||
#define RDP_SCANCODE_APPS mk_rdp_scancode(0x5D, true) /* VK_APPS */
|
||||
#define RDP_SCANCODE_SLEEP mk_rdp_scancode(0x5F, false) /* VK_SLEEP */
|
||||
#define RDP_SCANCODE_NUMPAD0 mk_rdp_scancode(0x52, false) /* VK_NUMPAD0 */
|
||||
#define RDP_SCANCODE_NUMPAD1 mk_rdp_scancode(0x4F, false) /* VK_NUMPAD1 */
|
||||
#define RDP_SCANCODE_NUMPAD2 mk_rdp_scancode(0x50, false) /* VK_NUMPAD2 */
|
||||
#define RDP_SCANCODE_NUMPAD3 mk_rdp_scancode(0x51, false) /* VK_NUMPAD3 */
|
||||
#define RDP_SCANCODE_NUMPAD4 mk_rdp_scancode(0x4B, false) /* VK_NUMPAD4 */
|
||||
#define RDP_SCANCODE_NUMPAD5 mk_rdp_scancode(0x4C, false) /* VK_NUMPAD5 */
|
||||
#define RDP_SCANCODE_NUMPAD6 mk_rdp_scancode(0x4D, false) /* VK_NUMPAD6 */
|
||||
#define RDP_SCANCODE_NUMPAD7 mk_rdp_scancode(0x47, false) /* VK_NUMPAD7 */
|
||||
#define RDP_SCANCODE_NUMPAD8 mk_rdp_scancode(0x48, false) /* VK_NUMPAD8 */
|
||||
#define RDP_SCANCODE_NUMPAD9 mk_rdp_scancode(0x49, false) /* VK_NUMPAD9 */
|
||||
#define RDP_SCANCODE_MULTIPLY mk_rdp_scancode(0x37, false) /* VK_MULTIPLY */
|
||||
#define RDP_SCANCODE_ADD mk_rdp_scancode(0x4E, false) /* VK_ADD */
|
||||
/* #define RDP_SCANCODE_SEPARATOR VK_SEPARATOR */
|
||||
#define RDP_SCANCODE_SUBTRACT mk_rdp_scancode(0x4A, false) /* VK_SUBTRACT */
|
||||
#define RDP_SCANCODE_DECIMAL mk_rdp_scancode(0x53, false) /* VK_DECIMAL */
|
||||
#define RDP_SCANCODE_DIVIDE mk_rdp_scancode(0x35, true) /* VK_DIVIDE */
|
||||
#define RDP_SCANCODE_F1 mk_rdp_scancode(0x3B, false) /* VK_F1 */
|
||||
#define RDP_SCANCODE_F2 mk_rdp_scancode(0x3C, false) /* VK_F2 */
|
||||
#define RDP_SCANCODE_F3 mk_rdp_scancode(0x3D, false) /* VK_F3 */
|
||||
#define RDP_SCANCODE_F4 mk_rdp_scancode(0x3E, false) /* VK_F4 */
|
||||
#define RDP_SCANCODE_F5 mk_rdp_scancode(0x3F, false) /* VK_F5 */
|
||||
#define RDP_SCANCODE_F6 mk_rdp_scancode(0x40, false) /* VK_F6 */
|
||||
#define RDP_SCANCODE_F7 mk_rdp_scancode(0x41, false) /* VK_F7 */
|
||||
#define RDP_SCANCODE_F8 mk_rdp_scancode(0x42, false) /* VK_F8 */
|
||||
#define RDP_SCANCODE_F9 mk_rdp_scancode(0x43, false) /* VK_F9 */
|
||||
#define RDP_SCANCODE_F10 mk_rdp_scancode(0x44, false) /* VK_F10 */
|
||||
#define RDP_SCANCODE_F11 mk_rdp_scancode(0x57, false) /* VK_F11 */
|
||||
#define RDP_SCANCODE_F12 mk_rdp_scancode(0x58, false) /* VK_F12 */
|
||||
#define RDP_SCANCODE_F13 mk_rdp_scancode(0x64, false) /* VK_F13 */
|
||||
#define RDP_SCANCODE_F14 mk_rdp_scancode(0x65, false) /* VK_F14 */
|
||||
#define RDP_SCANCODE_F15 mk_rdp_scancode(0x66, false) /* VK_F15 */
|
||||
#define RDP_SCANCODE_F16 mk_rdp_scancode(0x67, false) /* VK_F16 */
|
||||
#define RDP_SCANCODE_F17 mk_rdp_scancode(0x68, false) /* VK_F17 */
|
||||
#define RDP_SCANCODE_F18 mk_rdp_scancode(0x69, false) /* VK_F18 */
|
||||
#define RDP_SCANCODE_F19 mk_rdp_scancode(0x6A, false) /* VK_F19 */
|
||||
#define RDP_SCANCODE_F20 mk_rdp_scancode(0x6B, false) /* VK_F20 */
|
||||
#define RDP_SCANCODE_F21 mk_rdp_scancode(0x6C, false) /* VK_F21 */
|
||||
#define RDP_SCANCODE_F22 mk_rdp_scancode(0x6D, false) /* VK_F22 */
|
||||
#define RDP_SCANCODE_F23 mk_rdp_scancode(0x6E, false) /* VK_F23 */
|
||||
#define RDP_SCANCODE_F24 mk_rdp_scancode(0x6F, false) /* VK_F24 */
|
||||
#define RDP_SCANCODE_NUMLOCK mk_rdp_scancode(0x45, false) /* VK_NUMLOCK */ /* Note: when this seems to appear in PKBDLLHOOKSTRUCT it means Pause which must be sent as Ctrl + NumLock */
|
||||
#define RDP_SCANCODE_SCROLL mk_rdp_scancode(0x46, false) /* VK_SCROLL */
|
||||
#define RDP_SCANCODE_LSHIFT mk_rdp_scancode(0x2A, false) /* VK_LSHIFT */
|
||||
#define RDP_SCANCODE_RSHIFT mk_rdp_scancode(0x36, false) /* VK_RSHIFT */
|
||||
#define RDP_SCANCODE_LCONTROL mk_rdp_scancode(0x1D, false) /* VK_LCONTROL */
|
||||
#define RDP_SCANCODE_RCONTROL mk_rdp_scancode(0x1D, true) /* VK_RCONTROL */
|
||||
#define RDP_SCANCODE_LMENU mk_rdp_scancode(0x38, false) /* VK_LMENU */
|
||||
#define RDP_SCANCODE_RMENU mk_rdp_scancode(0x38, true) /* VK_RMENU */
|
||||
/* #define RDP_SCANCODE_BROWSER_BACK VK_BROWSER_BACK */
|
||||
/* #define RDP_SCANCODE_BROWSER_FORWARD VK_BROWSER_FORWARD */
|
||||
/* #define RDP_SCANCODE_BROWSER_REFRESH VK_BROWSER_REFRESH */
|
||||
/* #define RDP_SCANCODE_BROWSER_STOP VK_BROWSER_STOP */
|
||||
/* #define RDP_SCANCODE_BROWSER_SEARCH VK_BROWSER_SEARCH */
|
||||
/* #define RDP_SCANCODE_BROWSER_FAVORITES VK_BROWSER_FAVORITES */
|
||||
/* #define RDP_SCANCODE_BROWSER_HOME VK_BROWSER_HOME */
|
||||
/* #define RDP_SCANCODE_VOLUME_MUTE VK_VOLUME_MUTE */
|
||||
/* #define RDP_SCANCODE_VOLUME_DOWN VK_VOLUME_DOWN */
|
||||
/* #define RDP_SCANCODE_VOLUME_UP VK_VOLUME_UP */
|
||||
/* #define RDP_SCANCODE_MEDIA_NEXT_TRACK VK_MEDIA_NEXT_TRACK */
|
||||
/* #define RDP_SCANCODE_MEDIA_PREV_TRACK VK_MEDIA_PREV_TRACK */
|
||||
/* #define RDP_SCANCODE_MEDIA_STOP VK_MEDIA_STOP */
|
||||
/* #define RDP_SCANCODE_MEDIA_PLAY_PAUSE VK_MEDIA_PLAY_PAUSE */
|
||||
/* #define RDP_SCANCODE_LAUNCH_MAIL VK_LAUNCH_MAIL */
|
||||
/* #define RDP_SCANCODE_MEDIA_SELECT VK_MEDIA_SELECT */
|
||||
/* #define RDP_SCANCODE_LAUNCH_APP1 VK_LAUNCH_APP1 */
|
||||
/* #define RDP_SCANCODE_LAUNCH_APP2 VK_LAUNCH_APP2 */
|
||||
#define RDP_SCANCODE_OEM_1 mk_rdp_scancode(0x27, false) /* VK_OEM_1 */
|
||||
#define RDP_SCANCODE_OEM_PLUS mk_rdp_scancode(0x0D, false) /* VK_OEM_PLUS */
|
||||
#define RDP_SCANCODE_OEM_COMMA mk_rdp_scancode(0x33, false) /* VK_OEM_COMMA */
|
||||
#define RDP_SCANCODE_OEM_MINUS mk_rdp_scancode(0x0C, false) /* VK_OEM_MINUS */
|
||||
#define RDP_SCANCODE_OEM_PERIOD mk_rdp_scancode(0x34, false) /* VK_OEM_PERIOD */
|
||||
#define RDP_SCANCODE_OEM_2 mk_rdp_scancode(0x35, false) /* VK_OEM_2 */
|
||||
#define RDP_SCANCODE_OEM_3 mk_rdp_scancode(0x29, false) /* VK_OEM_3 */
|
||||
#define RDP_SCANCODE_ABNT_C1 mk_rdp_scancode(0x73, false) /* VK_ABNT_C1 */
|
||||
#define RDP_SCANCODE_ABNT_C2 mk_rdp_scancode(0x7E, false) /* VK_ABNT_C2 */
|
||||
#define RDP_SCANCODE_OEM_4 mk_rdp_scancode(0x1A, false) /* VK_OEM_4 */
|
||||
#define RDP_SCANCODE_OEM_5 mk_rdp_scancode(0x2B, false) /* VK_OEM_5 */
|
||||
#define RDP_SCANCODE_OEM_6 mk_rdp_scancode(0x1B, false) /* VK_OEM_6 */
|
||||
#define RDP_SCANCODE_OEM_7 mk_rdp_scancode(0x28, false) /* VK_OEM_7 */
|
||||
#define RDP_SCANCODE_OEM_8 mk_rdp_scancode(0x1D, false) /* VK_OEM_8 */
|
||||
#define RDP_SCANCODE_OEM_102 mk_rdp_scancode(0x56, false) /* VK_OEM_102 */
|
||||
/* #define RDP_SCANCODE_PROCESSKEY VK_PROCESSKEY */
|
||||
/* #define RDP_SCANCODE_PACKET VK_PACKET */
|
||||
/* #define RDP_SCANCODE_ATTN VK_ATTN */
|
||||
/* #define RDP_SCANCODE_CRSEL VK_CRSEL */
|
||||
/* #define RDP_SCANCODE_EXSEL VK_EXSEL */
|
||||
/* #define RDP_SCANCODE_EREOF VK_EREOF */
|
||||
/* #define RDP_SCANCODE_PLAY VK_PLAY */
|
||||
#define RDP_SCANCODE_ZOOM mk_rdp_scancode(0x62, false) /* VK_ZOOM */
|
||||
/* #define RDP_SCANCODE_NONAME VK_NONAME */
|
||||
/* #define RDP_SCANCODE_PA1 VK_PA1 */
|
||||
/* #define RDP_SCANCODE_OEM_CLEAR VK_OEM_CLEAR */
|
||||
#define RDP_SCANCODE_UNKNOWN mk_rdp_scancode(0x00, false)
|
||||
|
||||
#define RDP_SCANCODE_RETURN_KP mk_rdp_scancode(0x1C, true) /* not RDP_SCANCODE_RETURN */
|
||||
#define RDP_SCANCODE_BACKSLASH_JP mk_rdp_scancode(0x7D, false) /* JP OEM_5 ('\') */
|
||||
#define RDP_SCANCODE_ESCAPE mk_rdp_scancode(0x01, false) /* VK_ESCAPE */
|
||||
#define RDP_SCANCODE_KEY_1 mk_rdp_scancode(0x02, false) /* VK_KEY_1 */
|
||||
#define RDP_SCANCODE_KEY_2 mk_rdp_scancode(0x03, false) /* VK_KEY_2 */
|
||||
#define RDP_SCANCODE_KEY_3 mk_rdp_scancode(0x04, false) /* VK_KEY_3 */
|
||||
#define RDP_SCANCODE_KEY_4 mk_rdp_scancode(0x05, false) /* VK_KEY_4 */
|
||||
#define RDP_SCANCODE_KEY_5 mk_rdp_scancode(0x06, false) /* VK_KEY_5 */
|
||||
#define RDP_SCANCODE_KEY_6 mk_rdp_scancode(0x07, false) /* VK_KEY_6 */
|
||||
#define RDP_SCANCODE_KEY_7 mk_rdp_scancode(0x08, false) /* VK_KEY_7 */
|
||||
#define RDP_SCANCODE_KEY_8 mk_rdp_scancode(0x09, false) /* VK_KEY_8 */
|
||||
#define RDP_SCANCODE_KEY_9 mk_rdp_scancode(0x0A, false) /* VK_KEY_9 */
|
||||
#define RDP_SCANCODE_KEY_0 mk_rdp_scancode(0x0B, false) /* VK_KEY_0 */
|
||||
#define RDP_SCANCODE_OEM_MINUS mk_rdp_scancode(0x0C, false) /* VK_OEM_MINUS */
|
||||
#define RDP_SCANCODE_OEM_PLUS mk_rdp_scancode(0x0D, false) /* VK_OEM_PLUS */
|
||||
#define RDP_SCANCODE_BACKSPACE mk_rdp_scancode(0x0E, false) /* VK_BACK Backspace */
|
||||
#define RDP_SCANCODE_TAB mk_rdp_scancode(0x0F, false) /* VK_TAB */
|
||||
#define RDP_SCANCODE_KEY_Q mk_rdp_scancode(0x10, false) /* VK_KEY_Q */
|
||||
#define RDP_SCANCODE_KEY_W mk_rdp_scancode(0x11, false) /* VK_KEY_W */
|
||||
#define RDP_SCANCODE_KEY_E mk_rdp_scancode(0x12, false) /* VK_KEY_E */
|
||||
#define RDP_SCANCODE_KEY_R mk_rdp_scancode(0x13, false) /* VK_KEY_R */
|
||||
#define RDP_SCANCODE_KEY_T mk_rdp_scancode(0x14, false) /* VK_KEY_T */
|
||||
#define RDP_SCANCODE_KEY_Y mk_rdp_scancode(0x15, false) /* VK_KEY_Y */
|
||||
#define RDP_SCANCODE_KEY_U mk_rdp_scancode(0x16, false) /* VK_KEY_U */
|
||||
#define RDP_SCANCODE_KEY_I mk_rdp_scancode(0x17, false) /* VK_KEY_I */
|
||||
#define RDP_SCANCODE_KEY_O mk_rdp_scancode(0x18, false) /* VK_KEY_O */
|
||||
#define RDP_SCANCODE_KEY_P mk_rdp_scancode(0x19, false) /* VK_KEY_P */
|
||||
#define RDP_SCANCODE_OEM_4 mk_rdp_scancode(0x1A, false) /* VK_OEM_4 '[' on US */
|
||||
#define RDP_SCANCODE_OEM_6 mk_rdp_scancode(0x1B, false) /* VK_OEM_6 ']' on US */
|
||||
#define RDP_SCANCODE_RETURN mk_rdp_scancode(0x1C, false) /* VK_RETURN Normal Enter */
|
||||
#define RDP_SCANCODE_LCONTROL mk_rdp_scancode(0x1D, false) /* VK_LCONTROL */
|
||||
#define RDP_SCANCODE_KEY_A mk_rdp_scancode(0x1E, false) /* VK_KEY_A */
|
||||
#define RDP_SCANCODE_KEY_S mk_rdp_scancode(0x1F, false) /* VK_KEY_S */
|
||||
#define RDP_SCANCODE_KEY_D mk_rdp_scancode(0x20, false) /* VK_KEY_D */
|
||||
#define RDP_SCANCODE_KEY_F mk_rdp_scancode(0x21, false) /* VK_KEY_F */
|
||||
#define RDP_SCANCODE_KEY_G mk_rdp_scancode(0x22, false) /* VK_KEY_G */
|
||||
#define RDP_SCANCODE_KEY_H mk_rdp_scancode(0x23, false) /* VK_KEY_H */
|
||||
#define RDP_SCANCODE_KEY_J mk_rdp_scancode(0x24, false) /* VK_KEY_J */
|
||||
#define RDP_SCANCODE_KEY_K mk_rdp_scancode(0x25, false) /* VK_KEY_K */
|
||||
#define RDP_SCANCODE_KEY_L mk_rdp_scancode(0x26, false) /* VK_KEY_L */
|
||||
#define RDP_SCANCODE_OEM_1 mk_rdp_scancode(0x27, false) /* VK_OEM_1 ';' on US */
|
||||
#define RDP_SCANCODE_OEM_7 mk_rdp_scancode(0x28, false) /* VK_OEM_7 "'" on US */
|
||||
#define RDP_SCANCODE_OEM_3 mk_rdp_scancode(0x29, false) /* VK_OEM_3 Top left, '`' on US, JP DBE_SBCSCHAR */
|
||||
#define RDP_SCANCODE_LSHIFT mk_rdp_scancode(0x2A, false) /* VK_LSHIFT */
|
||||
#define RDP_SCANCODE_OEM_5 mk_rdp_scancode(0x2B, false) /* VK_OEM_5 Next to Enter, '\' on US */
|
||||
#define RDP_SCANCODE_KEY_Z mk_rdp_scancode(0x2C, false) /* VK_KEY_Z */
|
||||
#define RDP_SCANCODE_KEY_X mk_rdp_scancode(0x2D, false) /* VK_KEY_X */
|
||||
#define RDP_SCANCODE_KEY_C mk_rdp_scancode(0x2E, false) /* VK_KEY_C */
|
||||
#define RDP_SCANCODE_KEY_V mk_rdp_scancode(0x2F, false) /* VK_KEY_V */
|
||||
#define RDP_SCANCODE_KEY_B mk_rdp_scancode(0x30, false) /* VK_KEY_B */
|
||||
#define RDP_SCANCODE_KEY_N mk_rdp_scancode(0x31, false) /* VK_KEY_N */
|
||||
#define RDP_SCANCODE_KEY_M mk_rdp_scancode(0x32, false) /* VK_KEY_M */
|
||||
#define RDP_SCANCODE_OEM_COMMA mk_rdp_scancode(0x33, false) /* VK_OEM_COMMA */
|
||||
#define RDP_SCANCODE_OEM_PERIOD mk_rdp_scancode(0x34, false) /* VK_OEM_PERIOD */
|
||||
#define RDP_SCANCODE_OEM_2 mk_rdp_scancode(0x35, false) /* VK_OEM_2 '/' on US */
|
||||
#define RDP_SCANCODE_RSHIFT mk_rdp_scancode(0x36, false) /* VK_RSHIFT */
|
||||
#define RDP_SCANCODE_MULTIPLY mk_rdp_scancode(0x37, false) /* VK_MULTIPLY Numerical */
|
||||
#define RDP_SCANCODE_LMENU mk_rdp_scancode(0x38, false) /* VK_LMENU Left 'Alt' key */
|
||||
#define RDP_SCANCODE_SPACE mk_rdp_scancode(0x39, false) /* VK_SPACE */
|
||||
#define RDP_SCANCODE_CAPSLOCK mk_rdp_scancode(0x3A, false) /* VK_CAPITAL 'Caps Lock', JP DBE_ALPHANUMERIC */
|
||||
#define RDP_SCANCODE_F1 mk_rdp_scancode(0x3B, false) /* VK_F1 */
|
||||
#define RDP_SCANCODE_F2 mk_rdp_scancode(0x3C, false) /* VK_F2 */
|
||||
#define RDP_SCANCODE_F3 mk_rdp_scancode(0x3D, false) /* VK_F3 */
|
||||
#define RDP_SCANCODE_F4 mk_rdp_scancode(0x3E, false) /* VK_F4 */
|
||||
#define RDP_SCANCODE_F5 mk_rdp_scancode(0x3F, false) /* VK_F5 */
|
||||
#define RDP_SCANCODE_F6 mk_rdp_scancode(0x40, false) /* VK_F6 */
|
||||
#define RDP_SCANCODE_F7 mk_rdp_scancode(0x41, false) /* VK_F7 */
|
||||
#define RDP_SCANCODE_F8 mk_rdp_scancode(0x42, false) /* VK_F8 */
|
||||
#define RDP_SCANCODE_F9 mk_rdp_scancode(0x43, false) /* VK_F9 */
|
||||
#define RDP_SCANCODE_F10 mk_rdp_scancode(0x44, false) /* VK_F10 */
|
||||
#define RDP_SCANCODE_NUMLOCK mk_rdp_scancode(0x45, false) /* VK_NUMLOCK */ /* Note: when this seems to appear in PKBDLLHOOKSTRUCT it means Pause which must be sent as Ctrl + NumLock */
|
||||
#define RDP_SCANCODE_SCROLLLOCK mk_rdp_scancode(0x46, false) /* VK_SCROLL 'Scroll Lock', JP OEM_SCROLL */
|
||||
#define RDP_SCANCODE_NUMPAD7 mk_rdp_scancode(0x47, false) /* VK_NUMPAD7 */
|
||||
#define RDP_SCANCODE_NUMPAD8 mk_rdp_scancode(0x48, false) /* VK_NUMPAD8 */
|
||||
#define RDP_SCANCODE_NUMPAD9 mk_rdp_scancode(0x49, false) /* VK_NUMPAD9 */
|
||||
#define RDP_SCANCODE_SUBTRACT mk_rdp_scancode(0x4A, false) /* VK_SUBTRACT */
|
||||
#define RDP_SCANCODE_NUMPAD4 mk_rdp_scancode(0x4B, false) /* VK_NUMPAD4 */
|
||||
#define RDP_SCANCODE_NUMPAD5 mk_rdp_scancode(0x4C, false) /* VK_NUMPAD5 */
|
||||
#define RDP_SCANCODE_NUMPAD6 mk_rdp_scancode(0x4D, false) /* VK_NUMPAD6 */
|
||||
#define RDP_SCANCODE_ADD mk_rdp_scancode(0x4E, false) /* VK_ADD */
|
||||
#define RDP_SCANCODE_NUMPAD1 mk_rdp_scancode(0x4F, false) /* VK_NUMPAD1 */
|
||||
#define RDP_SCANCODE_NUMPAD2 mk_rdp_scancode(0x50, false) /* VK_NUMPAD2 */
|
||||
#define RDP_SCANCODE_NUMPAD3 mk_rdp_scancode(0x51, false) /* VK_NUMPAD3 */
|
||||
#define RDP_SCANCODE_NUMPAD0 mk_rdp_scancode(0x52, false) /* VK_NUMPAD0 */
|
||||
#define RDP_SCANCODE_DECIMAL mk_rdp_scancode(0x53, false) /* VK_DECIMAL Numerical, '.' on US */
|
||||
#define RDP_SCANCODE_SYSREQ mk_rdp_scancode(0x54, false) /* Sys Req */
|
||||
#define RDP_SCANCODE_OEM_102 mk_rdp_scancode(0x56, false) /* VK_OEM_102 Lower left '\' on US */
|
||||
#define RDP_SCANCODE_F11 mk_rdp_scancode(0x57, false) /* VK_F11 */
|
||||
#define RDP_SCANCODE_F12 mk_rdp_scancode(0x58, false) /* VK_F12 */
|
||||
#define RDP_SCANCODE_SLEEP mk_rdp_scancode(0x5F, false) /* VK_SLEEP OEM_8 on FR (undocumented?) */
|
||||
#define RDP_SCANCODE_ZOOM mk_rdp_scancode(0x62, false) /* VK_ZOOM (undocumented?) */
|
||||
#define RDP_SCANCODE_HELP mk_rdp_scancode(0x63, false) /* VK_HELP (undocumented?) */
|
||||
|
||||
#define RDP_SCANCODE_F13 mk_rdp_scancode(0x64, false) /* VK_F13 */ /* JP agree, should 0x7d according to ms894073 */
|
||||
#define RDP_SCANCODE_F14 mk_rdp_scancode(0x65, false) /* VK_F14 */
|
||||
#define RDP_SCANCODE_F15 mk_rdp_scancode(0x66, false) /* VK_F15 */
|
||||
#define RDP_SCANCODE_F16 mk_rdp_scancode(0x67, false) /* VK_F16 */
|
||||
#define RDP_SCANCODE_F17 mk_rdp_scancode(0x68, false) /* VK_F17 */
|
||||
#define RDP_SCANCODE_F18 mk_rdp_scancode(0x69, false) /* VK_F18 */
|
||||
#define RDP_SCANCODE_F19 mk_rdp_scancode(0x6A, false) /* VK_F19 */
|
||||
#define RDP_SCANCODE_F20 mk_rdp_scancode(0x6B, false) /* VK_F20 */
|
||||
#define RDP_SCANCODE_F21 mk_rdp_scancode(0x6C, false) /* VK_F21 */
|
||||
#define RDP_SCANCODE_F22 mk_rdp_scancode(0x6D, false) /* VK_F22 */
|
||||
#define RDP_SCANCODE_F23 mk_rdp_scancode(0x6E, false) /* VK_F23 */ /* JP agree */
|
||||
#define RDP_SCANCODE_F24 mk_rdp_scancode(0x6F, false) /* VK_F24 */ /* 0x87 according to ms894073 */
|
||||
|
||||
#define RDP_SCANCODE_HIRAGANA mk_rdp_scancode(0x70, false) /* JP DBE_HIRAGANA */
|
||||
#define RDP_SCANCODE_HANJA_KANJI mk_rdp_scancode(0x71, false) /* VK_HANJA / VK_KANJI (undocumented?) */
|
||||
#define RDP_SCANCODE_KANA_HANGUL mk_rdp_scancode(0x72, false) /* VK_KANA / VK_HANGUL (undocumented?) */
|
||||
#define RDP_SCANCODE_ABNT_C1 mk_rdp_scancode(0x73, false) /* VK_ABNT_C1 JP OEM_102 */
|
||||
#define RDP_SCANCODE_F24_JP mk_rdp_scancode(0x76, false) /* JP F24 */
|
||||
#define RDP_SCANCODE_CONVERT_JP mk_rdp_scancode(0x79, false) /* JP CONVERT */
|
||||
#define RDP_SCANCODE_NONCONVERT_JP mk_rdp_scancode(0x7B, false) /* JP NONCONVERT */
|
||||
#define RDP_SCANCODE_TAB_JP mk_rdp_scancode(0x7C, false) /* JP TAB */
|
||||
#define RDP_SCANCODE_BACKSLASH_JP mk_rdp_scancode(0x7D, false) /* JP OEM_5 ('\') */
|
||||
#define RDP_SCANCODE_ABNT_C2 mk_rdp_scancode(0x7E, false) /* VK_ABNT_C2, JP */
|
||||
#define RDP_SCANCODE_ABNT_C2 mk_rdp_scancode(0x7E, false) /* JP OEM_PA2 */
|
||||
|
||||
#define RDP_SCANCODE_RETURN_KP mk_rdp_scancode(0x1C, true) /* not RDP_SCANCODE_RETURN Numerical Enter */
|
||||
#define RDP_SCANCODE_RCONTROL mk_rdp_scancode(0x1D, true) /* VK_RCONTROL */
|
||||
#define RDP_SCANCODE_DIVIDE mk_rdp_scancode(0x35, true) /* VK_DIVIDE Numerical */
|
||||
#define RDP_SCANCODE_PRINTSCREEN mk_rdp_scancode(0x37, true) /* VK_EXECUTE/VK_PRINT/VK_SNAPSHOT Print Screen */
|
||||
#define RDP_SCANCODE_RMENU mk_rdp_scancode(0x38, true) /* VK_RMENU Right 'Alt' / 'Alt Gr' */
|
||||
#define RDP_SCANCODE_PAUSE mk_rdp_scancode(0x46, true) /* VK_PAUSE Pause / Break (Slightly special handling) */
|
||||
#define RDP_SCANCODE_HOME mk_rdp_scancode(0x47, true) /* VK_HOME */
|
||||
#define RDP_SCANCODE_UP mk_rdp_scancode(0x48, true) /* VK_UP */
|
||||
#define RDP_SCANCODE_PRIOR mk_rdp_scancode(0x49, true) /* VK_PRIOR 'Page Up' */
|
||||
#define RDP_SCANCODE_LEFT mk_rdp_scancode(0x4B, true) /* VK_LEFT */
|
||||
#define RDP_SCANCODE_RIGHT mk_rdp_scancode(0x4D, true) /* VK_RIGHT */
|
||||
#define RDP_SCANCODE_END mk_rdp_scancode(0x4F, true) /* VK_END */
|
||||
#define RDP_SCANCODE_DOWN mk_rdp_scancode(0x50, true) /* VK_DOWN */
|
||||
#define RDP_SCANCODE_NEXT mk_rdp_scancode(0x51, true) /* VK_NEXT 'Page Down' */
|
||||
#define RDP_SCANCODE_INSERT mk_rdp_scancode(0x52, true) /* VK_INSERT */
|
||||
#define RDP_SCANCODE_DELETE mk_rdp_scancode(0x53, true) /* VK_DELETE */
|
||||
#define RDP_SCANCODE_NULL mk_rdp_scancode(0x54, true) /* <00> */
|
||||
#define RDP_SCANCODE_HELP2 mk_rdp_scancode(0x56, true) /* Help - documented, different from VK_HELP */
|
||||
#define RDP_SCANCODE_LWIN mk_rdp_scancode(0x5B, true) /* VK_LWIN */
|
||||
#define RDP_SCANCODE_RWIN mk_rdp_scancode(0x5C, true) /* VK_RWIN */
|
||||
#define RDP_SCANCODE_APPS mk_rdp_scancode(0x5D, true) /* VK_APPS Application */
|
||||
#define RDP_SCANCODE_POWER_JP mk_rdp_scancode(0x5E, true) /* JP POWER */
|
||||
#define RDP_SCANCODE_SLEEP_JP mk_rdp_scancode(0x5F, true) /* JP SLEEP */
|
||||
|
||||
/* _not_ valid scancode, but this is what a windows PKBDLLHOOKSTRUCT for NumLock contains */
|
||||
#define RDP_SCANCODE_NUMLOCK_EXTENDED mk_rdp_scancode(0x45, true) /* should be RDP_SCANCODE_NUMLOCK */
|
||||
|
@ -221,7 +221,7 @@ const RDP_SCANCODE VIRTUAL_KEY_CODE_TO_DEFAULT_RDP_SCANCODE_TABLE[256] =
|
||||
RDP_SCANCODE_UNKNOWN, /* VK_XBUTTON1 */
|
||||
RDP_SCANCODE_UNKNOWN, /* VK_XBUTTON2 */
|
||||
RDP_SCANCODE_UNKNOWN,
|
||||
RDP_SCANCODE_BACK, /* VK_BACK */
|
||||
RDP_SCANCODE_BACKSPACE, /* VK_BACK */
|
||||
RDP_SCANCODE_TAB, /* VK_TAB */
|
||||
RDP_SCANCODE_UNKNOWN,
|
||||
RDP_SCANCODE_UNKNOWN,
|
||||
@ -229,11 +229,11 @@ const RDP_SCANCODE VIRTUAL_KEY_CODE_TO_DEFAULT_RDP_SCANCODE_TABLE[256] =
|
||||
RDP_SCANCODE_RETURN, /* VK_RETURN */
|
||||
RDP_SCANCODE_UNKNOWN,
|
||||
RDP_SCANCODE_UNKNOWN,
|
||||
RDP_SCANCODE_SHIFT, /* VK_SHIFT */
|
||||
RDP_SCANCODE_LSHIFT, /* VK_SHIFT */
|
||||
RDP_SCANCODE_UNKNOWN, /* VK_CONTROL */
|
||||
RDP_SCANCODE_MENU, /* VK_MENU */
|
||||
RDP_SCANCODE_LMENU, /* VK_MENU */
|
||||
RDP_SCANCODE_PAUSE, /* VK_PAUSE */
|
||||
RDP_SCANCODE_CAPITAL, /* VK_CAPITAL */
|
||||
RDP_SCANCODE_CAPSLOCK, /* VK_CAPITAL */
|
||||
RDP_SCANCODE_UNKNOWN, /* VK_KANA / VK_HANGUL */
|
||||
RDP_SCANCODE_UNKNOWN,
|
||||
RDP_SCANCODE_UNKNOWN, /* VK_JUNJA */
|
||||
@ -255,9 +255,9 @@ const RDP_SCANCODE VIRTUAL_KEY_CODE_TO_DEFAULT_RDP_SCANCODE_TABLE[256] =
|
||||
RDP_SCANCODE_RIGHT, /* VK_RIGHT */
|
||||
RDP_SCANCODE_DOWN, /* VK_DOWN */
|
||||
RDP_SCANCODE_UNKNOWN, /* VK_SELECT */
|
||||
RDP_SCANCODE_PRINT, /* VK_PRINT */
|
||||
RDP_SCANCODE_EXECUTE, /* VK_EXECUTE */
|
||||
RDP_SCANCODE_SNAPSHOT, /* VK_SNAPSHOT */
|
||||
RDP_SCANCODE_PRINTSCREEN,/* VK_PRINT */
|
||||
RDP_SCANCODE_PRINTSCREEN,/* VK_EXECUTE */
|
||||
RDP_SCANCODE_PRINTSCREEN,/* VK_SNAPSHOT */
|
||||
RDP_SCANCODE_INSERT, /* VK_INSERT */
|
||||
RDP_SCANCODE_DELETE, /* VK_DELETE */
|
||||
RDP_SCANCODE_HELP, /* VK_HELP */
|
||||
@ -358,7 +358,7 @@ const RDP_SCANCODE VIRTUAL_KEY_CODE_TO_DEFAULT_RDP_SCANCODE_TABLE[256] =
|
||||
RDP_SCANCODE_UNKNOWN,
|
||||
RDP_SCANCODE_UNKNOWN,
|
||||
RDP_SCANCODE_NUMLOCK, /* VK_NUMLOCK */
|
||||
RDP_SCANCODE_SCROLL, /* VK_SCROLL */
|
||||
RDP_SCANCODE_SCROLLLOCK, /* VK_SCROLL */
|
||||
RDP_SCANCODE_UNKNOWN,
|
||||
RDP_SCANCODE_UNKNOWN,
|
||||
RDP_SCANCODE_UNKNOWN,
|
||||
@ -436,7 +436,7 @@ const RDP_SCANCODE VIRTUAL_KEY_CODE_TO_DEFAULT_RDP_SCANCODE_TABLE[256] =
|
||||
RDP_SCANCODE_OEM_5, /* VK_OEM_5 */
|
||||
RDP_SCANCODE_OEM_6, /* VK_OEM_6 */
|
||||
RDP_SCANCODE_OEM_7, /* VK_OEM_7 */
|
||||
RDP_SCANCODE_OEM_8, /* VK_OEM_8 */
|
||||
RDP_SCANCODE_LCONTROL, /* VK_OEM_8 */
|
||||
RDP_SCANCODE_UNKNOWN,
|
||||
RDP_SCANCODE_UNKNOWN,
|
||||
RDP_SCANCODE_OEM_102, /* VK_OEM_102 */
|
||||
|
@ -40,12 +40,12 @@ typedef struct _XKB_KEY_NAME_SCANCODE XKB_KEY_NAME_SCANCODE;
|
||||
|
||||
XKB_KEY_NAME_SCANCODE XKB_KEY_NAME_SCANCODE_TABLE[] =
|
||||
{
|
||||
{ "BKSP", RDP_SCANCODE_BACK},
|
||||
{ "BKSP", RDP_SCANCODE_BACKSPACE},
|
||||
{ "TAB", RDP_SCANCODE_TAB},
|
||||
{ "RTRN", RDP_SCANCODE_RETURN}, // not KP
|
||||
{ "LFSH", RDP_SCANCODE_SHIFT},
|
||||
{ "LALT", RDP_SCANCODE_MENU},
|
||||
{ "CAPS", RDP_SCANCODE_CAPITAL},
|
||||
{ "LFSH", RDP_SCANCODE_LSHIFT},
|
||||
{ "LALT", RDP_SCANCODE_LMENU},
|
||||
{ "CAPS", RDP_SCANCODE_CAPSLOCK},
|
||||
{ "ESC", RDP_SCANCODE_ESCAPE},
|
||||
{ "SPCE", RDP_SCANCODE_SPACE},
|
||||
{ "AE10", RDP_SCANCODE_KEY_0},
|
||||
@ -112,7 +112,7 @@ XKB_KEY_NAME_SCANCODE XKB_KEY_NAME_SCANCODE_TABLE[] =
|
||||
{ "FK11", RDP_SCANCODE_F11},
|
||||
{ "FK12", RDP_SCANCODE_F12},
|
||||
{ "NMLK", RDP_SCANCODE_NUMLOCK},
|
||||
{ "SCLK", RDP_SCANCODE_SCROLL},
|
||||
{ "SCLK", RDP_SCANCODE_SCROLLLOCK},
|
||||
{ "RTSH", RDP_SCANCODE_RSHIFT},
|
||||
{ "LCTL", RDP_SCANCODE_LCONTROL},
|
||||
{ "AC10", RDP_SCANCODE_OEM_1},
|
||||
@ -138,7 +138,7 @@ XKB_KEY_NAME_SCANCODE XKB_KEY_NAME_SCANCODE_TABLE[] =
|
||||
{ "UP", RDP_SCANCODE_UP},
|
||||
{ "RGHT", RDP_SCANCODE_RIGHT},
|
||||
{ "DOWN", RDP_SCANCODE_DOWN},
|
||||
{ "PRSC", RDP_SCANCODE_PRINT},
|
||||
{ "PRSC", RDP_SCANCODE_PRINTSCREEN},
|
||||
{ "INS", RDP_SCANCODE_INSERT},
|
||||
{ "DELE", RDP_SCANCODE_DELETE},
|
||||
{ "LWIN", RDP_SCANCODE_LWIN},
|
||||
|
Loading…
Reference in New Issue
Block a user