You are on page 1of 11

Appendix A.

Virtual-key Codes
The following table lists all the virtual-key codes used by the Microsoft Windows operating system.
Instead of using numerical values, a programmer can use symbolic names to indicate a specific button of
the mouse or a key of the keyboard.

Mouse Buttons:

Symbolic constant name Value (hexadecimal) Meaning


VK_LBUTTON 01 Left mouse button
VK_MBUTTON 04 Middle mouse button (three-button mouse)
VK_RBUTTON 02 Right mouse button

Editing Keys (These keys are most commonly used in a text editor):

Symbolic constant name Value (hexadecimal) Meaning


VK_BACK 08 BACKSPACE key
VK_TAB 09 TAB key
VK_RETURN 0D ENTER key
VK_SHIFT 10 SHIFT key
VK_CONTROL 11 CTRL key
VK_CAPITAL 14 CAPS LOCK key
VK_ESCAPE 1B ESC key
VK_SPACE 20 SPACEBAR
VK_PRIOR 21 PAGE UP key
VK_NEXT 22 PAGE DOWN key
VK_END 23 END key
VK_HOME 24 HOME key
VK_LEFT 25 LEFT ARROW key
VK_UP 26 UP ARROW key
VK_RIGHT 27 RIGHT ARROW key
VK_DOWN 28 DOWN ARROW key
VK_INSERT 2D INS key
VK_DELETE 2E DEL key

Number & Character Keys:

Symbolic constant name Value (hexadecimal) Meaning


VK_0 30 0 key
VK_1 31 1 key
VK_2 32 2 key
VK_3 33 3 key
VK_4 34 4 key
VK_5 35 5 key
VK_6 36 6 key
VK_7 37 7 key
VK_8 38 8 key
VK_9 39 9 key
VK_A 41 A key
VK_B 42 B key
VK_C 43 C key
VK_D 44 D key
VK_E 45 E key
VK_F 46 F key
VK_G 47 G key
VK_H 48 H key
VK_I 49 I key
VK_J 4A J key
VK_K 4B K key
VK_L 4C L key
VK_M 4D M key
VK_N 4E N key
VK_O 4F O key
VK_P 50 P key
VK_Q 51 Q key
VK_R 52 R key
VK_S 53 S key
VK_T 54 T key
VK_U 55 U key
VK_V 56 V key
VK_W 57 W key
VK_X 58 X key
VK_Y 59 Y key
VK_Z 5A Z key

Numeric Pad Keys:

Symbolic constant name Value (hexadecimal) Meaning


VK_NUMPAD0 60 Numeric keypad 0 key
VK_NUMPAD1 61 Numeric keypad 1 key
VK_NUMPAD2 62 Numeric keypad 2 key
VK_NUMPAD3 63 Numeric keypad 3 key
VK_NUMPAD4 64 Numeric keypad 4 key
VK_NUMPAD5 65 Numeric keypad 5 key
VK_NUMPAD6 66 Numeric keypad 6 key
VK_NUMPAD7 67 Numeric keypad 7 key
VK_NUMPAD8 68 Numeric keypad 8 key
VK_NUMPAD9 69 Numeric keypad 9 key
VK_NUMLOCK 90 NUM LOCK key

Arithmetic Keys:

Symbolic constant name Value (hexadecimal) Meaning


VK_MULTIPLY 6A Multiply key
VK_ADD 6B Add key
VK_SUBTRACT 6D Subtract key
VK_DIVIDE 6F Divide key
VK_SEPARATOR 6C Separator key
VK_DECIMAL 6E Decimal key
Function Keys:

Symbolic constant name Value (hexadecimal) Meaning


VK_F1 70 F1 key
VK_F2 71 F2 key
VK_F3 72 F3 key
VK_F4 73 F4 key
VK_F5 74 F5 key
VK_F6 75 F6 key
VK_F7 76 F7 key
VK_F8 77 F8 key
VK_F9 78 F9 key
VK_F10 79 F10 key
VK_F11 7A F11 key
VK_F12 7B F12 key
VK_F13 7C F13 key
VK_F14 7D F14 key
VK_F15 7E F15 key
VK_F16 7F F16 key
VK_F17 80 F17 key
VK_F18 81 F18 key
VK_F19 82 F19 key
VK_F20 83 F20 key
VK_F21 84 F21 key
VK_F22 85 F22 key
VK_F23 86 F23 key
VK_F24 87 F24 key

Windows Keys (Microsoft Natural Keyboard Only):

Symbolic constant name Value (hexadecimal) Meaning


VK_LWIN 5B Left Windows key
VK_RWIN 5C Right Windows key
VK_APPS 5D Applications key

Other Special Keys:

Symbolic constant name Value (hexadecimal) Meaning


VK_CANCEL 03 Control-break processing
VK_CLEAR 0C CLEAR key
VK_MENU 12 ALT key
VK_PAUSE 13 PAUSE key
15-19 Reserved for Kanji systems
1C-1F Reserved for Kanji systems
VK_SELECT 29 SELECT key
2A Original equipment manufacturer (OEM) specific
VK_EXECUTE 2B EXECUTE key
VK_SNAPSHOT 2C PRINT SCREEN key for Windows 3.0 and later
VK_HELP 2F HELP key
VK_SCROLL 91 SCROLL LOCK key
BA-C0 OEM specific
DB-E4 OEM specific
E6 OEM specific
E9-F5 OEM specific
VK_ATTN F6 Attn key
VK_CRSEL F7 CrSel key
VK_EXSEL F8 ExSel key
VK_EREOF F9 Erase EOF key
VK_PLAY FA Play key
VK_ZOOM FB Zoom key
VK_NONAME FC Reserved for future use
VK_PA1 FD PA1 key
VK_OEM_CLEAR FE Clear key

Currently undefined codes: 05-07, 0A-0B, 0E-0F, 1A, 3A-40, 5E-5F, 88-8F, 92-B9, C1-DA, E5, E7-E8.
Appendix B. Ternary Raster Operations

Appendix B. Ternary Raster Operations


For details on how to obtain an index, see section 10.10.

Index Raster Operation Code


00 00000042
01 00010289
02 00020C89
03 000300AA
04 00040C88
05 000500A9
06 00060865
07 000702C5
08 00080F08
09 00090245
0A 000A0329
0B 000B0B2A
0C 000C0324
0D 000D0B25
0E 000E08A5
0F 000F0001
10 00100C85
11 001100A6
12 00120868
13 001302C8
14 00140869D
15 001502C9
16 00165CCA
17 00171D54
18 00180D59
19 00191CC8
1A 001A06C5
1B 001B0768
1C 001C06CA
1D 001D0766
1E 001E01A5
1F 001F0385
20 00200F09
21 00210248
22 00220326
23 00230B24
24 00240D55
25 00251CC5
26 002606C8
27 00271868
Appendix B. Ternary Raster Operations

28 00280369
29 002916CA
2A 002A0CC9
2B 002B1D58
2C 002C0784
2D 002D060A
2E 002E064A
2F 002F0E2A
30 0030032A
31 00310B28
32 00320688
33 00330008
34 003406C4
35 00351864
36 003601A8
37 00370388
38 0038078A
39 00390604
3A 003A0644
3B 003B0E24
3C 003C004A
3D 003D18A4
3E 003E1B24
3F 003F00EA
40 00400F0A
41 00410249
42 00420D5D
43 00431CC4
44 00440328
45 00450B29
46 004606C6
47 0047076A
48 00480368
49 004916C5
4A 004A0789
4B 004B0605
4C 004C0CC8
4D 004D1954
4E 004E0645
4F 004F0E25
50 00500325
51 00510B26
52 005206C9
53 00530764
54 005408A9
55 00550009
56 005601A9
57 00570389
58 00580785
59 00590609
5A 005A0049
5B 005B18A9
Appendix B. Ternary Raster Operations

5C 005C0649
5D 005D0E29
5E 005E1B29
5F 005F00E9
60 00600365
61 006116C6
62 00620786
63 00630608
64 00640788
65 00650606
66 00660046
67 006718A8
68 006858A6
69 00690145
6A 006A01E9
6B 006B178A
6C 006C01E8
6D 006D1785
6E 006E1E28
6F 006F0C65
70 00700CC5
71 00711D5C
72 00720648
73 00730E28
74 00740646
75 00750E26
76 00761B28
77 007700E6
78 007801E5
79 00791786
7A 007A1E29
7B 007B0C68
7C 007C1E24
7D 007D0C69
7E 007E0955
7F 007F03C9
80 008003E9
81 00810975
82 00820C49
83 00831E04
84 00840C48
85 00851E05
86 008617A6
87 008701C5
88 008800C6
89 00891B08
8A 008A0E06
8B 008B0666
8C 008C0E08
8D 008D0668
8E 008E1D7C
8F 008F0CE5
Appendix B. Ternary Raster Operations

90 00900C45
91 00911E08
92 009217A9
93 009301C4
94 009417AA
95 009501C9
96 00960169
97 0097588A
98 00981888
99 00990066
9A 009A0709
9B 009B07A8
9C 009C0704
9D 009D07A6
9E 009E16E6
9F 009F0345
A0 00A000C9
A1 00A11B05
A2 00A20E09
A3 00A30669
A4 00A41885
A5 00A50065
A6 00A60706
A7 00A707A5
A8 00A803A9
A9 00A90189
AA 00AA0029
AB 00AB0889
AC 00AC0744
AD 00AD06E9
AE 00AE0B06
AF 00AF0229
B0 00B00E05
B1 00B10665
B2 00B21974
B3 00B30CE8
B4 00B4070A
B5 00B507A9
B6 00B616E9
B7 00B70348
B8 00B8074A
B9 00B906E6
BA 00BA0B09
BB 00BB0226
BC 00BC1CE4
BD 00BD0D7D
BE 00BE0269
BF 00BF08C9
C0 00C000CA
C1 00C11B04
C2 00C21884
C3 00C3006A
Appendix B. Ternary Raster Operations

C4 00C40E04
C5 00C50664
C6 00C60708
C7 00C707AA
C8 00C803A8
C9 00C90184
CA 00CA0749
CB 00CB06E4
CC 00CC0020
CD 00CD0888
CE 00CE0B08
CF 00CF0224
D0 00D00E0A
D1 00D1066A
D2 00D20705
D3 00D307A4
D4 00D41D78
D5 00D50CE9
D6 00D616EA
D7 00D70349
D8 00D80745
D9 00D906E8
DA 00DA1CE9
DB 00DB0D75
DC 00DC0B04
DD 00DD0228
DE 00DE0268
DF 00DF08C8
E0 00E003A5
E1 00E10185
E2 00E20746
E3 00E306EA
E4 00E40748
E5 00E506E5
E6 00E61CE8
E7 00E70D79
E8 00E81D74
E9 00E95CE6
EA 00EA02E9
EB 00EB0849
EC 00EC02E8
ED 00ED0848
EE 00EE0086
EF 00EF0A08
F0 00F00021
F1 00F10885
F2 00F20B05
F3 00F3022A
F4 00F40B0A
F5 00F50225
F6 00F60265
F7 00F708C5
Appendix B. Ternary Raster Operations

F8 00F802E5
F9 00F90845
FA 00FA0089
FB 00FB0A09
FC 00FC008A
FD 00FD0A0A
FE 00FE02A9
FF 00FF0062
Index

You might also like