Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

232 lines
5.4 KiB

/*[
*
* SoftPC-AT revision 3.0
*
* Title : Definitions for MS-Windows keyboard driver functions.
*
* Description : This file contains the definitions for msw_keybd.c.
*
* Author : Jerry Sexton
*
* Notes :
*
]*/
/* SccsID[]="@(#)msw_keybd.h 1.2 08/10/92 Copyright Insignia Solutions Ltd."; */
/*
=========================================================================
Macros.
=========================================================================
*/
/* Null pointers. */
#define TINY_NULL ((TINY *) 0)
/* General definitions. */
#define NO_NUMLOCK 0
#define NUMLOCK 1
/* Virtual keys. */
#define VK_LBUTTON 0x01
#define VK_RBUTTON 0x02
#define VK_CANCEL 0x03
/* 4..7 undefined */
#define VK_BACK 0x08
#define VK_TAB 0x09
/* 0x0a .. 0x0b undefined */
#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
/* 0x15..0x1a */
#define VK_ESCAPE 0x1b
/* 0x1c..0x1f */
#define VK_SPACE 0x20
#define VK_PRIOR 0x21 /* page up */
#define VK_NEXT 0x22 /* page down */
#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 /* Printscreen key.. */
#define VK_INSERT 0x2d
#define VK_DELETE 0x2e
#define VK_HELP 0x2f
#define VK_0 0x30
#define VK_1 0x31
#define VK_2 0x32
#define VK_3 0x33
#define VK_4 0x34
#define VK_5 0x35
#define VK_6 0x36
#define VK_7 0x37
#define VK_8 0x38
#define VK_9 0x39
/* 0x40 */
#define VK_A 0x41
#define VK_B 0x42
#define VK_C 0x43
#define VK_D 0x44
#define VK_E 0x45
#define VK_F 0x46
#define VK_G 0x47
#define VK_H 0x48
#define VK_I 0x49
#define VK_J 0x4a
#define VK_K 0x4b
#define VK_L 0x4c
#define VK_M 0x4d
#define VK_N 0x4e
#define VK_O 0x4f
#define VK_P 0x50
#define VK_Q 0x51
#define VK_R 0x52
#define VK_S 0x53
#define VK_T 0x54
#define VK_U 0x55
#define VK_V 0x56
#define VK_W 0x57
#define VK_X 0x58
#define VK_Y 0x59
#define VK_Z 0x5a
/* 0x5b..0x5f */
#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_SEPARATER 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_OEM_F17 0x80
#define VK_OEM_F18 0x81
#define VK_OEM_F19 0x82
#define VK_OEM_F20 0x83
#define VK_OEM_F21 0x84
#define VK_OEM_F22 0x85
#define VK_OEM_F23 0x86
#define VK_OEM_F24 0x87
/* 0x88..0x8f unassigned */
#define VK_NUMLOCK 0x90
#define VK_OEM_SCROLL 0x91 /* ScrollLock */
/* 0x92..0xb9 unassigned */
#define VK_OEM_1 0xba /* ';:' for US */
#define VK_OEM_PLUS 0xbb /* '+' any country */
#define VK_OEM_COMMA 0xbc /* ',' any country */
#define VK_OEM_MINUS 0xbd /* '-' any country */
#define VK_OEM_PERIOD 0xbe /* '.' any country */
#define VK_OEM_2 0xbf /* '/?' for US */
#define VK_OEM_3 0xc0 /* '`~' for US */
/* 0xc1..0xda unassigned */
#define VK_OEM_4 0xdb /* '[{' for US */
#define VK_OEM_5 0xdc /* '\|' for US */
#define VK_OEM_6 0xdd /* ']}' for US */
#define VK_OEM_7 0xde /* ''"' for US */
#define VK_OEM_8 0xdf
/* codes various extended or enhanced keyboards */
#define VK_F17 0xe0 /* F17 key on ICO, win 2.xx */
#define VK_F18 0xe1 /* F18 key on ICO, win 2.xx */
#define VK_OEM_102 0xe2 /* "<>" or "\|" on RT 102-key kbd. */
#define VK_ICO_HELP 0xe3 /* Help key on ICO */
#define VK_ICO_00 0xe4 /* 00 key on ICO */
/* E5h unassigned */
#define VK_ICO_CLEAR 0xe6 */
/* E7h .. E8h unassigned */
/* Nokia/Ericsson definitions */
#define VK_ERICSSON_BASE 0xe8
#define VK_OEM_RESET (VK_ERICSSON_BASE + 1) /* e9 */
#define VK_OEM_JUMP (VK_ERICSSON_BASE + 2) /* ea */
#define VK_OEM_PA1 (VK_ERICSSON_BASE + 3) /* eb */
#define VK_OEM_PA2 (VK_ERICSSON_BASE + 4) /* ec */
#define VK_OEM_PA3 (VK_ERICSSON_BASE + 5) /* ed */
#define VK_OEM_WSCTRL (VK_ERICSSON_BASE + 6) /* ee */
#define VK_OEM_CUSEL (VK_ERICSSON_BASE + 7) /* ef */
#define VK_OEM_ATTN (VK_ERICSSON_BASE + 8) /* f0 */
#define VK_OEM_FINNISH (VK_ERICSSON_BASE + 9) /* f1 */
#define VK_OEM_COPY (VK_ERICSSON_BASE + 10) /* f2 */
#define VK_OEM_AUTO (VK_ERICSSON_BASE + 11) /* f3 */
#define VK_OEM_ENLW (VK_ERICSSON_BASE + 12) /* f4 */
#define VK_OEM_BACKTAB (VK_ERICSSON_BASE + 13) /* f5 */
/* F6h..FEh unassigned. */
/* Defines for inquireData structure. */
#define BEGINRANGE1 255
#define ENDRANGE1 254
#define BEGINRANGE2 255
#define ENDRANGE2 254
#define TO_ASCII_STATE_SIZE 4
/*
=========================================================================
Keyboard driver structure definitions.
=========================================================================
*/
typedef struct tagKBINFO
{
UTINY Begin_First_Range;
UTINY End_First_Range;
UTINY Begin_Second_Range;
UTINY End_Second_Range;
SHORT StateSize; /* size of ToAscii state block. */
} KBINFO;
#define INTEL_KBINFO_SIZE 6 /* Size of KBINFO structure in INTEL. */