*
* Keyboard codes for KeyPress Event
* © Ïèðîæêîâ Â.Â. 1997
*

#Define Key_F1		28
#Define Key_F2		-1
#Define Key_F3		-2
#Define Key_F4		-3
#Define Key_F5		-4
#Define Key_F6		-5
#Define Key_F7		-6
#Define Key_F8		-7
#Define Key_F9		-8
#Define Key_F10		-9
#Define Key_F11		133
#Define Key_F12		134
#Define Key_1		49
#Define Key_2		50
#Define Key_3		51
#Define Key_4		52
#Define Key_5		53
#Define Key_6		54
#Define Key_7		55
#Define Key_8		56
#Define Key_9		57
#Define Key_0		48
#Define Key_a		97
#Define Key_b		98
#Define Key_c		99
#Define Key_d		100
#Define Key_e		101
#Define Key_f		102
#Define Key_g		103
#Define Key_h		104
#Define Key_i		105
#Define Key_j		106
#Define Key_k		107
#Define Key_l		108
#Define Key_m		109
#Define Key_n		110
#Define Key_o		111
#Define Key_p		112
#Define Key_q		113
#Define Key_r		114
#Define Key_s		115
#Define Key_t		116
#Define Key_u		117
#Define Key_v		118
#Define Key_w		119
#Define Key_x		120
#Define Key_y		121
#Define Key_z		122
#Define Key_INS				22
#Define Key_HOME			1
#Define Key_DEL				7
#Define Key_END				6
#Define Key_PAGE_UP			18
#Define Key_PAGE_DOWN		3
#Define Key_UP_ARROW		5
#Define Key_DOWN_ARROW		24
#Define Key_RIGHT_ARROW		4
#Define Key_LEFT_ARROW		19
#Define Key_ESCAPE			27
#Define Key_ENTER 			13
#Define Key_BACKSPACE		127
#Define Key_TAB				9
#Define Key_SPACEBAR		32

**** Additional keys

#define Key_Alt_Up_Arrow	152
#define Key_Alt_Down_Arrow	160
#define Key_Ctrl_Tab		148
#define Key_Shift_Tab		15
#define Key_Ctrl_PgDn		30
#define Key_Ctrl_PgUp		31
#define Key_Ctrl_LeftArrow	19
#define Key_Ctrl_RightArrow	4
#Define Key_PgUp			18
#Define Key_PgDn			3

*** Modifiers

#define Key_Shift	1
#define Key_Ctrl	2
#define Key_Alt		4
#define Key_NONE	0

***** Win 32 API GetKeyState Virtual Key parameters

#define VK_LBUTTON        0x01
#define VK_RBUTTON        0x02
#define VK_CANCEL         0x03
#define VK_MBUTTON        0x04    && NOT contiguous with L & RBUTTON

#define VK_BACK           0x08
#define VK_TAB            0x09

#define VK_CLEAR          0x0C
#define VK_RETURN         0x0D

#define VK_SHIFT          0x10
#define VK_CONTROL        0x11
#define VK_MENU           0x12
#define VK_PAUSE          0x13
#define VK_CAPITAL        0x14

#define VK_ESCAPE         0x1B

#define VK_SPACE          0x20
#define VK_PRIOR          0x21
#define VK_NEXT           0x22
#define VK_END            0x23
#define VK_HOME           0x24
#define VK_LEFT           0x25
#define VK_UP             0x26
#define VK_RIGHT          0x27
#define VK_DOWN           0x28
#define VK_SELECT         0x29
#define VK_PRINT          0x2A
#define VK_EXECUTE        0x2B
#define VK_SNAPSHOT       0x2C
#define VK_INSERT         0x2D
#define VK_DELETE         0x2E
#define VK_HELP           0x2F

* VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) */
* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */

#define VK_LWIN           0x5B
#define VK_RWIN           0x5C
#define VK_APPS           0x5D

#define VK_NUMPAD0        0x60
#define VK_NUMPAD1        0x61
#define VK_NUMPAD2        0x62
#define VK_NUMPAD3        0x63
#define VK_NUMPAD4        0x64
#define VK_NUMPAD5        0x65
#define VK_NUMPAD6        0x66
#define VK_NUMPAD7        0x67
#define VK_NUMPAD8        0x68
#define VK_NUMPAD9        0x69
#define VK_MULTIPLY       0x6A
#define VK_ADD            0x6B
#define VK_SEPARATOR      0x6C
#define VK_SUBTRACT       0x6D
#define VK_DECIMAL        0x6E
#define VK_DIVIDE         0x6F
#define VK_F1             0x70
#define VK_F2             0x71
#define VK_F3             0x72
#define VK_F4             0x73
#define VK_F5             0x74
#define VK_F6             0x75
#define VK_F7             0x76
#define VK_F8             0x77
#define VK_F9             0x78
#define VK_F10            0x79
#define VK_F11            0x7A
#define VK_F12            0x7B
#define VK_F13            0x7C
#define VK_F14            0x7D
#define VK_F15            0x7E
#define VK_F16            0x7F
#define VK_F17            0x80
#define VK_F18            0x81
#define VK_F19            0x82
#define VK_F20            0x83
#define VK_F21            0x84
#define VK_F22            0x85
#define VK_F23            0x86
#define VK_F24            0x87

#define VK_NUMLOCK        0x90
#define VK_SCROLL         0x91

**
 * VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
 * Used only as parameters to GetAsyncKeyState() and GetKeyState().
 * No other API or message will distinguish left and right keys in this way.
 */

#define VK_LSHIFT         0xA0
#define VK_RSHIFT         0xA1
#define VK_LCONTROL       0xA2
#define VK_RCONTROL       0xA3
#define VK_LMENU          0xA4
#define VK_RMENU          0xA5

#define VK_PROCESSKEY     0xE5

#define VK_ATTN           0xF6
#define VK_CRSEL          0xF7
#define VK_EXSEL          0xF8
#define VK_EREOF          0xF9
#define VK_PLAY           0xFA
#define VK_ZOOM           0xFB
#define VK_NONAME         0xFC
#define VK_PA1            0xFD
#define VK_OEM_CLEAR      0xFE


