kbdnec95.c
Go to the documentation of this file.00001
#if defined(JAPAN) && defined(_PC98_)
00002
00003
00004
00005
00006
00007
00008
00009
#else // _PC98_
00010
00011
00012
00013
00014
00015
00016
00017
#endif // _PC98_
00018
00019
#include <windows.h>
00020
#include <ime.h>
00021
#include "vkoem.h"
00022
#include "kbdjpn.h"
00023
#if defined(JAPAN) && defined(_PC98_)
00024
#include "kbdnec95.h"
00025
#else // _PC98_
00026
#include "kbd106.h"
00027
#endif // _PC98_
00028
00029
#if defined(_M_IA64)
00030
#pragma section(".data")
00031
#define ALLOC_SECTION_LDATA __declspec(allocate(".data"))
00032
#else
00033
#pragma data_seg(".data")
00034 #define ALLOC_SECTION_LDATA
00035
#endif
00036
00037
#if defined(JAPAN) && defined(_PC98_)
00038
00039
00040
00041
#else // _PC98_
00042
00043
00044
00045
#endif // _PC98_
00046
00047 static ALLOC_SECTION_LDATA USHORT ausVK[] = {
00048 T00, T01, T02, T03, T04, T05, T06, T07,
00049 T08, T09, T0A, T0B, T0C, T0D, T0E, T0F,
00050 T10, T11, T12, T13, T14, T15, T16, T17,
00051 T18, T19, T1A, T1B, T1C, T1D, T1E, T1F,
00052 T20, T21, T22, T23, T24, T25, T26, T27,
00053
#if defined(JAPAN) && defined(_PC98_)
00054
T28, T29, T2A, T2B, T2C, T2D, T2E, T2F,
00055 T30, T31, T32, T33, T34,
00056
00057
00058
00059
00060 T35 | KBDSPECIAL,
00061
#else // _PC98_
00062
T28,
00063
00064
00065
00066
00067 T29 | KBDSPECIAL,
00068
00069 T2A, T2B, T2C, T2D, T2E, T2F,
00070 T30, T31, T32, T33, T34, T35,
00071
#endif // _PC98_
00072
00073
#if defined(JAPAN) && defined(_PC98_)
00074
T36, T37,
00075
#else //_PC98_
00076
00077
00078
00079 T36 | KBDEXT,
00080
00081
00082
00083
00084 T37 | KBDMULTIVK,
00085
#endif // _PC98_
00086
00087 T38, T39,
00088
00089
#if defined(JAPAN) && defined(_PC98_)
00090
T3A,
00091
#else //_PC98_
00092
00093
00094
00095 T3A | KBDSPECIAL,
00096
#endif // _PC98_
00097
00098 T3B, T3C, T3D, T3E, T3F,
00099
00100
#if defined(JAPAN) && defined(_PC98_)
00101
00102
00103
00104
00105
00106
00107 T40,
00108 T41,
00109 T42 | KBDNUMPAD | KBDSPECIAL,
00110 T43 | KBDNUMPAD | KBDSPECIAL,
00111 T44 | KBDNUMPAD | KBDSPECIAL,
00112 T45,
00113 T46 | KBDNUMPAD | KBDSPECIAL,
00114 T47 | KBDNUMPAD | KBDSPECIAL,
00115 T48 | KBDNUMPAD | KBDSPECIAL,
00116 T49,
00117 T4A | KBDNUMPAD | KBDSPECIAL,
00118 T4B | KBDNUMPAD | KBDSPECIAL,
00119 T4C | KBDNUMPAD | KBDSPECIAL,
00120 T4D | KBDNUMPAD | KBDSPECIAL,
00121 T4E | KBDNUMPAD | KBDSPECIAL,
00122 T4F,
00123 T50 | KBDNUMPAD | KBDSPECIAL,
00124
00125
00126
00127
00128 T51 | KBDSPECIAL,
00129
00130 T52, T53,
00131
#else //_PC98_
00132
T40, T41, T42, T43, T44,
00133
00134
00135
00136
00137
00138
00139 T45 | KBDEXT | KBDMULTIVK,
00140
00141 T46 | KBDMULTIVK,
00142
00143
00144
00145
00146
00147
00148 T47 | KBDNUMPAD | KBDSPECIAL,
00149 T48 | KBDNUMPAD | KBDSPECIAL,
00150 T49 | KBDNUMPAD | KBDSPECIAL,
00151 T4A,
00152 T4B | KBDNUMPAD | KBDSPECIAL,
00153 T4C | KBDNUMPAD | KBDSPECIAL,
00154 T4D | KBDNUMPAD | KBDSPECIAL,
00155 T4E,
00156 T4F | KBDNUMPAD | KBDSPECIAL,
00157 T50 | KBDNUMPAD | KBDSPECIAL,
00158 T51 | KBDNUMPAD | KBDSPECIAL,
00159 T52 | KBDNUMPAD | KBDSPECIAL,
00160 T53 | KBDNUMPAD | KBDSPECIAL,
00161
#endif // _PC98_
00162
00163 T54, T55, T56, T57, T58, T59, T5A, T5B,
00164 T5C, T5D, T5E, T5F, T60, T61, T62, T63,
00165 T64, T65, T66, T67, T68, T69, T6A, T6B,
00166 T6C, T6D, T6E, T6F,
00167
00168
#if defined(JAPAN) && defined(_PC98_)
00169
T70,
00170
#else //_PC98_
00171
00172
00173
00174 T70 | KBDSPECIAL,
00175
#endif // _PC98_
00176
00177 T71, T72, T73,
00178 T74, T75, T76, T77, T78,
00179
00180
#if defined(JAPAN) && defined(_PC98_)
00181
T79,
00182
#else //_PC98_
00183
00184
00185
00186 T79 | KBDSPECIAL,
00187
#endif // _PC98_
00188
00189 T7A,
00190
00191
#if defined(JAPAN) && defined(_PC98_)
00192
T7B,
00193
#else //_PC98_
00194
00195
00196
00197 T7B | KBDSPECIAL,
00198
#endif // _PC98_
00199
00200 T7C, T7D, T7E, T7F
00201
00202 };
00203
00204 static ALLOC_SECTION_LDATA VSC_VK
aE0VscToVk[] = {
00205
#if defined(JAPAN) && defined(_PC98_)
00206
#else //_PC98_
00207
{ 0x1C, X1C | KBDEXT },
00208 { 0x1D, X1D | KBDEXT },
00209 { 0x35, X35 | KBDEXT },
00210 { 0x37, X37 | KBDEXT },
00211 { 0x38, X38 | KBDEXT },
00212 { 0x46, X46 | KBDEXT },
00213 { 0x47, X47 | KBDEXT },
00214 { 0x48, X48 | KBDEXT },
00215 { 0x49, X49 | KBDEXT },
00216 { 0x4B, X4B | KBDEXT },
00217 { 0x4D, X4D | KBDEXT },
00218 { 0x4F, X4F | KBDEXT },
00219 { 0x50, X50 | KBDEXT },
00220 { 0x51, X51 | KBDEXT },
00221 { 0x52, X52 | KBDEXT },
00222 { 0x53, X53 | KBDEXT },
00223 { 0x5B, X5B | KBDEXT },
00224 { 0x5C, X5C | KBDEXT },
00225 { 0x5D, X5D | KBDEXT },
00226
#endif // _PC98_
00227
{ 0, 0 }
00228 };
00229
00230 static ALLOC_SECTION_LDATA VSC_VK
aE1VscToVk[] = {
00231
#if defined(JAPAN) && defined(_PC98_)
00232
#else //_PC98_
00233
{ 0x1D, Y1D },
00234
#endif // _PC98_
00235
{ 0 , 0 }
00236 };
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249 static ALLOC_SECTION_LDATA VK_TO_BIT
aVkToBits[] = {
00250 { VK_SHIFT, KBDSHIFT },
00251 { VK_CONTROL, KBDCTRL },
00252 { VK_MENU, KBDALT },
00253 { VK_KANA, KBDKANA },
00254 { 0, 0 }
00255 };
00256
00257
00258
00259
00260
00261
00262
00263
00264 static ALLOC_SECTION_LDATA MODIFIERS
CharModifiers = {
00265 &
aVkToBits[0],
00266 11,
00267 {
00268
00269
00270 0,
00271 1,
00272 4,
00273 6,
00274 SHFT_INVALID,
00275 SHFT_INVALID,
00276 SHFT_INVALID,
00277 SHFT_INVALID,
00278 2,
00279 3,
00280 5,
00281 7
00282 }
00283 };
00284
00285
00286
00287
00288
00289
00290
00291
00292
00293
00294
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310 static ALLOC_SECTION_LDATA VK_TO_WCHARS4
aVkToWch4[] = {
00311
00312
00313
#if defined(JAPAN) && defined(_PC98_)
00314
{
'0' , KANALOK ,
'0' ,
'0' ,
WCH_WA ,
WCH_WO },
00315
#else //_PC98_
00316
{
'0' , KANALOK ,
'0' ,WCH_NONE ,
WCH_WA ,
WCH_WO },
00317
#endif // _PC98_
00318
{
'1' , KANALOK ,
'1' ,
'!' ,
WCH_NU ,
WCH_NU },
00319 {
'3' , KANALOK ,
'3' ,
'#' ,
WCH_A ,
WCH_AA },
00320 {
'4' , KANALOK ,
'4' ,
'$' ,
WCH_U ,
WCH_UU },
00321 {
'5' , KANALOK ,
'5' ,
'%' ,
WCH_E ,
WCH_EE },
00322 {
'7' , KANALOK ,
'7' ,0x27 ,
WCH_YA ,
WCH_YAA },
00323 {
'8' , KANALOK ,
'8' ,
'(' ,
WCH_YU ,
WCH_YUU },
00324 {
'9' , KANALOK ,
'9' ,
')' ,
WCH_YO ,
WCH_YOO },
00325 {
'A' , CAPLOK | KANALOK ,
'a' ,
'A' ,
WCH_TI ,
WCH_TI },
00326 {
'B' , CAPLOK | KANALOK ,
'b' ,
'B' ,
WCH_KO ,
WCH_KO },
00327 {
'C' , CAPLOK | KANALOK ,
'c' ,
'C' ,
WCH_SO ,
WCH_SO },
00328 {
'D' , CAPLOK | KANALOK ,
'd' ,
'D' ,
WCH_SI ,
WCH_SI },
00329 {
'E' , CAPLOK | KANALOK ,
'e' ,
'E' ,
WCH_I ,
WCH_II },
00330 {
'F' , CAPLOK | KANALOK ,
'f' ,
'F' ,
WCH_HA ,
WCH_HA },
00331 {
'G' , CAPLOK | KANALOK ,
'g' ,
'G' ,
WCH_KI ,
WCH_KI },
00332 {
'H' , CAPLOK | KANALOK ,
'h' ,
'H' ,
WCH_KU ,
WCH_KU },
00333 {
'I' , CAPLOK | KANALOK ,
'i' ,
'I' ,
WCH_NI ,
WCH_NI },
00334 {
'J' , CAPLOK | KANALOK ,
'j' ,
'J' ,
WCH_MA ,
WCH_MA },
00335 {
'K' , CAPLOK | KANALOK ,
'k' ,
'K' ,
WCH_NO ,
WCH_NO },
00336 {
'L' , CAPLOK | KANALOK ,
'l' ,
'L' ,
WCH_RI ,
WCH_RI },
00337 {
'M' , CAPLOK | KANALOK ,
'm' ,
'M' ,
WCH_MO ,
WCH_MO },
00338 {
'N' , CAPLOK | KANALOK ,
'n' ,
'N' ,
WCH_MI ,
WCH_MI },
00339 {
'O' , CAPLOK | KANALOK ,
'o' ,
'O' ,
WCH_RA ,
WCH_RA },
00340 {
'P' , CAPLOK | KANALOK ,
'p' ,
'P' ,
WCH_SE ,
WCH_SE },
00341 {
'Q' , CAPLOK | KANALOK ,
'q' ,
'Q' ,
WCH_TA ,
WCH_TA },
00342 {
'R' , CAPLOK | KANALOK ,
'r' ,
'R' ,
WCH_SU ,
WCH_SU },
00343 {
'S' , CAPLOK | KANALOK ,
's' ,
'S' ,
WCH_TO ,
WCH_TO },
00344 {
'T' , CAPLOK | KANALOK ,
't' ,
'T' ,
WCH_KA ,
WCH_KA },
00345 {
'U' , CAPLOK | KANALOK ,
'u' ,
'U' ,
WCH_NA ,
WCH_NA },
00346 {
'V' , CAPLOK | KANALOK ,
'v' ,
'V' ,
WCH_HI ,
WCH_HI },
00347 {
'W' , CAPLOK | KANALOK ,
'w' ,
'W' ,
WCH_TE ,
WCH_TE },
00348 {
'X' , CAPLOK | KANALOK ,
'x' ,
'X' ,
WCH_SA ,
WCH_SA },
00349 {
'Y' , CAPLOK | KANALOK ,
'y' ,
'Y' ,
WCH_NN ,
WCH_NN },
00350 {
'Z' , CAPLOK | KANALOK ,
'z' ,
'Z' ,
WCH_TU ,
WCH_TUU },
00351 {VK_OEM_1 , KANALOK ,
':' ,
'*' ,
WCH_KE ,
WCH_KE },
00352 {VK_OEM_2 , KANALOK ,
'/' ,
'?' ,
WCH_ME ,
WCH_MD },
00353
#if defined(JAPAN) && defined(_PC98_)
00354
#else //_PC98_
00355
{VK_OEM_3 , KANALOK ,
'@' ,
'`' ,
WCH_VS ,
WCH_VS },
00356 {VK_OEM_7 , KANALOK ,
'^' ,
'~' ,
WCH_HE ,
WCH_HE },
00357 {VK_OEM_8 , 0 ,WCH_NONE ,WCH_NONE ,WCH_NONE,WCH_NONE},
00358
#endif // _PC98_
00359
{VK_OEM_COMMA , KANALOK ,
',' ,
'<' ,
WCH_NE ,
WCH_IC },
00360 {VK_OEM_PERIOD, KANALOK ,
'.' ,
'>' ,
WCH_RU ,
WCH_IP },
00361 {VK_OEM_PLUS , KANALOK ,
';' ,
'+' ,
WCH_RE ,
WCH_RE },
00362 {VK_TAB , 0 ,
'\t' ,
'\t' ,
'\t' ,
'\t' },
00363 {VK_ADD , 0 ,
'+' ,
'+' ,
'+' ,
'+' },
00364 {VK_DECIMAL , 0 ,
'.' ,
'.' ,
'.' ,
'.' },
00365 {VK_DIVIDE , 0 ,
'/' ,
'/' ,
'/' ,
'/' },
00366 {VK_MULTIPLY , 0 ,
'*' ,
'*' ,
'*' ,
'*' },
00367 {VK_SUBTRACT , 0 ,
'-' ,
'-' ,
'-' ,
'-' },
00368
#if defined(JAPAN) && defined(_PC98_)
00369
{VK_SEPARATOR , 0 ,
',' ,
',' ,
',' ,
',' },
00370 {VK_OEM_NEC_EQUAL, 0 ,
'=' ,
'=' ,
'=' ,
'=' },
00371
#endif // _PC98_
00372
{0 , 0 ,0 ,0 ,0 ,0 }
00373 };
00374
00375 static ALLOC_SECTION_LDATA VK_TO_WCHARS6
aVkToWch6[] = {
00376
00377
00378 {VK_BACK , 0 ,
'\b' ,
'\b' ,
'\b' ,
'\b' , 0x7f , 0x7f },
00379 {VK_CANCEL , 0 ,0x03 ,0x03 ,0x03 ,0x03 , 0x03 , 0x03 },
00380 {VK_ESCAPE , 0 ,0x1b ,0x1b ,0x1b ,0x1b , 0x1b , 0x1b },
00381
#if defined(JAPAN) && defined(_PC98_)
00382
{VK_OEM_3 , KANALOK ,
'@' ,
'~' ,
WCH_VS ,
WCH_VS , 0x00 , 0x00 },
00383 {VK_OEM_4 , KANALOK ,
'[' ,
'{' ,
WCH_SVS ,
WCH_OB , 0x1b , 0x1b },
00384 {VK_OEM_5 , KANALOK ,
'\\' ,
'|' ,
WCH_PS ,
WCH_PS , 0x1c , 0x1c },
00385 {VK_OEM_6 , KANALOK ,
']' ,
'}' ,
WCH_MU ,
WCH_CB , 0x1d , 0x1d },
00386 {VK_OEM_7 , KANALOK ,
'^' ,
'`' ,
WCH_HE ,
WCH_HE , 0x1e , 0x1e },
00387 {VK_OEM_8 , KANALOK ,WCH_NONE ,
'_' ,
WCH_RO ,
WCH_RO , 0x1f , 0x1f },
00388
#else //_PC98_
00389
{VK_OEM_4 , KANALOK ,
'[' ,
'{' ,
WCH_SVS ,
WCH_OB , 0x1b , 0x1b },
00390 {VK_OEM_5 , KANALOK ,
'\\' ,
'|' ,
WCH_PS ,
WCH_PS , 0x1c , 0x1c },
00391 {VK_OEM_102 , KANALOK ,
'\\' ,
'_' ,
WCH_RO ,
WCH_RO , 0x1c , 0x1c },
00392 {VK_OEM_6 , KANALOK ,
']' ,
'}' ,
WCH_MU ,
WCH_CB , 0x1d , 0x1d },
00393
#endif // _PC98_
00394
{VK_RETURN , 0 ,
'\r' ,
'\r' ,
'\r' ,
'\r' ,
'\n' ,
'\n' },
00395 {VK_SPACE , 0 ,
' ' ,
' ' ,
' ' ,
' ' , 0x20 , 0x20 },
00396 {0 , 0 ,0 ,0 ,0 ,0 , 0 , 0 }
00397 };
00398
00399 static ALLOC_SECTION_LDATA VK_TO_WCHARS8
aVkToWch8[] = {
00400
00401
00402 {
'2' , KANALOK ,
'2' ,
'"' ,
WCH_HU ,
WCH_HU , WCH_NONE , WCH_NONE , 0x00 , 0x00 },
00403 {
'6' , KANALOK ,
'6' ,
'&' ,
WCH_O ,
WCH_OO , WCH_NONE , WCH_NONE , 0x1e , 0x1e },
00404 {VK_OEM_MINUS , KANALOK ,
'-' ,
'=' ,
WCH_HO ,
WCH_HO , WCH_NONE , WCH_NONE , 0x1f , 0x1f },
00405 {0 , 0 ,0 ,0 ,0 ,0 , 0 , 0 , 0 , 0 }
00406 };
00407
00408
00409
00410
00411
00412 static ALLOC_SECTION_LDATA VK_TO_WCHARS4
aVkToWch1[] = {
00413
00414
00415 { VK_NUMPAD0 , 0 ,
'0' , WCH_NONE ,
'0' ,WCH_NONE},
00416 { VK_NUMPAD1 , 0 ,
'1' , WCH_NONE ,
'1' ,WCH_NONE},
00417 { VK_NUMPAD2 , 0 ,
'2' , WCH_NONE ,
'2' ,WCH_NONE},
00418 { VK_NUMPAD3 , 0 ,
'3' , WCH_NONE ,
'3' ,WCH_NONE},
00419 { VK_NUMPAD4 , 0 ,
'4' , WCH_NONE ,
'4' ,WCH_NONE},
00420 { VK_NUMPAD5 , 0 ,
'5' , WCH_NONE ,
'5' ,WCH_NONE},
00421 { VK_NUMPAD6 , 0 ,
'6' , WCH_NONE ,
'6' ,WCH_NONE},
00422 { VK_NUMPAD7 , 0 ,
'7' , WCH_NONE ,
'7' ,WCH_NONE},
00423 { VK_NUMPAD8 , 0 ,
'8' , WCH_NONE ,
'8' ,WCH_NONE},
00424 { VK_NUMPAD9 , 0 ,
'9' , WCH_NONE ,
'9' ,WCH_NONE},
00425 { 0 , 0 ,
'\0' , 0 , 0 ,0 }
00426 };
00427
00428
00429
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
00440
00441 static ALLOC_SECTION_LDATA VK_TO_WCHAR_TABLE
aVkToWcharTable[] = {
00442 { (PVK_TO_WCHARS1)
aVkToWch6, 6,
sizeof(
aVkToWch6[0]) },
00443 { (PVK_TO_WCHARS1)
aVkToWch8, 8,
sizeof(
aVkToWch8[0]) },
00444 { (PVK_TO_WCHARS1)
aVkToWch4, 4,
sizeof(
aVkToWch4[0]) },
00445 { (PVK_TO_WCHARS1)
aVkToWch1, 4,
sizeof(
aVkToWch1[0]) },
00446 {
NULL, 0, 0 }
00447 };
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458 static ALLOC_SECTION_LDATA VSC_LPWSTR
aKeyNames[] = {
00459
#if defined(JAPAN) && defined(_PC98_)
00460
00461 0x0e,
L"BS",
00462 0x0f,
L"TAB",
00463 0x1c,
L"RETURN",
00464 0x34,
L"SPACE",
00465 0x35,
L"XFER",
00466 0x36,
L"ROLL UP",
00467 0x37,
L"ROLL DOWN",
00468 0x38,
L"INS",
00469 0x39,
L"DEL",
00470 0x3A,
L"UP",
00471 0x3B,
L"LEFT",
00472 0x3C,
L"RIGHT",
00473 0x3D,
L"DOWN",
00474 0x3E,
L"CLR",
00475 0x3F,
L"HELP",
00476 0x40,
L"Num -",
00477 0x41,
L"Num /",
00478 0x42,
L"Num 7",
00479 0x43,
L"Num 8",
00480 0x44,
L"Num 9",
00481 0x45,
L"Num *",
00482 0x46,
L"Num 4",
00483 0x47,
L"Num 5",
00484 0x48,
L"Num 6",
00485 0x49,
L"Num +",
00486 0x4a,
L"Num 1",
00487 0x4b,
L"Num 2",
00488 0x4c,
L"Num 3",
00489 0x4d,
L"Num =",
00490 0x4e,
L"Num 0",
00491 0x4f,
L"Num ,",
00492 0x50,
L"Num .",
00493 0x51,
L"NFER",
00494 0x52, (LPWSTR)
SZ_KEY_NAME_F11,
00495 0x53, (LPWSTR)
SZ_KEY_NAME_F12,
00496 0x54, (LPWSTR)
SZ_KEY_NAME_F13,
00497 0x55, (LPWSTR)
SZ_KEY_NAME_F14,
00498 0x56, (LPWSTR)
SZ_KEY_NAME_F15,
00499 0x60,
L"STOP",
00500 0x61,
L"COPY",
00501 0x62, (LPWSTR)
SZ_KEY_NAME_F1,
00502 0x63, (LPWSTR)
SZ_KEY_NAME_F2,
00503 0x64, (LPWSTR)
SZ_KEY_NAME_F3,
00504 0x65, (LPWSTR)
SZ_KEY_NAME_F4,
00505 0x66, (LPWSTR)
SZ_KEY_NAME_F5,
00506 0x67, (LPWSTR)
SZ_KEY_NAME_F6,
00507 0x68, (LPWSTR)
SZ_KEY_NAME_F7,
00508 0x69, (LPWSTR)
SZ_KEY_NAME_F8,
00509 0x6A, (LPWSTR)
SZ_KEY_NAME_F9,
00510 0x6B, (LPWSTR)
SZ_KEY_NAME_F10,
00511 0x70,
L"SHIFT",
00512 0x71,
L"CAPS",
00513 0x72, (LPWSTR)
SZ_KEY_NAME_KANA,
00514 0x73,
L"GRPH",
00515 0x74,
L"CTRL",
00516 0x77,
L"Left Windows",
00517 0x78,
L"Right Windows",
00518 0x79,
L"Application",
00519 0x7d,
L"SHIFT",
00520
#else //_PC98_
00521
0x01,
L"Esc",
00522 0x0e,
L"Backspace",
00523 0x0f,
L"Tab",
00524 0x1c,
L"Enter",
00525 0x1d,
L"Ctrl",
00526 0x29, (LPWSTR)
SZ_KEY_NAME_HANKAKU_ZENKAKU,
00527 0x2a,
L"Shift",
00528 0x36,
L"Right Shift",
00529 0x37,
L"Num *",
00530 0x38,
L"Alt",
00531 0x39,
L"Space",
00532 0x3a,
L"Caps Lock",
00533 0x3b,
L"F1",
00534 0x3c,
L"F2",
00535 0x3d,
L"F3",
00536 0x3e,
L"F4",
00537 0x3f,
L"F5",
00538 0x40,
L"F6",
00539 0x41,
L"F7",
00540 0x42,
L"F8",
00541 0x43,
L"F9",
00542 0x44,
L"F10",
00543 0x45,
L"Pause",
00544 0x46,
L"Scroll Lock",
00545 0x47,
L"Num 7",
00546 0x48,
L"Num 8",
00547 0x49,
L"Num 9",
00548 0x4a,
L"Num -",
00549 0x4b,
L"Num 4",
00550 0x4c,
L"Num 5",
00551 0x4d,
L"Num 6",
00552 0x4e,
L"Num +",
00553 0x4f,
L"Num 1",
00554 0x50,
L"Num 2",
00555 0x51,
L"Num 3",
00556 0x52,
L"Num 0",
00557 0x53,
L"Num Del",
00558 0x54,
L"Sys Req",
00559 0x57,
L"F11",
00560 0x58,
L"F12",
00561 0x70, (LPWSTR)
SZ_KEY_NAME_HIRAGANA,
00562 0x79, (LPWSTR)
SZ_KEY_NAME_HENKAN,
00563 0x7b, (LPWSTR)
SZ_KEY_NAME_MUHENKAN,
00564 0x7C,
L"F13",
00565
#endif // _PC98_
00566
0 ,
NULL
00567 };
00568
00569 static ALLOC_SECTION_LDATA VSC_LPWSTR
aKeyNamesExt[] = {
00570
#if defined(JAPAN) && defined(_PC98_)
00571
#else //_PC98_
00572
0x1c,
L"Num Enter",
00573 0x1d,
L"Right Control",
00574 0x35,
L"Num /",
00575 0x37,
L"Prnt Scrn",
00576 0x38,
L"Right Alt",
00577 0x45,
L"Num Lock",
00578 0x46,
L"Break",
00579 0x47,
L"Home",
00580 0x48,
L"Up",
00581 0x49,
L"Page Up",
00582 0x4b,
L"Left",
00583 0x4d,
L"Right",
00584 0x4f,
L"End",
00585 0x50,
L"Down",
00586 0x51,
L"Page Down",
00587 0x52,
L"Insert",
00588 0x53,
L"Delete",
00589 0x5B,
L"Left Windows",
00590 0x5C,
L"Right Windows",
00591 0x5D,
L"Application",
00592
#endif // _PC98_
00593
0 ,
NULL
00594 };
00595
00596 static ALLOC_SECTION_LDATA KBDTABLES
KbdTables = {
00597
00598
00599
00600 &
CharModifiers,
00601
00602
00603
00604
00605
aVkToWcharTable,
00606
00607
00608
00609
00610
NULL,
00611
00612
00613
00614
00615
aKeyNames,
00616
aKeyNamesExt,
00617
NULL,
00618
00619
00620
00621
00622
ausVK,
00623
sizeof(
ausVK) /
sizeof(
ausVK[0]),
00624
aE0VscToVk,
00625
aE1VscToVk,
00626
00627
00628
00629
00630 0
00631 };
00632
00633 PKBDTABLES
KbdLayerDescriptor(VOID)
00634 {
00635
return &
KbdTables;
00636 }
00637
00638
00639
00640
00641
00642
00643 static ALLOC_SECTION_LDATA VK_F
VkToFuncTable_106[] = {
00644 {
00645 VK_DBE_ALPHANUMERIC,
00646 KBDNLS_TYPE_TOGGLE,
00647 KBDNLS_INDEX_NORMAL,
00648 0x02,
00649 {
00650 {KBDNLS_ALPHANUM,0},
00651 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL},
00652 {KBDNLS_ALPHANUM,0},
00653 {KBDNLS_ALPHANUM,0},
00654 {KBDNLS_ALPHANUM,0},
00655 {KBDNLS_ALPHANUM,0},
00656 {KBDNLS_CODEINPUT,0},
00657 {KBDNLS_CODEINPUT,0}
00658 },
00659 {
00660 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL},
00661 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL},
00662 {KBDNLS_NOEVENT,0},
00663 {KBDNLS_NOEVENT,0},
00664 {KBDNLS_NOEVENT,0},
00665 {KBDNLS_NOEVENT,0},
00666 {KBDNLS_NOEVENT,0},
00667 {KBDNLS_NOEVENT,0}
00668 }
00669 },
00670 {
00671 VK_DBE_HIRAGANA,
00672 KBDNLS_TYPE_TOGGLE,
00673 KBDNLS_INDEX_NORMAL,
00674 0x08,
00675 {
00676 {KBDNLS_HIRAGANA,0},
00677 {KBDNLS_KATAKANA,0},
00678 {KBDNLS_HIRAGANA,0},
00679 {KBDNLS_SEND_PARAM_VK,VK_KANA},
00680 {KBDNLS_ROMAN,0},
00681 {KBDNLS_ROMAN,0},
00682 {KBDNLS_ROMAN,0},
00683 {KBDNLS_NOEVENT,0}
00684 },
00685 {
00686 {KBDNLS_SEND_PARAM_VK,VK_KANA},
00687 {KBDNLS_SEND_PARAM_VK,VK_KANA},
00688 {KBDNLS_SEND_PARAM_VK,VK_KANA},
00689 {KBDNLS_SEND_PARAM_VK,VK_KANA},
00690 {KBDNLS_NOEVENT,0},
00691 {KBDNLS_NOEVENT,0},
00692 {KBDNLS_NOEVENT,0},
00693 {KBDNLS_NOEVENT,0}
00694 }
00695 },
00696 {
00697 VK_DBE_SBCSCHAR,
00698 KBDNLS_TYPE_NORMAL,
00699 KBDNLS_INDEX_NORMAL,
00700 0x0,
00701 {
00702 {KBDNLS_SBCSDBCS,0},
00703 {KBDNLS_SBCSDBCS,0},
00704 {KBDNLS_SBCSDBCS,0},
00705 {KBDNLS_SBCSDBCS,0},
00706 {KBDNLS_SEND_PARAM_VK,VK_KANJI},
00707 {KBDNLS_SBCSDBCS,0},
00708 {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERIMECONFIGMODE},
00709 {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERIMECONFIGMODE}
00710 },
00711 {
00712 {KBDNLS_NULL,0},
00713 {KBDNLS_NULL,0},
00714 {KBDNLS_NULL,0},
00715 {KBDNLS_NULL,0},
00716 {KBDNLS_NULL,0},
00717 {KBDNLS_NULL,0},
00718 {KBDNLS_NULL,0},
00719 {KBDNLS_NULL,0}
00720 }
00721 },
00722 {
00723 VK_NONCONVERT,
00724 KBDNLS_TYPE_NORMAL,
00725 KBDNLS_INDEX_NORMAL,
00726 0x0,
00727 {
00728 {KBDNLS_SEND_BASE_VK,0},
00729 {KBDNLS_SEND_BASE_VK,0},
00730 {KBDNLS_SEND_BASE_VK,0},
00731 {KBDNLS_SEND_BASE_VK,0},
00732 {KBDNLS_SEND_BASE_VK,0},
00733 {KBDNLS_SEND_BASE_VK,0},
00734 {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERWORDREGISTERMODE},
00735 {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERWORDREGISTERMODE}
00736 },
00737 {
00738 {KBDNLS_NULL,0},
00739 {KBDNLS_NULL,0},
00740 {KBDNLS_NULL,0},
00741 {KBDNLS_NULL,0},
00742 {KBDNLS_NULL,0},
00743 {KBDNLS_NULL,0},
00744 {KBDNLS_NULL,0},
00745 {KBDNLS_NULL,0}
00746 }
00747 }
00748 };
00749
00750
#if defined(JAPAN) && defined(_PC98_)
00751
static ALLOC_SECTION_LDATA VK_F VkToFuncTable_NEC[] = {
00752 {
00753 VK_DBE_SBCSCHAR,
00754 KBDNLS_TYPE_NORMAL,
00755 KBDNLS_INDEX_NORMAL,
00756 0x0,
00757 {
00758 {KBDNLS_SBCSDBCS,0},
00759 {KBDNLS_SBCSDBCS,0},
00760 {KBDNLS_SBCSDBCS,0},
00761 {KBDNLS_SBCSDBCS,0},
00762 {KBDNLS_SBCSDBCS,0},
00763
00764 {KBDNLS_SBCSDBCS,0},
00765 {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERIMECONFIGMODE},
00766 {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERIMECONFIGMODE}
00767 },
00768 {
00769 {KBDNLS_NULL,0},
00770 {KBDNLS_NULL,0},
00771 {KBDNLS_NULL,0},
00772 {KBDNLS_NULL,0},
00773 {KBDNLS_NULL,0},
00774 {KBDNLS_NULL,0},
00775 {KBDNLS_NULL,0},
00776 {KBDNLS_NULL,0}
00777 }
00778 },
00779 {
00780 VK_NONCONVERT,
00781 KBDNLS_TYPE_NORMAL,
00782 KBDNLS_INDEX_NORMAL,
00783 0x0,
00784 {
00785 {KBDNLS_SEND_BASE_VK,0},
00786 {KBDNLS_SEND_BASE_VK,0},
00787 {KBDNLS_SEND_PARAM_VK,VK_DBE_ALPHANUMERIC},
00788 {KBDNLS_SBCSDBCS,0},
00789 {KBDNLS_SEND_PARAM_VK,VK_DBE_KATAKANA},
00790 {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERWORDREGISTERMODE},
00791 {KBDNLS_SEND_PARAM_VK,VK_DBE_NOCODEINPUT},
00792 {KBDNLS_SEND_PARAM_VK,VK_DBE_FLUSHSTRING}
00793 },
00794 {
00795 {KBDNLS_NULL,0},
00796 {KBDNLS_NULL,0},
00797 {KBDNLS_NULL,0},
00798 {KBDNLS_NULL,0},
00799 {KBDNLS_NULL,0},
00800 {KBDNLS_NULL,0},
00801 {KBDNLS_NULL,0},
00802 {KBDNLS_NULL,0}
00803 }
00804 },
00805 {
00806 VK_CONVERT,
00807 KBDNLS_TYPE_NORMAL,
00808 KBDNLS_INDEX_NORMAL,
00809 0x0,
00810 {
00811 {KBDNLS_SEND_BASE_VK,0},
00812 {KBDNLS_SEND_BASE_VK,0},
00813 {KBDNLS_SEND_PARAM_VK,VK_KANJI},
00814 {KBDNLS_SEND_BASE_VK,0},
00815 {KBDNLS_ROMAN,0},
00816 {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERIMECONFIGMODE},
00817 {KBDNLS_SEND_PARAM_VK,VK_DBE_CODEINPUT},
00818 {KBDNLS_SEND_PARAM_VK,VK_DBE_HIRAGANA}
00819 },
00820 {
00821 {KBDNLS_NULL,0},
00822 {KBDNLS_NULL,0},
00823 {KBDNLS_NULL,0},
00824 {KBDNLS_NULL,0},
00825 {KBDNLS_NULL,0},
00826 {KBDNLS_NULL,0},
00827 {KBDNLS_NULL,0},
00828 {KBDNLS_NULL,0}
00829 }
00830 },
00831 {
00832 VK_OEM_NEC_EQUAL,
00833 KBDNLS_TYPE_NORMAL,
00834 KBDNLS_INDEX_NORMAL,
00835 0x0,
00836 {
00837 {KBDNLS_SEND_BASE_VK,0},
00838 {KBDNLS_SEND_BASE_VK,0},
00839 {KBDNLS_SEND_PARAM_VK,VK_SCROLL},
00840 {KBDNLS_SEND_BASE_VK,0},
00841 {KBDNLS_SEND_BASE_VK,0},
00842 {KBDNLS_SEND_BASE_VK,0},
00843 {KBDNLS_SEND_BASE_VK,0},
00844 {KBDNLS_SEND_BASE_VK,0}
00845 },
00846 {
00847 {KBDNLS_NULL,0},
00848 {KBDNLS_NULL,0},
00849 {KBDNLS_NULL,0},
00850 {KBDNLS_NULL,0},
00851 {KBDNLS_NULL,0},
00852 {KBDNLS_NULL,0},
00853 {KBDNLS_NULL,0},
00854 {KBDNLS_NULL,0}
00855 }
00856 },
00857 {
00858 VK_HOME,
00859 KBDNLS_TYPE_NORMAL,
00860 KBDNLS_INDEX_NORMAL,
00861 0x0,
00862 {
00863 {KBDNLS_HOME_OR_CLEAR,0},
00864 {KBDNLS_SEND_BASE_VK,0},
00865 {KBDNLS_HOME_OR_CLEAR,0},
00866 {KBDNLS_HOME_OR_CLEAR,0},
00867 {KBDNLS_HOME_OR_CLEAR,0},
00868 {KBDNLS_HOME_OR_CLEAR,0},
00869 {KBDNLS_HOME_OR_CLEAR,0},
00870 {KBDNLS_HOME_OR_CLEAR,0}
00871 },
00872 {
00873 {KBDNLS_NULL,0},
00874 {KBDNLS_NULL,0},
00875 {KBDNLS_NULL,0},
00876 {KBDNLS_NULL,0},
00877 {KBDNLS_NULL,0},
00878 {KBDNLS_NULL,0},
00879 {KBDNLS_NULL,0},
00880 {KBDNLS_NULL,0}
00881 }
00882 },
00883 {
00884 VK_END,
00885 KBDNLS_TYPE_NORMAL,
00886 KBDNLS_INDEX_NORMAL,
00887 0x0,
00888 {
00889 {KBDNLS_HELP_OR_END,0},
00890 {KBDNLS_HELP_OR_END,0},
00891 {KBDNLS_HELP_OR_END,0},
00892 {KBDNLS_HELP_OR_END,0},
00893 {KBDNLS_HELP_OR_END,0},
00894 {KBDNLS_HELP_OR_END,0},
00895 {KBDNLS_HELP_OR_END,0},
00896 {KBDNLS_HELP_OR_END,0}
00897 },
00898 {
00899 {KBDNLS_NULL,0},
00900 {KBDNLS_NULL,0},
00901 {KBDNLS_NULL,0},
00902 {KBDNLS_NULL,0},
00903 {KBDNLS_NULL,0},
00904 {KBDNLS_NULL,0},
00905 {KBDNLS_NULL,0},
00906 {KBDNLS_NULL,0}
00907 }
00908 }
00909 };
00910
00911
USHORT ausMouseVKey98[] = {
00912 VK_NUMPAD5,
00913 VK_NUMPAD9,
00914 VK_NUMPAD3,
00915 VK_NUMPAD1,
00916 VK_NUMPAD7,
00917 VK_NUMPAD4,
00918 VK_NUMPAD8,
00919 VK_NUMPAD6,
00920 VK_NUMPAD2,
00921 VK_NUMPAD0,
00922 VK_DECIMAL,
00923 VK_MULTIPLY,
00924 VK_ADD,
00925 VK_SUBTRACT,
00926 VK_DIVIDE | KBDEXT,
00927 VK_HOME | KBDEXT
00928 };
00929
00930
#else //_PC98_
00931
#endif // _PC98_
00932
00933
00934
00935
00936
00937 static ALLOC_SECTION_LDATA KBDNLSTABLES
KbdNlsTables = {
00938
#if defined(JAPAN) && defined(_PC98_)
00939
0x0d,
00940 NLSKBD_INFO_ACCESSIBILITY_KEYMAP,
00941 6,
00942 VkToFuncTable_NEC,
00943 16,
00944 ausMouseVKey98
00945
#else //_PC98_
00946
0,
00947 0,
00948 4,
00949
VkToFuncTable_106,
00950 0,
00951
NULL
00952
#endif // _PC98_
00953
};
00954
00955 PKBDNLSTABLES
KbdNlsLayerDescriptor(VOID)
00956 {
00957
return &
KbdNlsTables;
00958 }
Generated on Sat May 15 19:40:33 2004 for test by
1.3.7