⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scvkatmsjpn1.cpp

📁 三星2410的BSP开发包
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
#include <windows.h>
#include <ceddk.h>
#include <keybddr.h>

#define PROFILE 1
#ifdef PROFILE
#include <profiler.h>
#endif

#define COUNT_SCAN_CODES    256



static const UINT8  ScanCodeToVKeyTable[COUNT_SCAN_CODES] =
{
	0,  // Scan Code 0x0
	VK_F9,  // Scan Code 0x1
	0,  // Scan Code 0x2
	VK_F5,  // Scan Code 0x3
	VK_F3,  // Scan Code 0x4
	VK_F1,  // Scan Code 0x5
	VK_F2,  // Scan Code 0x6
	VK_F12,  // Scan Code 0x7
	0,  // Scan Code 0x8
	VK_F10,  // Scan Code 0x9
	VK_F8,  // Scan Code 0xA
	VK_F6,  // Scan Code 0xB
	VK_F4,  // Scan Code 0xC
	VK_TAB,  // Scan Code 0xD
	VK_BACKQUOTE,  // Scan Code 0xE
	0,  // Scan Code 0xF
	0,  // Scan Code 0x10
	VK_LMENU,  // Scan Code 0x11
	VK_LSHIFT,  // Scan Code 0x12
	0,  // Scan Code 0x13
	VK_LCONTROL,  // Scan Code 0x14
	'Q',  // Scan Code 0x15
	'1',  // Scan Code 0x16
	0,  // Scan Code 0x17
	0,  // Scan Code 0x18
	0,  // Scan Code 0x19
	'Z',  // Scan Code 0x1A
	'S',  // Scan Code 0x1B
	'A',  // Scan Code 0x1C
	'W',  // Scan Code 0x1D
	'2',  // Scan Code 0x1E
	0,  // Scan Code 0x1F
	0,  // Scan Code 0x20
	'C',  // Scan Code 0x21
	'X',  // Scan Code 0x22
	'D',  // Scan Code 0x23
	'E',  // Scan Code 0x24
	'4',  // Scan Code 0x25
	'3',  // Scan Code 0x26
	0,  // Scan Code 0x27
	0,  // Scan Code 0x28
	VK_SPACE,  // Scan Code 0x29
	'V',  // Scan Code 0x2A
	'F',  // Scan Code 0x2B
	'T',  // Scan Code 0x2C
	'R',  // Scan Code 0x2D
	'5',  // Scan Code 0x2E
	0,  // Scan Code 0x2F
	0,  // Scan Code 0x30
	'N',  // Scan Code 0x31
	'B',  // Scan Code 0x32
	'H',  // Scan Code 0x33
	'G',  // Scan Code 0x34
	'Y',  // Scan Code 0x35
	'6',  // Scan Code 0x36
	0,  // Scan Code 0x37
	0,  // Scan Code 0x38
	0,  // Scan Code 0x39
	'M',  // Scan Code 0x3A
	'J',  // Scan Code 0x3B
	'U',  // Scan Code 0x3C
	'7',  // Scan Code 0x3D
	'8',  // Scan Code 0x3E
	0,  // Scan Code 0x3F
	0,  // Scan Code 0x40
	VK_COMMA,  // Scan Code 0x41
	'K',  // Scan Code 0x42
	'I',  // Scan Code 0x43
	'O',  // Scan Code 0x44
	'0',  // Scan Code 0x45
	'9',  // Scan Code 0x46
	0,  // Scan Code 0x47
	0,  // Scan Code 0x48
	VK_PERIOD,  // Scan Code 0x49
	VK_SLASH,  // Scan Code 0x4A
	'L',  // Scan Code 0x4B
	VK_SEMICOLON,  // Scan Code 0x4C
	'P',  // Scan Code 0x4D
	VK_HYPHEN,  // Scan Code 0x4E
	0,  // Scan Code 0x4F
	0,  // Scan Code 0x50
	0,  // Scan Code 0x51
	VK_APOSTROPHE,  // Scan Code 0x52
	0,  // Scan Code 0x53
	VK_LBRACKET,  // Scan Code 0x54
	VK_EQUAL,  // Scan Code 0x55
	0,  // Scan Code 0x56
	0,  // Scan Code 0x57
	VK_CAPITAL,  // Scan Code 0x58
	VK_RSHIFT,  // Scan Code 0x59
	VK_RETURN,  // Scan Code 0x5A
	VK_RBRACKET,  // Scan Code 0x5B
	0,  // Scan Code 0x5C
	VK_BACKSLASH,  // Scan Code 0x5D
	0,  // Scan Code 0x5E
	0,  // Scan Code 0x5F
	0,  // Scan Code 0x60
	0,  // Scan Code 0x61
	0,  // Scan Code 0x62
	0,  // Scan Code 0x63
	0,  // Scan Code 0x64
	0,  // Scan Code 0x65
	VK_BACK,  // Scan Code 0x66
	0,  // Scan Code 0x67
	0,  // Scan Code 0x68
	VK_NUMPAD1,  // Scan Code 0x69
	0,  // Scan Code 0x6A
	VK_NUMPAD4,  // Scan Code 0x6B
	VK_NUMPAD7,  // Scan Code 0x6C
	0,  // Scan Code 0x6D
	0,  // Scan Code 0x6E
	0,  // Scan Code 0x6F
	VK_NUMPAD0,  // Scan Code 0x70
	VK_DECIMAL,  // Scan Code 0x71
	VK_NUMPAD2,  // Scan Code 0x72
	VK_NUMPAD5,  // Scan Code 0x73
	VK_NUMPAD6,  // Scan Code 0x74
	VK_NUMPAD8,  // Scan Code 0x75
	VK_ESCAPE,  // Scan Code 0x76
	VK_NUMLOCK,  // Scan Code 0x77
	VK_F11,  // Scan Code 0x78
	VK_ADD,  // Scan Code 0x79
	VK_NUMPAD3,  // Scan Code 0x7A
	VK_SUBTRACT,  // Scan Code 0x7B
	VK_MULTIPLY,  // Scan Code 0x7C
	VK_NUMPAD9,  // Scan Code 0x7D
	VK_SCROLL,  // Scan Code 0x7E
	0,  // Scan Code 0x7F
	0,  // Scan Code 0x80
	0,  // Scan Code 0x81
	0,  // Scan Code 0x82
	VK_F7,  // Scan Code 0x83
	VK_SNAPSHOT, // Scan Code 0x84
	0,  // Scan Code 0x85
	0,  // Scan Code 0x86
	0,  // Scan Code 0x87
	0,  // Scan Code 0x88
	0,  // Scan Code 0x89
	0,  // Scan Code 0x8A
	0,  // Scan Code 0x8B
	0,  // Scan Code 0x8C
	0,  // Scan Code 0x8D
	0,  // Scan Code 0x8E
	0,  // Scan Code 0x8F
	0,  // Scan Code 0x90
	0,  // Scan Code 0x91
	0,  // Scan Code 0x92
	0,  // Scan Code 0x93
	0,  // Scan Code 0x94
	0,  // Scan Code 0x95
	0,  // Scan Code 0x96
	0,  // Scan Code 0x97
	0,  // Scan Code 0x98
	0,  // Scan Code 0x99
	0,  // Scan Code 0x9A
	0,  // Scan Code 0x9B
	0,  // Scan Code 0x9C
	0,  // Scan Code 0x9D
	0,  // Scan Code 0x9E
	0,  // Scan Code 0x9F
	0,  // Scan Code 0xA0
	0,  // Scan Code 0xA1
	0,  // Scan Code 0xA2
	0,  // Scan Code 0xA3
	0,  // Scan Code 0xA4
	0,  // Scan Code 0xA5
	0,  // Scan Code 0xA6
	0,  // Scan Code 0xA7
	0,  // Scan Code 0xA8
	0,  // Scan Code 0xA9
	0,  // Scan Code 0xAA
	0,  // Scan Code 0xAB
	0,  // Scan Code 0xAC
	0,  // Scan Code 0xAD
	0,  // Scan Code 0xAE
	0,  // Scan Code 0xAF
	0,  // Scan Code 0xB0
	0,  // Scan Code 0xB1
	0,  // Scan Code 0xB2
	0,  // Scan Code 0xB3
	0,  // Scan Code 0xB4
	0,  // Scan Code 0xB5
	0,  // Scan Code 0xB6
	0,  // Scan Code 0xB7
	0,  // Scan Code 0xB8
	0,  // Scan Code 0xB9
	0,  // Scan Code 0xBA
	0,  // Scan Code 0xBB
	0,  // Scan Code 0xBC
	0,  // Scan Code 0xBD
	0,  // Scan Code 0xBE
	0,  // Scan Code 0xBF
	0,  // Scan Code 0xC0
	0,  // Scan Code 0xC1
	0,  // Scan Code 0xC2
	0,  // Scan Code 0xC3
	0,  // Scan Code 0xC4
	0,  // Scan Code 0xC5
	0,  // Scan Code 0xC6
	0,  // Scan Code 0xC7
	0,  // Scan Code 0xC8
	0,  // Scan Code 0xC9
	0,  // Scan Code 0xCA
	0,  // Scan Code 0xCB
	0,  // Scan Code 0xCC
	0,  // Scan Code 0xCD
	0,  // Scan Code 0xCE
	0,  // Scan Code 0xCF
	0,  // Scan Code 0xD0
	0,  // Scan Code 0xD1
	0,  // Scan Code 0xD2
	0,  // Scan Code 0xD3
	0,  // Scan Code 0xD4
	0,  // Scan Code 0xD5
	0,  // Scan Code 0xD6
	0,  // Scan Code 0xD7
	0,  // Scan Code 0xD8
	0,  // Scan Code 0xD9
	0,  // Scan Code 0xDA
	0,  // Scan Code 0xDB
	0,  // Scan Code 0xDC
	0,  // Scan Code 0xDD
	0,  // Scan Code 0xDE
	0,  // Scan Code 0xDF
	0,  // Scan Code 0xE0
	0,  // Scan Code 0xE1
	0,  // Scan Code 0xE2
	0,  // Scan Code 0xE3
	0,  // Scan Code 0xE4
	0,  // Scan Code 0xE5
	0,  // Scan Code 0xE6
	0,  // Scan Code 0xE7
	0,  // Scan Code 0xE8
	0,  // Scan Code 0xE9
	0,  // Scan Code 0xEA
	0,  // Scan Code 0xEB
	0,  // Scan Code 0xEC
	0,  // Scan Code 0xED
	0,  // Scan Code 0xEE
	0,  // Scan Code 0xEF
	0,  // Scan Code 0xF0
	0,  // Scan Code 0xF1
	0,  // Scan Code 0xF2
	0,  // Scan Code 0xF3
	0,  // Scan Code 0xF4
	0,  // Scan Code 0xF5
	0,  // Scan Code 0xF6
	0,  // Scan Code 0xF7
	0,  // Scan Code 0xF8
	0,  // Scan Code 0xF9
	0,  // Scan Code 0xFA
	0,  // Scan Code 0xFB
	0,  // Scan Code 0xFC
	0,  // Scan Code 0xFD
	0,  // Scan Code 0xFE
	0   // Scan Code 0xFF
	};


static const UINT8 ScanCodeE0ToVKeyTable[] =
{
	0,  // Scan Code 0xE040
	0,  // Scan Code 0xE041
	0,  // Scan Code 0xE042
	0,  // Scan Code 0xE043
	0,  // Scan Code 0xE044
	0,  // Scan Code 0xE045
	0,  // Scan Code 0xE046
	0,  // Scan Code 0xE047
	0,  // Scan Code 0xE048
	0,  // Scan Code 0xE049
	VK_DIVIDE,  // Scan Code 0xE04A
	0,  // Scan Code 0xE04B
	0,  // Scan Code 0xE04C
	0,  // Scan Code 0xE04D
	0,  // Scan Code 0xE04E
	0,  // Scan Code 0xE04F
	0,  // Scan Code 0xE050
	0,  // Scan Code 0xE051
	0,  // Scan Code 0xE052
	0,  // Scan Code 0xE053
	0,  // Scan Code 0xE054
	0,  // Scan Code 0xE055
	0,  // Scan Code 0xE056
	0,  // Scan Code 0xE057
	0,  // Scan Code 0xE058
	0,  // Scan Code 0xE059
	VK_RETURN,  // Scan Code 0xE05A
	0,  // Scan Code 0xE05B
	0,  // Scan Code 0xE05C
	0,  // Scan Code 0xE05D
	0,  // Scan Code 0xE05E
	0,  // Scan Code 0xE05F
	0,  // Scan Code 0xE060
	0,  // Scan Code 0xE061
	0,  // Scan Code 0xE062
	0,  // Scan Code 0xE063
	0,  // Scan Code 0xE064
	0,  // Scan Code 0xE065
	0,  // Scan Code 0xE066
	0,  // Scan Code 0xE067
	0,  // Scan Code 0xE068
	VK_END,  // Scan Code 0xE069
	0,  // Scan Code 0xE06A
	VK_LEFT,  // Scan Code 0xE06B
	VK_HOME,  // Scan Code 0xE06C
	0,  // Scan Code 0xE06D
	0,  // Scan Code 0xE06E
	0,  // Scan Code 0xE06F
	VK_INSERT,  // Scan Code 0xE070
	VK_DELETE,  // Scan Code 0xE071
	VK_DOWN,  // Scan Code 0xE072
	0,  // Scan Code 0xE073
	VK_RIGHT,  // Scan Code 0xE074
	VK_UP,  // Scan Code 0xE075
	0,  // Scan Code 0xE076
	0,  // Scan Code 0xE077
	0,  // Scan Code 0xE078
	0,  // Scan Code 0xE079
	VK_NEXT,  // Scan Code 0xE07A
	0,  // Scan Code 0xE07B
	0,  // Scan Code 0xE07C
	VK_PRIOR,  // Scan Code 0xE07D
	0,  // Scan Code 0xE07E
	0   // Scan Code 0xE07F
	};



/*++

ScanCodeToVKey:

Map a scan code to a virtual key.

--*/
UINT32
ScanCodeToVKeyEx(
	UINT32			ScanCode,
	KEY_STATE_FLAGS	KeyStateFlags,
	UINT32			VKeyBuf[16],
	UINT32			ScanCodeBuf[16],
	KEY_STATE_FLAGS	KeyStateFlagsBuf[16]
	)
{
	UINT32	nKeys = 0;
	UINT32	vkey = 0;

#ifdef PROFILE
	if (ScanCode == /* 77 VK_F8 */ 0x0A && KeyStateFlags == KeyStateDownFlag)
		ProfileStart(200, PROFILE_OBJCALL);
	if (ScanCode == /* 78 VK_F9 */ 0x01 && KeyStateFlags == KeyStateDownFlag)
		ProfileStart(200, PROFILE_BUFFER);
	if (ScanCode == /* 79 VK_F10 */ 0x09 && KeyStateFlags == KeyStateDownFlag)
		ProfileStart(200, PROFILE_KCALL);
	if (ScanCode == /* 7A VK_F11 */ 0x78 && KeyStateFlags == KeyStateDownFlag)
		ProfileStart(1000, 0);
	if (ScanCode == /* 7B VK_F12 */ 0x07 && KeyStateFlags == KeyStateDownFlag)
		ProfileStop();
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -