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

📄 keybd.hpp

📁 Intel PXA270 Wince5.0 BSP
💻 HPP
📖 第 1 页 / 共 2 页
字号:
/*++
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-2000 Microsoft Corporation.  All rights reserved.

Module Name:  

keybd.hpp

Abstract:  
    USB Human Interface Device (HID) class driver sample.

Functions:

Notes: 

--*/
#ifndef _KEYBD_HPP_
#define _KEYBD_HPP_


// Define keyboard states (as bits in the LED soft register) that affect
// how we translate usage codes to VK codes. These must currently map identically
// to the corresponding LED indicator bits. This mapping makes some assumptions
// about the keyboard LED output report, but most (all?) keyboards use the report
// descriptor listed in the HID spec keyboard sample.
#define KBSTATE_NUMLOCK 0x01
#define KBSTATE_CAPLOCK 0x02
#define KBSTATE_SCRLOCK 0x04

// These usage ids correspond precisely to functions that affect the
// LED states defined above. See the HID Usage Tables document (v1.1).
#define USAGE_NUMLOCK 0x53
#define USAGE_CAPLOCK 0x39
#define USAGE_SCRLOCK 0x47

void
KeyboardEvent(
    UINT8 vkCode,
    BOOL bDown);

void
HandleArrayKeys(
	PUCHAR pBuffer);

void
HandleChordKeys(
	UINT8 data);

#define SF_KEY_DOWN   0x0000   // Keyboard button pressed code for WIN32
#define SF_KEY_UP     0x0002   // Keyboard button pressed code for WIN32

const UINT8 gcRolloverValue		= 0x01;

const UINT8 gcKeybdChordLCtl	= 0x01;
const UINT8 gcKeybdChordLShift	= 0x02;
const UINT8 gcKeybdChardLAlt	= 0x04;
const UINT8 gcKeybdChardLWin	= 0x08;
const UINT8 gcKeybdChordRCtl	= 0x10;
const UINT8 gcKeybdChordRShift	= 0x20;
const UINT8 gcKeybdChardRAlt	= 0x40;
const UINT8 gcKeybdChardRWin	= 0x80;

const UINT8 gcMinUsageCode		= 0x04;
const UINT8 gcMaxUsageCode		= 0x65;

const UINT8 ChordValueToVkCodeTable[] =
{
    VK_LCONTROL,
    VK_LSHIFT,
    VK_LMENU,
    VK_LWIN,
    VK_RCONTROL,
    VK_RSHIFT,
    VK_RMENU,
    VK_RWIN
};    

//
// two tables for numlock and non-numlock
//

const UINT8 UsageIndexToNumLockVkCodeTable[] =
{
    0,  // Scan Code 0x0
    0,  // Scan Code 0x1
    0,  // Scan Code 0x2
    0,  // Scan Code 0x3
    'A',  // Scan Code 0x4
    'B',  // Scan Code 0x5
    'C',  // Scan Code 0x6
    'D',  // Scan Code 0x7
    'E',  // Scan Code 0x8
    'F',  // Scan Code 0x9
    'G',  // Scan Code 0xA
    'H',  // Scan Code 0xB
    'I',  // Scan Code 0xC
    'J',  // Scan Code 0xD
    'K',  // Scan Code 0xE
    'L',  // Scan Code 0xF
    'M',  // Scan Code 0x10
    'N',  // Scan Code 0x11
    'O',  // Scan Code 0x12
    'P',  // Scan Code 0x13
    'Q',  // Scan Code 0x14
    'R',  // Scan Code 0x15
    'S',  // Scan Code 0x16
    'T',  // Scan Code 0x17
    'U',  // Scan Code 0x18
    'V',  // Scan Code 0x19
    'W',  // Scan Code 0x1A
    'X',  // Scan Code 0x1B
    'Y',  // Scan Code 0x1C
    'Z',  // Scan Code 0x1D
    '1',  // Scan Code 0x1E
    '2',  // Scan Code 0x1F
    '3',  // Scan Code 0x20
    '4',  // Scan Code 0x21
    '5',  // Scan Code 0x22
    '6',  // Scan Code 0x23
    '7',  // Scan Code 0x24
    '8',  // Scan Code 0x25
    '9',  // Scan Code 0x26
    '0',  // Scan Code 0x27
    VK_RETURN,  // Scan Code 0x28
    VK_ESCAPE,  // Scan Code 0x29
    VK_BACK,  // Scan Code 0x2A
    VK_TAB,  // Scan Code 0x2B
    VK_SPACE,  // Scan Code 0x2C
    VK_HYPHEN,  // Scan Code 0x2D
    VK_EQUAL,  // Scan Code 0x2E
    VK_LBRACKET,  // Scan Code 0x2F
    VK_RBRACKET,  // Scan Code 0x30
    VK_BACKSLASH,  // Scan Code 0x31
    VK_BACKQUOTE,  // Scan Code 0x32
    VK_SEMICOLON,  // Scan Code 0x33
    VK_APOSTROPHE,  // Scan Code 0x34
    VK_BACKQUOTE,  // Scan Code 0x35
    VK_COMMA,  // Scan Code 0x36
    VK_PERIOD,  // Scan Code 0x37
    VK_SLASH,  // Scan Code 0x38
    VK_CAPITAL,  // Scan Code 0x39
    VK_F1,  // Scan Code 0x3A
    VK_F2,  // Scan Code 0x3B
    VK_F3,  // Scan Code 0x3C
    VK_F4,  // Scan Code 0x3D
    VK_F5,  // Scan Code 0x3E
    VK_F6,  // Scan Code 0x3F
    VK_F7,  // Scan Code 0x40
    VK_F8,  // Scan Code 0x41
    VK_F9,  // Scan Code 0x42
    VK_F10,  // Scan Code 0x43                                          
    VK_F11,  // Scan Code 0x44
    VK_F12,  // Scan Code 0x45
    VK_SNAPSHOT,  // Scan Code 0x46
    VK_SCROLL,  // Scan Code 0x47
    VK_PAUSE,  // Scan Code 0x48
    VK_INSERT,  // Scan Code 0x49
    VK_HOME,  // Scan Code 0x4A
    VK_PRIOR,  // Scan Code 0x4B  PAGE UP
    VK_DELETE,  // Scan Code 0x4C
    VK_END,  // Scan Code 0x4D
    VK_NEXT,  // Scan Code 0x4E   PAGE DOWN
    VK_RIGHT,  // Scan Code 0x4F
    VK_LEFT,  // Scan Code 0x50
    VK_DOWN,  // Scan Code 0x51
    VK_UP,  // Scan Code 0x52
    VK_NUMLOCK,  // Scan Code 0x53
    VK_DIVIDE,    // Scan Code 0x54
    VK_MULTIPLY,  // Scan Code 0x55
    VK_SUBTRACT,  // Scan Code 0x56
    VK_ADD,  // Scan Code 0x57
    VK_RETURN,  // Scan Code 0x58 - keypad ENTER, distinct from keybd ENTER
    VK_NUMPAD1,  // Scan Code 0x59                  
    VK_NUMPAD2,  // Scan Code 0x5A
    VK_NUMPAD3,  // Scan Code 0x5B
    VK_NUMPAD4,  // Scan Code 0x5C
    VK_NUMPAD5,  // Scan Code 0x5D
    VK_NUMPAD6,  // Scan Code 0x5E
    VK_NUMPAD7,  // Scan Code 0x5F
    VK_NUMPAD8,  // Scan Code 0x60
    VK_NUMPAD9,  // Scan Code 0x61
    VK_NUMPAD0,  // Scan Code 0x62
    VK_DECIMAL,  // Scan Code 0x63
    0,  // Scan Code 0x64 - '\' and '|' for non-US kbds only
    VK_APPS  // Scan Code 0x65
//    0,  // Scan Code 0x66
//    0,  // Scan Code 0x67
//    0,  // Scan Code 0x68
//    0,  // Scan Code 0x69
//    0,  // Scan Code 0x6A
//    0,  // Scan Code 0x6B
//    0,  // Scan Code 0x6C
//    0,  // Scan Code 0x6D
//    0,  // Scan Code 0x6E
//    0,  // Scan Code 0x6F
//    0,  // Scan Code 0x70
//    0,  // Scan Code 0x71
//    0,  // Scan Code 0x72
//    0,  // Scan Code 0x73
//    0,  // Scan Code 0x74
//    0,  // Scan Code 0x75
//    0,  // 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
//    0,  // Scan Code 0x80
//    0,  // Scan Code 0x81
//    0,  // Scan Code 0x82
//    0,  // Scan Code 0x83
//    0,  // 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    
};    

const UINT8 UsageIndexToVkCodeTable[] =
{
    0,  // Scan Code 0x0
    0,  // Scan Code 0x1
    0,  // Scan Code 0x2
    0,  // Scan Code 0x3
    'A',  // Scan Code 0x4
    'B',  // Scan Code 0x5
    'C',  // Scan Code 0x6
    'D',  // Scan Code 0x7
    'E',  // Scan Code 0x8
    'F',  // Scan Code 0x9
    'G',  // Scan Code 0xA
    'H',  // Scan Code 0xB
    'I',  // Scan Code 0xC
    'J',  // Scan Code 0xD
    'K',  // Scan Code 0xE
    'L',  // Scan Code 0xF
    'M',  // Scan Code 0x10
    'N',  // Scan Code 0x11
    'O',  // Scan Code 0x12
    'P',  // Scan Code 0x13
    'Q',  // Scan Code 0x14
    'R',  // Scan Code 0x15
    'S',  // Scan Code 0x16
    'T',  // Scan Code 0x17
    'U',  // Scan Code 0x18
    'V',  // Scan Code 0x19
    'W',  // Scan Code 0x1A
    'X',  // Scan Code 0x1B
    'Y',  // Scan Code 0x1C
    'Z',  // Scan Code 0x1D
    '1',  // Scan Code 0x1E
    '2',  // Scan Code 0x1F
    '3',  // Scan Code 0x20
    '4',  // Scan Code 0x21
    '5',  // Scan Code 0x22
    '6',  // Scan Code 0x23
    '7',  // Scan Code 0x24
    '8',  // Scan Code 0x25
    '9',  // Scan Code 0x26
    '0',  // Scan Code 0x27
    VK_RETURN,  // Scan Code 0x28
    VK_ESCAPE,  // Scan Code 0x29
    VK_BACK,  // Scan Code 0x2A
    VK_TAB,  // Scan Code 0x2B
    VK_SPACE,  // Scan Code 0x2C
    VK_HYPHEN,  // Scan Code 0x2D
    VK_EQUAL,  // Scan Code 0x2E
    VK_LBRACKET,  // Scan Code 0x2F
    VK_RBRACKET,  // Scan Code 0x30
    VK_BACKSLASH,  // Scan Code 0x31
    VK_BACKQUOTE,  // Scan Code 0x32

⌨️ 快捷键说明

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