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