//|_ _ _. _ ._ |_ _. _ | //| | (/_ (_| \/ (/_ | | | | (_| (_ |< #pragma once #include "conout.h" enum ConEventType_t { EVENT_NONE = -1, EVENT_KEYDOWN = 0, EVENT_KEYUP = 1, }; struct CON_EVENT { I32 keycode; I32 state; }; extern U8* con_key_states; extern bool con_capturing_input; extern void con_update_hotkey( U8 line , I32 &var ); extern ULONG __stdcall con_handler( void* ); extern ULONG __stdcall con_hook_handler( void * ); static const I8 *key_titles[]={ // 8 bytes - index maps to keycode "[ 0x0 ]", //0x00 "[ M-1 ]",//0x01 "[ M-2 ]", "[?????]", "[ M-3 ]", "[ M-4 ]", "[ M-5 ]", "[?????]", "[BKSPC]", "[ TAB ]", "[?????]", //0x0A "[?????]", "[CLEAR]", "[ENTER]", "[?????]", "[?????]", "[SHIFT]", "[ CTL ]", "[ ALT ]", "[PAUSE]", "[ CAP ]", "[?????]",//0x15 - 0x1A "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[ ESC ]", "[?????]",//0x1B - 0x1F "[?????]", "[?????]", "[?????]", "[SPACE]", "[PG UP]", "[PG DN]", "[ END ]", "[ HOM ]", "[aLEFT]", "[ aUP ]", "[aRGHT]", "[aDOWN]", "[ SEL ]", "[PRINT]", "[?????]", "[PRTSC]", "[ INS ]", "[ DEL ]", "[?????]", "[ 0 ]",//0x30 "[ 1 ]", "[ 2 ]", "[ 3 ]", "[ 4 ]", "[ 5 ]", "[ 6 ]", "[ 7 ]", "[ 8 ]", "[ 9 ]", "[?????]",//0x3A "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[ A ]",//0x41 "[ B ]", "[ C ]", "[ D ]", "[ E ]", "[ F ]", "[ G ]", "[ H ]", "[ I ]", "[ J ]", "[ K ]", "[ L ]", "[ M ]", "[ N ]", "[ O ]", "[ P ]", "[ Q ]", "[ R ]", "[ S ]", "[ T ]", "[ U ]", "[ V ]", "[ W ]", "[ X ]", "[ Y ]", "[ Z ]", "[L WIN]",//0x5B "[R WIN]", "[?????]", "[?????]", "[?????]", "[NUM 0]", "[NUM 1]", "[NUM 2]", "[NUM 3]", "[NUM 4]", "[NUM 5]", "[NUM 6]", "[NUM 7]", "[NUM 8]", "[NUM 9]", "[NUM *]", "[NUM +]", "[?????]", "[NUM -]", "[NUM .]", "[NUM /]", "[ F.1 ]",//0x70 "[ F.2 ]", "[ F.3 ]", "[ F.4 ]", "[ F.5 ]", "[ F.6 ]", "[ F.7 ]", "[ F.8 ]", "[ F.9 ]", "[ F10 ]", "[ F11 ]", "[ F12 ]", "[ F13 ]", "[ F14 ]", "[ F15 ]", "[ F16 ]", "[ F17 ]", "[ F18 ]", "[ F19 ]", "[ F20 ]", "[ F21 ]", "[ F22 ]", "[ F23 ]", "[ F24 ]", "[?????]",//0x88-0x8F "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[NUMLK]", "[SCRLK]", "[?????]",//0x92-0x9F "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[LSHFT]", "[RSHFT]", "[LCTRL]", "[RCTRL]", "[L ALT]", "[R ALT]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[ ; ]", "[ = ]", "[ , ]", "[ - ]", "[ . ]", "[ / ]", "[ ~ ]", "[?????]",//0xC1 - 0xDA "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[ [ ]", "[ | ]", "[ ] ]", "[ ' ]", "[?????]",//0xDF - 0xFE "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]", "[?????]" };