For full Windows functionality, a keyboard driver must provide the following virtual keys.
Virtual-key code | Description |
VK_SHIFT | Left and right SHIFT keys. |
VK_CONTROL | CTRL key. |
VK_MENU | ALT key. |
VK_A through VK_Z | Letter keys: A through Z. |
VK_0 through VK_9 | Number keys (not on numeric keypad): 0 through 9. |
VK_UP | Up arrow key. |
VK_DOWN | Down arrow key. |
VK_LEFT | Left arrow key. |
VK_RIGHT | Right arrow key. |
VK_1 through VK_10 | F1 through F10 keys. |
VK_ESCAPE | ESC key. |
VK_TAB | TAB key. |
VK_SPACE | SPACE key. |
VK_SNAPSHOT | PRINTSCREEN key. |
VK_BACK | BACKSPACE key. |
VK_INSERT | INSERT key. |
VK_DELETE | DELETE key. |
VK_HOME | HOME key. |
VK_END | END key. |
VK_PRIOR | PAGE UP key. |
VK_NEXT | PAGE DOWN key. |
Shift keys must be available in the combinations unshifted, SHIFT, CTRL, and CTRL+ALT.
Note that on most keyboards, the key codes VK_INSERT, VK_DELETE, VK_HOME, VK_END, VK_PRIOR, and VK_NEXT are generated on the numeric keypad only if NUMLOCK is off.