Blame winpr/libwinpr/input/scancode.c

Packit 1fb8d4
/**
Packit 1fb8d4
 * WinPR: Windows Portable Runtime
Packit 1fb8d4
 * Keyboard Input
Packit 1fb8d4
 *
Packit 1fb8d4
 * Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
Packit 1fb8d4
 *
Packit 1fb8d4
 * Licensed under the Apache License, Version 2.0 (the "License");
Packit 1fb8d4
 * you may not use this file except in compliance with the License.
Packit 1fb8d4
 * You may obtain a copy of the License at
Packit 1fb8d4
 *
Packit 1fb8d4
 *     http://www.apache.org/licenses/LICENSE-2.0
Packit 1fb8d4
 *
Packit 1fb8d4
 * Unless required by applicable law or agreed to in writing, software
Packit 1fb8d4
 * distributed under the License is distributed on an "AS IS" BASIS,
Packit 1fb8d4
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit 1fb8d4
 * See the License for the specific language governing permissions and
Packit 1fb8d4
 * limitations under the License.
Packit 1fb8d4
 */
Packit 1fb8d4
Packit 1fb8d4
#ifdef HAVE_CONFIG_H
Packit 1fb8d4
#include "config.h"
Packit 1fb8d4
#endif
Packit 1fb8d4
Packit 1fb8d4
#include <winpr/crt.h>
Packit 1fb8d4
Packit 1fb8d4
#include <winpr/input.h>
Packit 1fb8d4
Packit 1fb8d4
/**
Packit 1fb8d4
 * Virtual Scan Codes
Packit 1fb8d4
 */
Packit 1fb8d4
Packit 1fb8d4
/**
Packit 1fb8d4
 * Keyboard Type 4
Packit 1fb8d4
 */
Packit 1fb8d4
Packit 1fb8d4
static DWORD KBD4T[128] =
Packit 1fb8d4
{
Packit 1fb8d4
	KBD4_T00,
Packit 1fb8d4
	KBD4_T01,
Packit 1fb8d4
	KBD4_T02,
Packit 1fb8d4
	KBD4_T03,
Packit 1fb8d4
	KBD4_T04,
Packit 1fb8d4
	KBD4_T05,
Packit 1fb8d4
	KBD4_T06,
Packit 1fb8d4
	KBD4_T07,
Packit 1fb8d4
	KBD4_T08,
Packit 1fb8d4
	KBD4_T09,
Packit 1fb8d4
	KBD4_T0A,
Packit 1fb8d4
	KBD4_T0B,
Packit 1fb8d4
	KBD4_T0C,
Packit 1fb8d4
	KBD4_T0D,
Packit 1fb8d4
	KBD4_T0E,
Packit 1fb8d4
	KBD4_T0F,
Packit 1fb8d4
	KBD4_T10,
Packit 1fb8d4
	KBD4_T11,
Packit 1fb8d4
	KBD4_T12,
Packit 1fb8d4
	KBD4_T13,
Packit 1fb8d4
	KBD4_T14,
Packit 1fb8d4
	KBD4_T15,
Packit 1fb8d4
	KBD4_T16,
Packit 1fb8d4
	KBD4_T17,
Packit 1fb8d4
	KBD4_T18,
Packit 1fb8d4
	KBD4_T19,
Packit 1fb8d4
	KBD4_T1A,
Packit 1fb8d4
	KBD4_T1B,
Packit 1fb8d4
	KBD4_T1C,
Packit 1fb8d4
	KBD4_T1D,
Packit 1fb8d4
	KBD4_T1E,
Packit 1fb8d4
	KBD4_T1F,
Packit 1fb8d4
	KBD4_T20,
Packit 1fb8d4
	KBD4_T21,
Packit 1fb8d4
	KBD4_T22,
Packit 1fb8d4
	KBD4_T23,
Packit 1fb8d4
	KBD4_T24,
Packit 1fb8d4
	KBD4_T25,
Packit 1fb8d4
	KBD4_T26,
Packit 1fb8d4
	KBD4_T27,
Packit 1fb8d4
	KBD4_T28,
Packit 1fb8d4
	KBD4_T29,
Packit 1fb8d4
	KBD4_T2A,
Packit 1fb8d4
	KBD4_T2B,
Packit 1fb8d4
	KBD4_T2C,
Packit 1fb8d4
	KBD4_T2D,
Packit 1fb8d4
	KBD4_T2E,
Packit 1fb8d4
	KBD4_T2F,
Packit 1fb8d4
	KBD4_T30,
Packit 1fb8d4
	KBD4_T31,
Packit 1fb8d4
	KBD4_T32,
Packit 1fb8d4
	KBD4_T33,
Packit 1fb8d4
	KBD4_T34,
Packit 1fb8d4
	KBD4_T35,
Packit 1fb8d4
	KBD4_T36,
Packit 1fb8d4
	KBD4_T37,
Packit 1fb8d4
	KBD4_T38,
Packit 1fb8d4
	KBD4_T39,
Packit 1fb8d4
	KBD4_T3A,
Packit 1fb8d4
	KBD4_T3B,
Packit 1fb8d4
	KBD4_T3C,
Packit 1fb8d4
	KBD4_T3D,
Packit 1fb8d4
	KBD4_T3E,
Packit 1fb8d4
	KBD4_T3F,
Packit 1fb8d4
	KBD4_T40,
Packit 1fb8d4
	KBD4_T41,
Packit 1fb8d4
	KBD4_T42,
Packit 1fb8d4
	KBD4_T43,
Packit 1fb8d4
	KBD4_T44,
Packit 1fb8d4
	KBD4_T45,
Packit 1fb8d4
	KBD4_T46,
Packit 1fb8d4
	KBD4_T47,
Packit 1fb8d4
	KBD4_T48,
Packit 1fb8d4
	KBD4_T49,
Packit 1fb8d4
	KBD4_T4A,
Packit 1fb8d4
	KBD4_T4B,
Packit 1fb8d4
	KBD4_T4C,
Packit 1fb8d4
	KBD4_T4D,
Packit 1fb8d4
	KBD4_T4E,
Packit 1fb8d4
	KBD4_T4F,
Packit 1fb8d4
	KBD4_T50,
Packit 1fb8d4
	KBD4_T51,
Packit 1fb8d4
	KBD4_T52,
Packit 1fb8d4
	KBD4_T53,
Packit 1fb8d4
	KBD4_T54,
Packit 1fb8d4
	KBD4_T55,
Packit 1fb8d4
	KBD4_T56,
Packit 1fb8d4
	KBD4_T57,
Packit 1fb8d4
	KBD4_T58,
Packit 1fb8d4
	KBD4_T59,
Packit 1fb8d4
	KBD4_T5A,
Packit 1fb8d4
	KBD4_T5B,
Packit 1fb8d4
	KBD4_T5C,
Packit 1fb8d4
	KBD4_T5D,
Packit 1fb8d4
	KBD4_T5E,
Packit 1fb8d4
	KBD4_T5F,
Packit 1fb8d4
	KBD4_T60,
Packit 1fb8d4
	KBD4_T61,
Packit 1fb8d4
	KBD4_T62,
Packit 1fb8d4
	KBD4_T63,
Packit 1fb8d4
	KBD4_T64,
Packit 1fb8d4
	KBD4_T65,
Packit 1fb8d4
	KBD4_T66,
Packit 1fb8d4
	KBD4_T67,
Packit 1fb8d4
	KBD4_T68,
Packit 1fb8d4
	KBD4_T69,
Packit 1fb8d4
	KBD4_T6A,
Packit 1fb8d4
	KBD4_T6B,
Packit 1fb8d4
	KBD4_T6C,
Packit 1fb8d4
	KBD4_T6D,
Packit 1fb8d4
	KBD4_T6E,
Packit 1fb8d4
	KBD4_T6F,
Packit 1fb8d4
	KBD4_T70,
Packit 1fb8d4
	KBD4_T71,
Packit 1fb8d4
	KBD4_T72,
Packit 1fb8d4
	KBD4_T73,
Packit 1fb8d4
	KBD4_T74,
Packit 1fb8d4
	KBD4_T75,
Packit 1fb8d4
	KBD4_T76,
Packit 1fb8d4
	KBD4_T77,
Packit 1fb8d4
	KBD4_T78,
Packit 1fb8d4
	KBD4_T79,
Packit 1fb8d4
	KBD4_T7A,
Packit 1fb8d4
	KBD4_T7B,
Packit 1fb8d4
	KBD4_T7C,
Packit 1fb8d4
	KBD4_T7D,
Packit 1fb8d4
	KBD4_T7E,
Packit 1fb8d4
	KBD4_T7F
Packit 1fb8d4
};
Packit 1fb8d4
Packit 1fb8d4
static DWORD KBD4X[128] =
Packit 1fb8d4
{
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD4_X10,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD4_X19,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD4_X1C,
Packit 1fb8d4
	KBD4_X1D,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD4_X20,
Packit 1fb8d4
	KBD4_X21,
Packit 1fb8d4
	KBD4_X22,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD4_X24,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD4_X2E,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD4_X30,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD4_X32,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD4_X35,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD4_X37,
Packit 1fb8d4
	KBD4_X38,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD4_X46,
Packit 1fb8d4
	KBD4_X47,
Packit 1fb8d4
	KBD4_X48,
Packit 1fb8d4
	KBD4_X49,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD4_X4B,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD4_X4D,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD4_X4F,
Packit 1fb8d4
	KBD4_X50,
Packit 1fb8d4
	KBD4_X51,
Packit 1fb8d4
	KBD4_X52,
Packit 1fb8d4
	KBD4_X53,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD4_X5B,
Packit 1fb8d4
	KBD4_X5C,
Packit 1fb8d4
	KBD4_X5D,
Packit 1fb8d4
	KBD4_X5E,
Packit 1fb8d4
	KBD4_X5F,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD4_X65,
Packit 1fb8d4
	KBD4_X66,
Packit 1fb8d4
	KBD4_X67,
Packit 1fb8d4
	KBD4_X68,
Packit 1fb8d4
	KBD4_X69,
Packit 1fb8d4
	KBD4_X6A,
Packit 1fb8d4
	KBD4_X6B,
Packit 1fb8d4
	KBD4_X6C,
Packit 1fb8d4
	KBD4_X6D,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
};
Packit 1fb8d4
Packit 1fb8d4
/**
Packit 1fb8d4
 * Keyboard Type 7
Packit 1fb8d4
 */
Packit 1fb8d4
Packit 1fb8d4
static DWORD KBD7T[128] =
Packit 1fb8d4
{
Packit 1fb8d4
	KBD7_T00,
Packit 1fb8d4
	KBD7_T01,
Packit 1fb8d4
	KBD7_T02,
Packit 1fb8d4
	KBD7_T03,
Packit 1fb8d4
	KBD7_T04,
Packit 1fb8d4
	KBD7_T05,
Packit 1fb8d4
	KBD7_T06,
Packit 1fb8d4
	KBD7_T07,
Packit 1fb8d4
	KBD7_T08,
Packit 1fb8d4
	KBD7_T09,
Packit 1fb8d4
	KBD7_T0A,
Packit 1fb8d4
	KBD7_T0B,
Packit 1fb8d4
	KBD7_T0C,
Packit 1fb8d4
	KBD7_T0D,
Packit 1fb8d4
	KBD7_T0E,
Packit 1fb8d4
	KBD7_T0F,
Packit 1fb8d4
	KBD7_T10,
Packit 1fb8d4
	KBD7_T11,
Packit 1fb8d4
	KBD7_T12,
Packit 1fb8d4
	KBD7_T13,
Packit 1fb8d4
	KBD7_T14,
Packit 1fb8d4
	KBD7_T15,
Packit 1fb8d4
	KBD7_T16,
Packit 1fb8d4
	KBD7_T17,
Packit 1fb8d4
	KBD7_T18,
Packit 1fb8d4
	KBD7_T19,
Packit 1fb8d4
	KBD7_T1A,
Packit 1fb8d4
	KBD7_T1B,
Packit 1fb8d4
	KBD7_T1C,
Packit 1fb8d4
	KBD7_T1D,
Packit 1fb8d4
	KBD7_T1E,
Packit 1fb8d4
	KBD7_T1F,
Packit 1fb8d4
	KBD7_T20,
Packit 1fb8d4
	KBD7_T21,
Packit 1fb8d4
	KBD7_T22,
Packit 1fb8d4
	KBD7_T23,
Packit 1fb8d4
	KBD7_T24,
Packit 1fb8d4
	KBD7_T25,
Packit 1fb8d4
	KBD7_T26,
Packit 1fb8d4
	KBD7_T27,
Packit 1fb8d4
	KBD7_T28,
Packit 1fb8d4
	KBD7_T29,
Packit 1fb8d4
	KBD7_T2A,
Packit 1fb8d4
	KBD7_T2B,
Packit 1fb8d4
	KBD7_T2C,
Packit 1fb8d4
	KBD7_T2D,
Packit 1fb8d4
	KBD7_T2E,
Packit 1fb8d4
	KBD7_T2F,
Packit 1fb8d4
	KBD7_T30,
Packit 1fb8d4
	KBD7_T31,
Packit 1fb8d4
	KBD7_T32,
Packit 1fb8d4
	KBD7_T33,
Packit 1fb8d4
	KBD7_T34,
Packit 1fb8d4
	KBD7_T35,
Packit 1fb8d4
	KBD7_T36,
Packit 1fb8d4
	KBD7_T37,
Packit 1fb8d4
	KBD7_T38,
Packit 1fb8d4
	KBD7_T39,
Packit 1fb8d4
	KBD7_T3A,
Packit 1fb8d4
	KBD7_T3B,
Packit 1fb8d4
	KBD7_T3C,
Packit 1fb8d4
	KBD7_T3D,
Packit 1fb8d4
	KBD7_T3E,
Packit 1fb8d4
	KBD7_T3F,
Packit 1fb8d4
	KBD7_T40,
Packit 1fb8d4
	KBD7_T41,
Packit 1fb8d4
	KBD7_T42,
Packit 1fb8d4
	KBD7_T43,
Packit 1fb8d4
	KBD7_T44,
Packit 1fb8d4
	KBD7_T45,
Packit 1fb8d4
	KBD7_T46,
Packit 1fb8d4
	KBD7_T47,
Packit 1fb8d4
	KBD7_T48,
Packit 1fb8d4
	KBD7_T49,
Packit 1fb8d4
	KBD7_T4A,
Packit 1fb8d4
	KBD7_T4B,
Packit 1fb8d4
	KBD7_T4C,
Packit 1fb8d4
	KBD7_T4D,
Packit 1fb8d4
	KBD7_T4E,
Packit 1fb8d4
	KBD7_T4F,
Packit 1fb8d4
	KBD7_T50,
Packit 1fb8d4
	KBD7_T51,
Packit 1fb8d4
	KBD7_T52,
Packit 1fb8d4
	KBD7_T53,
Packit 1fb8d4
	KBD7_T54,
Packit 1fb8d4
	KBD7_T55,
Packit 1fb8d4
	KBD7_T56,
Packit 1fb8d4
	KBD7_T57,
Packit 1fb8d4
	KBD7_T58,
Packit 1fb8d4
	KBD7_T59,
Packit 1fb8d4
	KBD7_T5A,
Packit 1fb8d4
	KBD7_T5B,
Packit 1fb8d4
	KBD7_T5C,
Packit 1fb8d4
	KBD7_T5D,
Packit 1fb8d4
	KBD7_T5E,
Packit 1fb8d4
	KBD7_T5F,
Packit 1fb8d4
	KBD7_T60,
Packit 1fb8d4
	KBD7_T61,
Packit 1fb8d4
	KBD7_T62,
Packit 1fb8d4
	KBD7_T63,
Packit 1fb8d4
	KBD7_T64,
Packit 1fb8d4
	KBD7_T65,
Packit 1fb8d4
	KBD7_T66,
Packit 1fb8d4
	KBD7_T67,
Packit 1fb8d4
	KBD7_T68,
Packit 1fb8d4
	KBD7_T69,
Packit 1fb8d4
	KBD7_T6A,
Packit 1fb8d4
	KBD7_T6B,
Packit 1fb8d4
	KBD7_T6C,
Packit 1fb8d4
	KBD7_T6D,
Packit 1fb8d4
	KBD7_T6E,
Packit 1fb8d4
	KBD7_T6F,
Packit 1fb8d4
	KBD7_T70,
Packit 1fb8d4
	KBD7_T71,
Packit 1fb8d4
	KBD7_T72,
Packit 1fb8d4
	KBD7_T73,
Packit 1fb8d4
	KBD7_T74,
Packit 1fb8d4
	KBD7_T75,
Packit 1fb8d4
	KBD7_T76,
Packit 1fb8d4
	KBD7_T77,
Packit 1fb8d4
	KBD7_T78,
Packit 1fb8d4
	KBD7_T79,
Packit 1fb8d4
	KBD7_T7A,
Packit 1fb8d4
	KBD7_T7B,
Packit 1fb8d4
	KBD7_T7C,
Packit 1fb8d4
	KBD7_T7D,
Packit 1fb8d4
	KBD7_T7E,
Packit 1fb8d4
	KBD7_T7F
Packit 1fb8d4
};
Packit 1fb8d4
Packit 1fb8d4
static DWORD KBD7X[128] =
Packit 1fb8d4
{
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X10,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X19,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X1C,
Packit 1fb8d4
	KBD7_X1D,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X20,
Packit 1fb8d4
	KBD7_X21,
Packit 1fb8d4
	KBD7_X22,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X24,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X2E,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X30,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X32,
Packit 1fb8d4
	KBD7_X33,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X35,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X37,
Packit 1fb8d4
	KBD7_X38,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X42,
Packit 1fb8d4
	KBD7_X43,
Packit 1fb8d4
	KBD7_X44,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X46,
Packit 1fb8d4
	KBD7_X47,
Packit 1fb8d4
	KBD7_X48,
Packit 1fb8d4
	KBD7_X49,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X4B,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X4D,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X4F,
Packit 1fb8d4
	KBD7_X50,
Packit 1fb8d4
	KBD7_X51,
Packit 1fb8d4
	KBD7_X52,
Packit 1fb8d4
	KBD7_X53,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X5B,
Packit 1fb8d4
	KBD7_X5C,
Packit 1fb8d4
	KBD7_X5D,
Packit 1fb8d4
	KBD7_X5E,
Packit 1fb8d4
	KBD7_X5F,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	KBD7_X65,
Packit 1fb8d4
	KBD7_X66,
Packit 1fb8d4
	KBD7_X67,
Packit 1fb8d4
	KBD7_X68,
Packit 1fb8d4
	KBD7_X69,
Packit 1fb8d4
	KBD7_X6A,
Packit 1fb8d4
	KBD7_X6B,
Packit 1fb8d4
	KBD7_X6C,
Packit 1fb8d4
	KBD7_X6D,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE,
Packit 1fb8d4
	VK_NONE
Packit 1fb8d4
};
Packit 1fb8d4
Packit 1fb8d4
DWORD GetVirtualKeyCodeFromVirtualScanCode(DWORD scancode, DWORD dwKeyboardType)
Packit 1fb8d4
{
Packit 1fb8d4
	DWORD codeIndex;
Packit 1fb8d4
Packit 1fb8d4
	codeIndex = scancode & 0xFF;
Packit 1fb8d4
Packit 1fb8d4
	if (codeIndex > 127)
Packit 1fb8d4
		return VK_NONE;
Packit 1fb8d4
Packit 1fb8d4
	if ((dwKeyboardType != 4) && (dwKeyboardType != 7))
Packit 1fb8d4
		dwKeyboardType = 4;
Packit 1fb8d4
Packit 1fb8d4
	if (dwKeyboardType == 4)
Packit 1fb8d4
	{
Packit 1fb8d4
		return (scancode & KBDEXT) ? KBD4X[codeIndex] : KBD4T[codeIndex];
Packit 1fb8d4
	}
Packit 1fb8d4
	else if (dwKeyboardType == 7)
Packit 1fb8d4
	{
Packit 1fb8d4
		return (scancode & KBDEXT) ? KBD7X[codeIndex] : KBD7T[codeIndex];
Packit 1fb8d4
	}
Packit 1fb8d4
Packit 1fb8d4
	return VK_NONE;
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
DWORD GetVirtualScanCodeFromVirtualKeyCode(DWORD vkcode, DWORD dwKeyboardType)
Packit 1fb8d4
{
Packit 1fb8d4
	int i;
Packit 1fb8d4
	DWORD scancode;
Packit 1fb8d4
	DWORD codeIndex;
Packit 1fb8d4
Packit 1fb8d4
	scancode = 0;
Packit 1fb8d4
	codeIndex = vkcode & 0xFF;
Packit 1fb8d4
Packit 1fb8d4
	if ((dwKeyboardType != 4) && (dwKeyboardType != 7))
Packit 1fb8d4
		dwKeyboardType = 4;
Packit 1fb8d4
Packit 1fb8d4
	if (dwKeyboardType == 4)
Packit 1fb8d4
	{
Packit 1fb8d4
		if (vkcode & KBDEXT)
Packit 1fb8d4
		{
Packit 1fb8d4
			for (i = 0; i < 128; i++)
Packit 1fb8d4
			{
Packit 1fb8d4
				if (KBD4X[i] == codeIndex)
Packit 1fb8d4
				{
Packit 1fb8d4
					scancode = (i | KBDEXT);
Packit 1fb8d4
					break;
Packit 1fb8d4
				}
Packit 1fb8d4
			}
Packit 1fb8d4
		}
Packit 1fb8d4
		else
Packit 1fb8d4
		{
Packit 1fb8d4
			for (i = 0; i < 128; i++)
Packit 1fb8d4
			{
Packit 1fb8d4
				if (KBD4T[i] == codeIndex)
Packit 1fb8d4
				{
Packit 1fb8d4
					scancode = i;
Packit 1fb8d4
					break;
Packit 1fb8d4
				}
Packit 1fb8d4
			}
Packit 1fb8d4
		}
Packit 1fb8d4
	}
Packit 1fb8d4
	else if (dwKeyboardType == 7)
Packit 1fb8d4
	{
Packit 1fb8d4
		if (vkcode & KBDEXT)
Packit 1fb8d4
		{
Packit 1fb8d4
			for (i = 0; i < 128; i++)
Packit 1fb8d4
			{
Packit 1fb8d4
				if (KBD7X[i] == codeIndex)
Packit 1fb8d4
				{
Packit 1fb8d4
					scancode = (i | KBDEXT);
Packit 1fb8d4
					break;
Packit 1fb8d4
				}
Packit 1fb8d4
			}
Packit 1fb8d4
		}
Packit 1fb8d4
		else
Packit 1fb8d4
		{
Packit 1fb8d4
			for (i = 0; i < 128; i++)
Packit 1fb8d4
			{
Packit 1fb8d4
				if (KBD7T[i] == codeIndex)
Packit 1fb8d4
				{
Packit 1fb8d4
					scancode = i;
Packit 1fb8d4
					break;
Packit 1fb8d4
				}
Packit 1fb8d4
			}
Packit 1fb8d4
		}
Packit 1fb8d4
	}
Packit 1fb8d4
Packit 1fb8d4
	return scancode;
Packit 1fb8d4
}