struct hhb_vkey{ char* name; uint8_t vkey; char* description; }; const hhb_vkey hhb_vkey_list[] = { { "VK_LBUTTON", 0x01, "Left mouse button" }, { "VK_RBUTTON", 0x02, "Right mouse button" }, { "VK_CANCEL", 0x03, "Control-break processing" }, { "VK_MBUTTON", 0x04, "Middle mouse button (three-button mouse)" }, { "VK_XBUTTON1", 0x05, "X1 mouse button" }, { "VK_XBUTTON2", 0x06, "X2 mouse button" }, { "-", 0x07, "Undefined" }, { "VK_BACK", 0x08, "BACKSPACE key" }, { "VK_TAB", 0x09, "TAB key" }, //{ "-", 0x0A - 0B, "Reserved" }, { "VK_CLEAR", 0x0C, "CLEAR key" }, { "VK_RETURN", 0x0D, "ENTER key" }, //{ "-", 0x0E - 0F, "Undefined" }, { "VK_SHIFT", 0x10, "SHIFT key" }, { "VK_CONTROL", 0x11, "CTRL key" }, { "VK_MENU", 0x12, "ALT key" }, { "VK_PAUSE", 0x13, "PAUSE key" }, { "VK_CAPITAL", 0x14, "CAPS LOCK key" }, { "VK_KANA", 0x15, "IME Kana mode" }, { "VK_HANGUEL", 0x15, "IME Hanguel mode (maintained for compatibility; use VK_HANGUL)" }, { "VK_HANGUL", 0x15, "IME Hangul mode" }, //{ "-", 0x16, "Undefined" }, { "VK_JUNJA", 0x17, "IME Junja mode" }, { "VK_FINAL", 0x18, "IME final mode" }, { "VK_HANJA", 0x19, "IME Hanja mode" }, { "VK_KANJI", 0x19, "IME Kanji mode" }, //{ "-", 0x1A, "Undefined" }, { "VK_ESCAPE", 0x1B, "ESC key" }, { "VK_CONVERT", 0x1C, "IME convert" }, { "VK_NONCONVERT", 0x1D, "IME nonconvert" }, { "VK_ACCEPT", 0x1E, "IME accept" }, { "VK_MODECHANGE", 0x1F, "IME mode change request" }, { "VK_SPACE", 0x20, "SPACEBAR" }, { "VK_PRIOR", 0x21, "PAGE UP key" }, { "VK_NEXT", 0x22, "PAGE DOWN key" }, { "VK_END", 0x23, "END key" }, { "VK_HOME", 0x24, "HOME key" }, { "VK_LEFT", 0x25, "LEFT ARROW key" }, { "VK_UP", 0x26, "UP ARROW key" }, { "VK_RIGHT", 0x27, "RIGHT ARROW key" }, { "VK_DOWN", 0x28, "DOWN ARROW key" }, { "VK_SELECT", 0x29, "SELECT key" }, { "VK_PRINT", 0x2A, "PRINT key" }, { "VK_EXECUTE", 0x2B, "EXECUTE key" }, { "VK_SNAPSHOT", 0x2C, "PRINT SCREEN key" }, { "VK_INSERT", 0x2D, "INS key" }, { "VK_DELETE", 0x2E, "DEL key" }, { "VK_HELP", 0x2F, "HELP key" }, { "0 key", 0x30, "0 key" }, { "1 key", 0x31, "1 key" }, { "2 key", 0x32, "2 key" }, { "3 key", 0x33, "3 key" }, { "4 key", 0x34, "4 key" }, { "5 key", 0x35, "5 key" }, { "6 key", 0x36, "6 key" }, { "7 key", 0x37, "7 key" }, { "8 key", 0x38, "8 key" }, { "9 key", 0x39, "9 key" }, //{ "undefined", 0x3A - 40, "undefined" }, { "A key", 0x41, "A key" }, { "B key", 0x42, "B key" }, { "C key", 0x43, "C key" }, { "D key", 0x44, "D key" }, { "E key", 0x45, "E key" }, { "F key", 0x46, "F key" }, { "G key", 0x47, "G key" }, { "H key", 0x48, "H key" }, { "I key", 0x49, "I key" }, { "J key", 0x4A, "J key" }, { "K key", 0x4B, "K key" }, { "L key", 0x4C, "L key" }, { "M key", 0x4D, "M key" }, { "N key", 0x4E, "N key" }, { "O key", 0x4F, "O key" }, { "P key", 0x50, "P key" }, { "Q key", 0x51, "Q key" }, { "R key", 0x52, "R key" }, { "S key", 0x53, "S key" }, { "T key", 0x54, "T key" }, { "U key", 0x55, "U key" }, { "V key", 0x56, "V key" }, { "W key", 0x57, "W key" }, { "X key", 0x58, "X key" }, { "Y key", 0x59, "Y key" }, { "Z key", 0x5A, "Z key" }, { "VK_LWIN", 0x5B, "Left Windows key (Natural keyboard)" }, { "VK_RWIN", 0x5C, "Right Windows key (Natural keyboard)" }, { "VK_APPS", 0x5D, "Applications key (Natural keyboard)" }, //{ "-", 0x5E, "Reserved" }, { "VK_SLEEP", 0x5F, "Computer Sleep key" }, { "VK_NUMPAD0", 0x60, "Numeric keypad 0 key" }, { "VK_NUMPAD1", 0x61, "Numeric keypad 1 key" }, { "VK_NUMPAD2", 0x62, "Numeric keypad 2 key" }, { "VK_NUMPAD3", 0x63, "Numeric keypad 3 key" }, { "VK_NUMPAD4", 0x64, "Numeric keypad 4 key" }, { "VK_NUMPAD5", 0x65, "Numeric keypad 5 key" }, { "VK_NUMPAD6", 0x66, "Numeric keypad 6 key" }, { "VK_NUMPAD7", 0x67, "Numeric keypad 7 key" }, { "VK_NUMPAD8", 0x68, "Numeric keypad 8 key" }, { "VK_NUMPAD9", 0x69, "Numeric keypad 9 key" }, { "VK_MULTIPLY", 0x6A, "Multiply key" }, { "VK_ADD", 0x6B, "Add key" }, { "VK_SEPARATOR", 0x6C, "Separator key" }, { "VK_SUBTRACT", 0x6D, "Subtract key" }, { "VK_DECIMAL", 0x6E, "Decimal key" }, { "VK_DIVIDE", 0x6F, "Divide key" }, { "VK_F1", 0x70, "F1 key" }, { "VK_F2", 0x71, "F2 key" }, { "VK_F3", 0x72, "F3 key" }, { "VK_F4", 0x73, "F4 key" }, { "VK_F5", 0x74, "F5 key" }, { "VK_F6", 0x75, "F6 key" }, { "VK_F7", 0x76, "F7 key" }, { "VK_F8", 0x77, "F8 key" }, { "VK_F9", 0x78, "F9 key" }, { "VK_F10", 0x79, "F10 key" }, { "VK_F11", 0x7A, "F11 key" }, { "VK_F12", 0x7B, "F12 key" }, { "VK_F13", 0x7C, "F13 key" }, { "VK_F14", 0x7D, "F14 key" }, { "VK_F15", 0x7E, "F15 key" }, { "VK_F16", 0x7F, "F16 key" }, { "VK_F17", 0x80, "F17 key" }, { "VK_F18", 0x81, "F18 key" }, { "VK_F19", 0x82, "F19 key" }, { "VK_F20", 0x83, "F20 key" }, { "VK_F21", 0x84, "F21 key" }, { "VK_F22", 0x85, "F22 key" }, { "VK_F23", 0x86, "F23 key" }, { "VK_F24", 0x87, "F24 key" }, //{ "-", 0x88 - 8F, "Unassigned" }, { "VK_NUMLOCK", 0x90, "NUM LOCK key" }, { "VK_SCROLL", 0x91, "SCROLL LOCK key" }, //{ "-", 0x88 - 8F, "Unassigned" }, { "VK_NUMLOCK", 0x90, "NUM LOCK key" }, { "VK_SCROLL", 0x91, "SCROLL LOCK key" }, //{"-", 0x92-96,"OEM specific"}, //{ "-", 0x97 - 9F, "Unassigned" }, { "VK_LSHIFT", 0xA0, "Left SHIFT key" }, { "VK_RSHIFT", 0xA1, "Right SHIFT key" }, { "VK_LCONTROL", 0xA2, "Left CONTROL key" }, { "VK_RCONTROL", 0xA3, "Right CONTROL key" }, { "VK_LMENU", 0xA4, "Left MENU key" }, { "VK_RMENU", 0xA5, "Right MENU key" }, { "VK_BROWSER_BACK", 0xA6, "Browser Back key" }, { "VK_BROWSER_FORWARD", 0xA7, "Browser Forward key" }, { "VK_BROWSER_REFRESH", 0xA8, "Browser Refresh key" }, { "VK_BROWSER_STOP", 0xA9, "Browser Stop key" }, { "VK_BROWSER_SEARCH", 0xAA, "Browser Search key" }, { "VK_BROWSER_FAVORITES", 0xAB, "Browser Favorites key" }, { "VK_BROWSER_HOME", 0xAC, "Browser Start and Home key" }, { "VK_VOLUME_MUTE", 0xAD, "Volume Mute key" }, { "VK_VOLUME_DOWN", 0xAE, "Volume Down key" }, { "VK_VOLUME_UP", 0xAF, "Volume Up key" }, { "VK_MEDIA_NEXT_TRACK", 0xB0, "Next Track key" }, { "VK_MEDIA_PREV_TRACK", 0xB1, "Previous Track key" }, { "VK_MEDIA_STOP", 0xB2, "Stop Media key" }, { "VK_MEDIA_PLAY_PAUSE", 0xB3, "Play/Pause Media key" }, { "VK_LAUNCH_MAIL", 0xB4, "Start Mail key" }, { "VK_LAUNCH_MEDIA_SELECT", 0xB5, "Select Media key" }, { "VK_LAUNCH_APP1", 0xB6, "Start Application 1 key" }, { "VK_LAUNCH_APP2", 0xB7, "Start Application 2 key" }, //{ "-", 0xB8 - B9, "Reserved" }, { "VK_OEM_1", 0xBA, "Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the \';:\' key VK_OEM_PLUS" }, {"VK_OEM_PLUS", 0xBB, "For any country/region, the \'+\' key"}, { "VK_OEM_COMMA", 0xBC, "For any country/region, the \',\' key" }, { "VK_OEM_MINUS", 0xBD, "For any country/region, the \'-\' key" }, { "VK_OEM_PERIOD", 0xBE, "For any country/region, the \'.\' key" }, { "VK_OEM_2", 0xBF, "Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the \'/?\' key" }, { "VK_OEM_3", 0xC0, "Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the \'`~\' key" }, //{ "-", 0xC1 - D7, "Reserved" }, //{ "-", 0xD8 - DA, "Unassigned" }, { "VK_OEM_4", 0xDB, "Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the \'[{\' key" }, { "VK_OEM_5", 0xDC, "Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the \'\\|\' key" }, { "VK_OEM_6", 0xDD, "Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the \']}\' key" }, { "VK_OEM_7", 0xDE, "Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the \'single-quote/double-quote\' key" }, { "VK_OEM_8", 0xDF, "Used for miscellaneous characters; it can vary by keyboard." }, //{ "-", 0xE0, "Reserved" }, //{ "-", 0xE1, "OEM specific" }, { "VK_OEM_102", 0xE2, "Either the angle bracket key or the backslash key on the RT 102-key keyboard" }, //{ "-", 0xE3 - E4, "OEM specific" }, { "VK_PROCESSKEY", 0xE5, "IME PROCESS key" }, //{ "-", 0xE6, "OEM specific" }, { "VK_PACKET", 0xE7, "Used to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP" }, //{ "-", 0xE8, "Unassigned" }, // {"-",0xE6,"OEM specific"}, {"VK_PACKET",0xE7,"Used to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP"}, // {"-",0xE8,"Unassigned"}, //{ "-", 0xE9 - F5, "OEM specific" }, { "VK_ATTN", 0xF6, "Attn key" }, { "VK_CRSEL", 0xF7, "CrSel key" }, { "VK_EXSEL", 0xF8, "ExSel key" }, { "VK_EREOF", 0xF9, "Erase EOF key" }, { "VK_PLAY", 0xFA, "Play key" }, { "VK_ZOOM", 0xFB, "Zoom key" }, { "VK_NONAME", 0xFC, "Reserved" }, { "VK_PA1", 0xFD, "PA1 key" }, { "VK_OEM_CLEAR", 0xFE, "Clear key" } };