📄 scvkengus1.cpp
字号:
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES.
//
/*++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
Copyright (c) 1995-1998 Microsoft Corporation
@doc EXTERNAL
@module scvkengus1.cpp |
Sample implementation of the keyboard platform dependent scan code to
Virtual Key mapping for keyboard driver.
Exports ScanCodeToVKey for the PDD to use to map scan codes to virtual
keys. A version of this will be needed for every physical/virtual key
configuration.
*/
#include <windows.h>
#include <keybddr.h>
#ifdef OSV_SP
#include <winuserm.h>
#endif
#define PROFILE 1
#ifdef PROFILE
extern "C" void ProfileStart(DWORD,DWORD);
extern "C" void ProfileStop(void);
#endif
#define ScanCodeTableLast 0xBf
#ifdef BSP_NOFASTTAPKP
#ifdef OSV_SP
const UINT8 ScanCodeToVKeyTable[ScanCodeTableLast+1] =
{
VK_T1, // Scan Code 0x0 // Bulverde KeyPad '1'
VK_T2, // Scan Code 0x1 // Bulverde KeyPad '2'
VK_T3, // Scan Code 0x2 // Bulverde KeyPad '3'
'2', // Scan Code 0x3
VK_UP, // Scan Code 0x4
'4', // Scan Code 0x5
VK_DOWN, // Scan Code 0x6
'6', // Scan Code 0x7
VK_LEFT, // Scan Code 0x8
'8', // Scan Code 0x9
VK_TEND, // Scan Code 0xA // Bulverde Keypad Rotary key scroll up
VK_TBACK, // Scan Code 0xB // Bulverde keypad Rotary key scroll down
VK_TTALK, // Scan Code 0xC // Bulverde keypad Rotary key Action.
VK_EQUAL, // Scan Code 0xD
'3', // Scan Code 0xE
VK_TAB, // Scan Code 0xF
VK_T4, // Scan Code 0x10 // Bulverde KeyPad '4'
VK_T5, // Scan Code 0x11 // Bulverde KeyPad '5'
VK_T6, // Scan Code 0x12 // Bulverde KeyPad '6'
'R', // Scan Code 0x13
'T', // Scan Code 0x14
'Y', // Scan Code 0x15
'U', // Scan Code 0x16
'I', // Scan Code 0x17
'O', // Scan Code 0x18
'P', // Scan Code 0x19
VK_LBRACKET, // Scan Code 0x1A
VK_RBRACKET, // Scan Code 0x1B
VK_RETURN, // Scan Code 0x1C
VK_LCONTROL, // Scan Code 0x1D
'A', // Scan Code 0x1E
'S', // Scan Code 0x1F
VK_T7, // Scan Code 0x20 // Bulverde KeyPad '7'
VK_T8, // Scan Code 0x21 // Bulverde KeyPad '8'
VK_T9, // Scan Code 0x22 // Bulverde KeyPad '9'
'H', // Scan Code 0x23
'6', // Scan Code 0x24
'K', // Scan Code 0x25
'5', // Scan Code 0x26
VK_SEMICOLON, // Scan Code 0x27
'4', // Scan Code 0x28
VK_BACKQUOTE, // Scan Code 0x29
VK_F2, // Scan Code 0x2A
VK_BACKSLASH, // Scan Code 0x2B
'C', // Scan Code 0x2C
'X', // Scan Code 0x2D
'9', // Scan Code 0x2E
'V', // Scan Code 0x2F
VK_TSTAR, // Scan Code 0x30 // Bulverde KeyPad '*'
VK_T0, // Scan Code 0x31 // Bulverde KeyPad '0'
VK_TPOUND, // Scan Code 0x32 // Bulverde KeyPad '#'
VK_COMMA, // Scan Code 0x33
VK_PERIOD, // Scan Code 0x34
VK_SLASH, // Scan Code 0x35
VK_RSHIFT, // Scan Code 0x36
VK_MULTIPLY, // Scan Code 0x37
VK_LMENU, // Scan Code 0x38
VK_SPACE, // Scan Code 0x39
VK_CAPITAL, // Scan Code 0x3A
VK_F1, // Scan Code 0x3B
VK_F2, // Scan Code 0x3C
VK_F3, // Scan Code 0x3D
VK_F4, // Scan Code 0x3E
VK_F5, // Scan Code 0x3F
VK_TSOFT1, // Scan Code 0x40 // Bvd Keypad '1' remapped to F1
VK_TUP, // Scan Code 0x41 // Bvd Keypad '2' remapped to up arrow
VK_TSOFT2, // Scan Code 0x42 // Bvd Keypad '3' remapped to F2
VK_F9, // Scan Code 0x43
VK_OFF, // Scan Code 0x44
VK_NUMLOCK, // Scan Code 0x45
'0', // Scan Code 0x46
VK_NUMPAD7, // Scan Code 0x47
VK_MULTIPLY, // Scan Code 0x48
VK_NUMPAD9, // Scan Code 0x49
VK_TVOLUMEUP, // Scan Code 0x4A // Bvd Keypad SCROLL UP remapped to VOLUME UP
VK_TVOLUMEDOWN, // Scan Code 0x4B // Bvd Keypad SCROLL DOWN remapped to VOLUME DOWN
VK_TACTION, // Scan Code 0x4C // Bvd Keypad ACTION remapped to ACTION for now , change to POWER later
VK_NUMPAD6, // Scan Code 0x4D
VK_ADD, // Scan Code 0x4E
VK_NUMPAD1, // Scan Code 0x4F
VK_TLEFT, // Scan Code 0x50 // Bvd Keypad '4' remapped to left arrow
VK_TACTION, // Scan Code 0x51 // Bvd Keypad '5' remapped to action
VK_TRIGHT, // Scan Code 0x52 // Bvd Keypad '6' remapped to right arrow
VK_DECIMAL, // Scan Code 0x53
VK_SNAPSHOT, // Scan Code 0x54
0, // Scan Code 0x55
0, // Scan Code 0x56
VK_F11, // Scan Code 0x57
VK_F12, // Scan Code 0x58
0, // Scan Code 0x59
0, // Scan Code 0x5A
VK_LWIN, // Scan Code 0x5B
VK_RWIN, // Scan Code 0x5C
VK_APPS, // Scan Code 0x5D
0, // Scan Code 0x5E
0, // Scan Code 0x5F
VK_THOME, // Scan Code 0x60 // Bvd Keypad '7' remapped to HOME
VK_TDOWN, // Scan Code 0x61 // Bvd Keypad '8' remapped to DOWN
VK_TBACK, // Scan Code 0x62 // Bvd Keypad '9' remapped to BACK
VK_HELP, // Scan Code 0x63
VK_F13, // Scan Code 0x64
VK_F14, // Scan Code 0x65
VK_F15, // Scan Code 0x66
VK_F16, // Scan Code 0x67
VK_F17, // Scan Code 0x68
VK_F18, // Scan Code 0x69
VK_F19, // Scan Code 0x6A
VK_F20, // Scan Code 0x6B
VK_F21, // Scan Code 0x6C
VK_F22, // Scan Code 0x6D
VK_F23, // Scan Code 0x6E
0, // Scan Code 0x6F
VK_TTALK, // Scan Code 0x70 // Bvd Keypad '*' remapped to TALK
VK_T0, // Scan Code 0x71 // Bvd Keypad '0' remapped to HOME
VK_TEND, // Scan Code 0x72 // Bvd Keypad '#' remapped to END
0, // Scan Code 0x73
0, // Scan Code 0x74
0, // Scan Code 0x75
VK_F24, // Scan Code 0x76
0, // Scan Code 0x77
0, // Scan Code 0x78
0, // Scan Code 0x79
0, // Scan Code 0x7A
0, // Scan Code 0x7B
0, // Scan Code 0x7C
0, // Scan Code 0x7D
0, // Scan Code 0x7E
0, // Scan Code 0x7F
};
#else // else #ifdef OSV_SP
const UINT8 ScanCodeToVKeyTable[ScanCodeTableLast+1] =
{
'1', // Scan Code 0x0 // Bulverde KeyPad '1'
'2', // Scan Code 0x1 // Bulverde KeyPad '2'
'3', // Scan Code 0x2 // Bulverde KeyPad '3'
'2', // Scan Code 0x3
VK_UP, // Scan Code 0x4
'4', // Scan Code 0x5
VK_DOWN, // Scan Code 0x6
'6', // Scan Code 0x7
VK_LEFT, // Scan Code 0x8
'8', // Scan Code 0x9
VK_UP, // Scan Code 0xA // Bulverde Keypad Rotary key scroll up
VK_DOWN, // Scan Code 0xB // Bulverde keypad Rotary key scroll down
VK_RETURN, // Scan Code 0xC // Bulverde keypad Rotary key Action.
VK_EQUAL, // Scan Code 0xD
'3', // Scan Code 0xE
VK_TAB, // Scan Code 0xF
'4', // Scan Code 0x10 // Bulverde KeyPad '4'
'5', // Scan Code 0x11 // Bulverde KeyPad '5'
'6', // Scan Code 0x12 // Bulverde KeyPad '6'
'R', // Scan Code 0x13
'T', // Scan Code 0x14
'Y', // Scan Code 0x15
'U', // Scan Code 0x16
'I', // Scan Code 0x17
'O', // Scan Code 0x18
'P', // Scan Code 0x19
VK_LBRACKET, // Scan Code 0x1A
VK_RBRACKET, // Scan Code 0x1B
VK_RETURN, // Scan Code 0x1C
VK_LCONTROL, // Scan Code 0x1D
'A', // Scan Code 0x1E
'S', // Scan Code 0x1F
'7', // Scan Code 0x20 // Bulverde KeyPad '7'
'8', // Scan Code 0x21 // Bulverde KeyPad '8'
'9', // Scan Code 0x22 // Bulverde KeyPad '9'
'H', // Scan Code 0x23
'6', // Scan Code 0x24
'K', // Scan Code 0x25
'5', // Scan Code 0x26
VK_SEMICOLON, // Scan Code 0x27
'4', // Scan Code 0x28
VK_BACKQUOTE, // Scan Code 0x29
VK_F2, // Scan Code 0x2A
VK_BACKSLASH, // Scan Code 0x2B
'C', // Scan Code 0x2C
'X', // Scan Code 0x2D
'9', // Scan Code 0x2E
'V', // Scan Code 0x2F
VK_MULTIPLY, // Scan Code 0x30 // Bulverde KeyPad '*'
'0', // Scan Code 0x31 // Bulverde KeyPad '0'
'A', // Scan Code 0x32 // Bulverde KeyPad '#'
VK_COMMA, // Scan Code 0x33
VK_PERIOD, // Scan Code 0x34
VK_SLASH, // Scan Code 0x35
VK_RSHIFT, // Scan Code 0x36
VK_MULTIPLY, // Scan Code 0x37
VK_LMENU, // Scan Code 0x38
VK_SPACE, // Scan Code 0x39
VK_CAPITAL, // Scan Code 0x3A
VK_F1, // Scan Code 0x3B
VK_F2, // Scan Code 0x3C
VK_F3, // Scan Code 0x3D
VK_F4, // Scan Code 0x3E
VK_F5, // Scan Code 0x3F
VK_LWIN, // Scan Code 0x40 // For Merlin remapped to Windows key
VK_UP, // Scan Code 0x41 // For Merlin remapped to UP key
VK_TAB, // Scan Code 0x42 // For Merlin remapped to Tab key
VK_F9, // Scan Code 0x43
VK_OFF, // Scan Code 0x44
VK_NUMLOCK, // Scan Code 0x45
'0', // Scan Code 0x46
VK_NUMPAD7, // Scan Code 0x47
VK_MULTIPLY, // Scan Code 0x48
VK_NUMPAD9, // Scan Code 0x49
VK_UP, // Scan Code 0x4A // For Merlin remapped to UP key
VK_DOWN, // Scan Code 0x4B // For Merlin remapped to DOWN key
VK_ESCAPE, // Scan Code 0x4C // For Merlin remapped to Return key
VK_NUMPAD6, // Scan Code 0x4D
VK_ADD, // Scan Code 0x4E
VK_NUMPAD1, // Scan Code 0x4F
VK_LEFT, // Scan Code 0x50 // For Merlin remapped to Backspace key
VK_RETURN, // Scan Code 0x51 // For Merlin remapped to Enter key
VK_RIGHT, // Scan Code 0x52 // For Merlin remapped to Right Arrow key
VK_DECIMAL, // Scan Code 0x53
VK_SNAPSHOT, // Scan Code 0x54
0, // Scan Code 0x55
0, // Scan Code 0x56
VK_F11, // Scan Code 0x57
VK_F12, // Scan Code 0x58
0, // Scan Code 0x59
0, // Scan Code 0x5A
VK_LWIN, // Scan Code 0x5B
VK_RWIN, // Scan Code 0x5C
VK_APPS, // Scan Code 0x5D
0, // Scan Code 0x5E
0, // Scan Code 0x5F
VK_BACK, // Scan Code 0x60 // For Merlin remapped to Back space key
VK_DOWN, // Scan Code 0x61 // For Merlin remapped to Down Arrow key
VK_SPACE, // Scan Code 0x62 // For Merlin remapped to Space key
VK_HELP, // Scan Code 0x63
VK_F13, // Scan Code 0x64
VK_F14, // Scan Code 0x65
VK_F15, // Scan Code 0x66
VK_F16, // Scan Code 0x67
VK_F17, // Scan Code 0x68
VK_F18, // Scan Code 0x69
VK_F19, // Scan Code 0x6A
VK_F20, // Scan Code 0x6B
VK_F21, // Scan Code 0x6C
VK_F22, // Scan Code 0x6D
VK_F23, // Scan Code 0x6E
0, // Scan Code 0x6F
VK_HOME, // Scan Code 0x70 // For Merlin remapped to ALT key
VK_LCONTROL, // Scan Code 0x71 // For Merlin remapped to Control key
VK_END, // Scan Code 0x72 // For Merlin remapped to F4 key
0, // Scan Code 0x73
0, // Scan Code 0x74
0, // Scan Code 0x75
VK_F24, // Scan Code 0x76
0, // Scan Code 0x77
0, // Scan Code 0x78
0, // Scan Code 0x79
0, // Scan Code 0x7A
0, // Scan Code 0x7B
0, // Scan Code 0x7C
0, // Scan Code 0x7D
0, // Scan Code 0x7E
0, // Scan Code 0x7F
};
#endif // end #ifdef OSV_SP
#else // else #ifdef BSP_NOFASTTAPKP
// fast tap key pad scan codes
#ifndef OSV_SP
const UINT8 ScanCodeToVKeyTable[ScanCodeTableLast+1] =
{
'A', // Scan Code 0x0 // Bulverde KeyPad '1'
'G', // Scan Code 0x1 // Bulverde KeyPad '2'
'M', // Scan Code 0x2 // Bulverde KeyPad '3'
'S', // Scan Code 0x3
VK_PERIOD, // Scan Code 0x4
VK_HOME, // Scan Code 0x5
VK_UP, // Scan Code 0x6
0, // Scan Code 0x7
0, // Scan Code 0x8
0, // Scan Code 0x9
VK_UP, // Scan Code 0xA // Bulverde Keypad Rotary key scroll up
VK_DOWN, // Scan Code 0xB // Bulverde keypad Rotary key scroll down
VK_RETURN, // Scan Code 0xC // Bulverde keypad Rotary key Action.
0, // Scan Code 0xD
0, // Scan Code 0xE
0, // Scan Code 0xF
'B', // Scan Code 0x10 // Bulverde KeyPad '4'
'H', // Scan Code 0x11 // Bulverde KeyPad '5'
'N', // Scan Code 0x12 // Bulverde KeyPad '6'
'T', // Scan Code 0x13
VK_NUMPAD2, // Scan Code 0x14
VK_CAPITAL, // Scan Code 0x15
VK_DOWN, // Scan Code 0x16
0, // Scan Code 0x17
0, // Scan Code 0x18
0, // Scan Code 0x19
0, // Scan Code 0x1A
0, // Scan Code 0x1B
0, // Scan Code 0x1C
0, // Scan Code 0x1D
0, // Scan Code 0x1E
0, // Scan Code 0x1F
'C', // Scan Code 0x20 // Bulverde KeyPad '7'
'I', // Scan Code 0x21 // Bulverde KeyPad '8'
'O', // Scan Code 0x22 // Bulverde KeyPad '9'
'U', // Scan Code 0x23
'Y', // Scan Code 0x24
VK_SPACE, // Scan Code 0x25
VK_LEFT, // Scan Code 0x26
0, // Scan Code 0x27
0, // Scan Code 0x28
0, // Scan Code 0x29
0, // Scan Code 0x2A
0, // Scan Code 0x2B
0, // Scan Code 0x2C
0, // Scan Code 0x2D
0, // Scan Code 0x2E
0, // Scan Code 0x2F
'D', // Scan Code 0x30 // Bulverde KeyPad '*'
'J', // Scan Code 0x31 // Bulverde KeyPad '0'
'P', // Scan Code 0x32 // Bulverde KeyPad '#'
'V', // Scan Code 0x33
'Z', // Scan Code 0x34
VK_SPACE, // Scan Code 0x35
VK_RIGHT, // Scan Code 0x36
0, // Scan Code 0x37
0, // Scan Code 0x38
0, // Scan Code 0x39
0, // Scan Code 0x3A
0, // Scan Code 0x3B
0, // Scan Code 0x3C
0, // Scan Code 0x3D
0, // Scan Code 0x3E
0, // Scan Code 0x3F
'E', // Scan Code 0x40 // Bvd Keypad '1' remapped to F1
'K', // Scan Code 0x41 // Bvd Keypad '2' remapped to up arrow
'Q', // Scan Code 0x42 // Bvd Keypad '3' remapped to F2
'W', // Scan Code 0x43
VK_SLASH, // Scan Code 0x44
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -