kbdibm02.c
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
#include <windows.h>
00010
#include <ime.h>
00011
#include "vkoem.h"
00012
#include "kbdjpn.h"
00013
#include "kbdibm02.h"
00014
00015
#if defined(_M_IA64)
00016
#pragma section(".data")
00017
#define ALLOC_SECTION_LDATA __declspec(allocate(".data"))
00018
#else
00019
#pragma data_seg(".data")
00020 #define ALLOC_SECTION_LDATA
00021
#endif
00022
00023
00024
00025
00026
00027 static ALLOC_SECTION_LDATA USHORT ausVK[] = {
00028 T00, T01, T02, T03, T04, T05, T06, T07,
00029 T08, T09, T0A, T0B, T0C, T0D, T0E, T0F,
00030 T10, T11, T12, T13, T14, T15, T16, T17,
00031 T18, T19, T1A, T1B, T1C, T1D, T1E, T1F,
00032 T20, T21, T22, T23, T24, T25, T26, T27,
00033 T28, T29, T2A, T2B, T2C, T2D, T2E, T2F,
00034 T30, T31, T32, T33, T34, T35,
00035
00036
00037
00038
00039 T36 | KBDEXT,
00040
00041 T37 | KBDMULTIVK,
00042
00043 T38, T39,
00044
00045 T3A | KBDSPECIAL,
00046
00047 T3B, T3C, T3D, T3E, T3F, T40, T41, T42,
00048 T43, T44,
00049
00050
00051
00052
00053
00054
00055 T45 | KBDEXT | KBDMULTIVK,
00056
00057 T46 | KBDMULTIVK,
00058
00059
00060
00061
00062
00063
00064 T47 | KBDNUMPAD | KBDSPECIAL,
00065 T48 | KBDNUMPAD | KBDSPECIAL,
00066 T49 | KBDNUMPAD | KBDSPECIAL,
00067 T4A,
00068 T4B | KBDNUMPAD | KBDSPECIAL,
00069 T4C | KBDNUMPAD | KBDSPECIAL,
00070 T4D | KBDNUMPAD | KBDSPECIAL,
00071 T4E,
00072 T4F | KBDNUMPAD | KBDSPECIAL,
00073 T50 | KBDNUMPAD | KBDSPECIAL,
00074 T51 | KBDNUMPAD | KBDSPECIAL,
00075 T52 | KBDNUMPAD | KBDSPECIAL,
00076 T53 | KBDNUMPAD | KBDSPECIAL,
00077
00078 T54, T55, T56, T57, T58, T59, T5A, T5B,
00079 T5C, T5D, T5E, T5F, T60, T61, T62, T63,
00080 T64, T65, T66, T67, T68, T69, T6A, T6B,
00081 T6C, T6D, T6E, T6F,
00082
00083 T70 | KBDSPECIAL,
00084
00085 T71, T72,
00086
00087 T73,
00088
00089 T74, T75, T76,
00090
00091 T77 | KBDSPECIAL,
00092
00093 T78,
00094
00095 T79 | KBDSPECIAL,
00096
00097 T7A,
00098
00099 T7B | KBDSPECIAL
00100 };
00101
00102 static ALLOC_SECTION_LDATA VSC_VK
aE0VscToVk[] = {
00103 { 0x1C, X1C | KBDEXT },
00104 { 0x1D, X1D | KBDEXT },
00105 { 0x33, X33 | KBDEXT },
00106 { 0x35, X35 | KBDEXT },
00107 { 0x37, X37 | KBDEXT },
00108 { 0x38, X38 | KBDEXT | KBDSPECIAL },
00109 { 0x46, X46 | KBDEXT },
00110 { 0x47, X47 | KBDEXT },
00111 { 0x48, X48 | KBDEXT },
00112 { 0x49, X49 | KBDEXT },
00113 { 0x4B, X4B | KBDEXT },
00114 { 0x4D, X4D | KBDEXT },
00115 { 0x4F, X4F | KBDEXT },
00116 { 0x50, X50 | KBDEXT },
00117 { 0x51, X51 | KBDEXT },
00118 { 0x52, X52 | KBDEXT },
00119 { 0x53, X53 | KBDEXT },
00120 { 0x5B, X5B | KBDEXT },
00121 { 0x5C, X5C | KBDEXT },
00122 { 0x5D, X5D | KBDEXT },
00123 { 0, 0 }
00124 };
00125
00126 static ALLOC_SECTION_LDATA VSC_VK
aE1VscToVk[] = {
00127 { 0x1D, Y1D },
00128 { 0 , 0 }
00129 };
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142 static ALLOC_SECTION_LDATA VK_TO_BIT
aVkToBits[] = {
00143 { VK_SHIFT, KBDSHIFT },
00144 { VK_CONTROL, KBDCTRL },
00145 { VK_MENU, KBDALT },
00146 { VK_KANA, KBDKANA },
00147 { 0, 0 }
00148 };
00149
00150
00151
00152
00153
00154
00155
00156
00157 static ALLOC_SECTION_LDATA MODIFIERS
CharModifiers = {
00158 &
aVkToBits[0],
00159 11,
00160 {
00161
00162
00163 0,
00164 1,
00165 4,
00166 6,
00167 SHFT_INVALID,
00168 SHFT_INVALID,
00169 SHFT_INVALID,
00170 SHFT_INVALID,
00171 2,
00172 3,
00173 5,
00174 7
00175 }
00176 };
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203 static ALLOC_SECTION_LDATA VK_TO_WCHARS4
aVkToWch4[] = {
00204
00205
00206 {
'0' , KANALOK ,
'0' ,WCH_NONE ,
WCH_WA ,
WCH_WO },
00207 {
'1' , KANALOK ,
'1' ,
'!' ,
WCH_NU ,
WCH_NU },
00208 {
'3' , KANALOK ,
'3' ,
'#' ,
WCH_A ,
WCH_AA },
00209 {
'4' , KANALOK ,
'4' ,
'$' ,
WCH_U ,
WCH_UU },
00210 {
'5' , KANALOK ,
'5' ,
'%' ,
WCH_E ,
WCH_EE },
00211 {
'7' , KANALOK ,
'7' ,0x27 ,
WCH_YA ,
WCH_YAA },
00212 {
'8' , KANALOK ,
'8' ,
'(' ,
WCH_YU ,
WCH_YUU },
00213 {
'9' , KANALOK ,
'9' ,
')' ,
WCH_YO ,
WCH_YOO },
00214 {
'A' , CAPLOK | KANALOK ,
'a' ,
'A' ,
WCH_TI ,
WCH_TI },
00215 {
'B' , CAPLOK | KANALOK ,
'b' ,
'B' ,
WCH_KO ,
WCH_KO },
00216 {
'C' , CAPLOK | KANALOK ,
'c' ,
'C' ,
WCH_SO ,
WCH_SO },
00217 {
'D' , CAPLOK | KANALOK ,
'd' ,
'D' ,
WCH_SI ,
WCH_SI },
00218 {
'E' , CAPLOK | KANALOK ,
'e' ,
'E' ,
WCH_I ,
WCH_II },
00219 {
'F' , CAPLOK | KANALOK ,
'f' ,
'F' ,
WCH_HA ,
WCH_HA },
00220 {
'G' , CAPLOK | KANALOK ,
'g' ,
'G' ,
WCH_KI ,
WCH_KI },
00221 {
'H' , CAPLOK | KANALOK ,
'h' ,
'H' ,
WCH_KU ,
WCH_KU },
00222 {
'I' , CAPLOK | KANALOK ,
'i' ,
'I' ,
WCH_NI ,
WCH_NI },
00223 {
'J' , CAPLOK | KANALOK ,
'j' ,
'J' ,
WCH_MA ,
WCH_MA },
00224 {
'K' , CAPLOK | KANALOK ,
'k' ,
'K' ,
WCH_NO ,
WCH_NO },
00225 {
'L' , CAPLOK | KANALOK ,
'l' ,
'L' ,
WCH_RI ,
WCH_RI },
00226 {
'M' , CAPLOK | KANALOK ,
'm' ,
'M' ,
WCH_MO ,
WCH_MO },
00227 {
'N' , CAPLOK | KANALOK ,
'n' ,
'N' ,
WCH_MI ,
WCH_MI },
00228 {
'O' , CAPLOK | KANALOK ,
'o' ,
'O' ,
WCH_RA ,
WCH_RA },
00229 {
'P' , CAPLOK | KANALOK ,
'p' ,
'P' ,
WCH_SE ,
WCH_SE },
00230 {
'Q' , CAPLOK | KANALOK ,
'q' ,
'Q' ,
WCH_TA ,
WCH_TA },
00231 {
'R' , CAPLOK | KANALOK ,
'r' ,
'R' ,
WCH_SU ,
WCH_SU },
00232 {
'S' , CAPLOK | KANALOK ,
's' ,
'S' ,
WCH_TO ,
WCH_TO },
00233 {
'T' , CAPLOK | KANALOK ,
't' ,
'T' ,
WCH_KA ,
WCH_KA },
00234 {
'U' , CAPLOK | KANALOK ,
'u' ,
'U' ,
WCH_NA ,
WCH_NA },
00235 {
'V' , CAPLOK | KANALOK ,
'v' ,
'V' ,
WCH_HI ,
WCH_HI },
00236 {
'W' , CAPLOK | KANALOK ,
'w' ,
'W' ,
WCH_TE ,
WCH_TE },
00237 {
'X' , CAPLOK | KANALOK ,
'x' ,
'X' ,
WCH_SA ,
WCH_SA },
00238 {
'Y' , CAPLOK | KANALOK ,
'y' ,
'Y' ,
WCH_NN ,
WCH_NN },
00239 {
'Z' , CAPLOK | KANALOK ,
'z' ,
'Z' ,
WCH_TU ,
WCH_TUU },
00240 {VK_OEM_1 , KANALOK ,
':' ,
'*' ,
WCH_KE ,
WCH_KE },
00241 {VK_OEM_2 , KANALOK ,
'/' ,
'?' ,
WCH_ME ,
WCH_MD },
00242 {VK_OEM_3 , KANALOK ,
'@' ,
'`' ,
WCH_VS ,
WCH_VS },
00243 {VK_OEM_7 , KANALOK ,
'^' ,
'~' ,
WCH_HE ,
WCH_HE },
00244 {VK_OEM_8 , 0 ,
',' ,
',' ,
',' ,
',' },
00245 {VK_OEM_COMMA , KANALOK ,
',' ,
'<' ,
WCH_NE ,
WCH_IC },
00246 {VK_OEM_PERIOD, KANALOK ,
'.' ,
'>' ,
WCH_RU ,
WCH_IP },
00247 {VK_OEM_PLUS , KANALOK ,
';' ,
'+' ,
WCH_RE ,
WCH_RE },
00248 {VK_TAB , 0 ,
'\t' ,
'\t' ,
'\t' ,
'\t' },
00249 {VK_ADD , 0 ,
'+' ,
'+' ,
'+' ,
'+' },
00250 {VK_DECIMAL , 0 ,
'.' ,
'.' ,
'.' ,
'.' },
00251 {VK_DIVIDE , 0 ,
'/' ,
'/' ,
'/' ,
'/' },
00252 {VK_MULTIPLY , 0 ,
'*' ,
'*' ,
'*' ,
'*' },
00253 {VK_SUBTRACT , 0 ,
'-' ,
'-' ,
'-' ,
'-' },
00254 {0 , 0 ,0 ,0 ,0 ,0 }
00255 };
00256
00257 static ALLOC_SECTION_LDATA VK_TO_WCHARS6
aVkToWch6[] = {
00258
00259
00260 {VK_BACK , 0 ,
'\b' ,
'\b' ,
'\b' ,
'\b' , 0x7f , 0x7f },
00261 {VK_CANCEL , 0 ,0x03 ,0x03 ,0x03 ,0x03 , 0x03 , 0x03 },
00262 {VK_ESCAPE , 0 ,0x1b ,0x1b ,0x1b ,0x1b , 0x1b , 0x1b },
00263 {VK_OEM_4 , KANALOK ,
'[' ,
'{' ,
WCH_SVS ,
WCH_OB , 0x1b , 0x1b },
00264 {VK_OEM_5 , KANALOK ,
'\\' ,
'|' ,
WCH_PS ,
WCH_PS , 0x1c , 0x1c },
00265 {VK_OEM_102 , KANALOK ,
'\\' ,
'_' ,
WCH_RO ,
WCH_RO , 0x1c , 0x1c },
00266 {VK_OEM_6 , KANALOK ,
']' ,
'}' ,
WCH_MU ,
WCH_CB , 0x1d , 0x1d },
00267 {VK_RETURN , 0 ,
'\r' ,
'\r' ,
'\r' ,
'\r' ,
'\n' ,
'\n' },
00268 {VK_SPACE , 0 ,
' ' ,
' ' ,
' ' ,
' ' , 0x20 , 0x20 },
00269 {0 , 0 ,0 ,0 ,0 ,0 , 0 , 0 }
00270 };
00271
00272 static ALLOC_SECTION_LDATA VK_TO_WCHARS8
aVkToWch8[] = {
00273
00274
00275 {
'2' , KANALOK ,
'2' ,
'"' ,
WCH_HU ,
WCH_HU , WCH_NONE , WCH_NONE , 0x00 , 0x00 },
00276 {
'6' , KANALOK ,
'6' ,
'&' ,
WCH_O ,
WCH_OO , WCH_NONE , WCH_NONE , 0x1e , 0x1e },
00277 {VK_OEM_MINUS , KANALOK ,
'-' ,
'=' ,
WCH_HO ,
WCH_HO , WCH_NONE , WCH_NONE , 0x1f , 0x1f },
00278 {0 , 0 ,0 ,0 ,0 ,0 , 0 , 0 , 0 , 0 }
00279 };
00280
00281
00282
00283
00284
00285 static ALLOC_SECTION_LDATA VK_TO_WCHARS4
aVkToWch1[] = {
00286
00287
00288 { VK_NUMPAD0 , 0 ,
'0' , WCH_NONE ,
'0' ,WCH_NONE},
00289 { VK_NUMPAD1 , 0 ,
'1' , WCH_NONE ,
'1' ,WCH_NONE},
00290 { VK_NUMPAD2 , 0 ,
'2' , WCH_NONE ,
'2' ,WCH_NONE},
00291 { VK_NUMPAD3 , 0 ,
'3' , WCH_NONE ,
'3' ,WCH_NONE},
00292 { VK_NUMPAD4 , 0 ,
'4' , WCH_NONE ,
'4' ,WCH_NONE},
00293 { VK_NUMPAD5 , 0 ,
'5' , WCH_NONE ,
'5' ,WCH_NONE},
00294 { VK_NUMPAD6 , 0 ,
'6' , WCH_NONE ,
'6' ,WCH_NONE},
00295 { VK_NUMPAD7 , 0 ,
'7' , WCH_NONE ,
'7' ,WCH_NONE},
00296 { VK_NUMPAD8 , 0 ,
'8' , WCH_NONE ,
'8' ,WCH_NONE},
00297 { VK_NUMPAD9 , 0 ,
'9' , WCH_NONE ,
'9' ,WCH_NONE},
00298 { 0 , 0 ,
'\0' , 0 , 0 ,0 }
00299 };
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314 static ALLOC_SECTION_LDATA VK_TO_WCHAR_TABLE
aVkToWcharTable[] = {
00315 { (PVK_TO_WCHARS1)
aVkToWch6, 6,
sizeof(
aVkToWch6[0]) },
00316 { (PVK_TO_WCHARS1)
aVkToWch8, 8,
sizeof(
aVkToWch8[0]) },
00317 { (PVK_TO_WCHARS1)
aVkToWch4, 4,
sizeof(
aVkToWch4[0]) },
00318 { (PVK_TO_WCHARS1)
aVkToWch1, 4,
sizeof(
aVkToWch1[0]) },
00319 {
NULL, 0, 0 }
00320 };
00321
00322
00323
00324
00325
00326
00327
00328
00329
00330
00331 static ALLOC_SECTION_LDATA VSC_LPWSTR
aKeyNames[] = {
00332 0x01,
L"Esc",
00333 0x0e,
L"Backspace",
00334 0x0f,
L"Tab",
00335 0x1c,
L"Enter",
00336 0x1d,
L"Ctrl",
00337 0x2a,
L"Shift",
00338 0x36,
L"Right Shift",
00339 0x37,
L"Num *",
00340 0x38,
L"Alt",
00341 0x39,
L"Space",
00342 0x3a,
L"Caps Lock",
00343 0x3b,
L"F1",
00344 0x3c,
L"F2",
00345 0x3d,
L"F3",
00346 0x3e,
L"F4",
00347 0x3f,
L"F5",
00348 0x40,
L"F6",
00349 0x41,
L"F7",
00350 0x42,
L"F8",
00351 0x43,
L"F9",
00352 0x44,
L"F10",
00353 0x45,
L"Pause",
00354 0x46,
L"Scroll Lock",
00355 0x47,
L"Num 7",
00356 0x48,
L"Num 8",
00357 0x49,
L"Num 9",
00358 0x4a,
L"Num -",
00359 0x4b,
L"Num 4",
00360 0x4c,
L"Num 5",
00361 0x4d,
L"Num 6",
00362 0x4e,
L"Num +",
00363 0x4f,
L"Num 1",
00364 0x50,
L"Num 2",
00365 0x51,
L"Num 3",
00366 0x52,
L"Num 0",
00367 0x53,
L"Num Del",
00368 0x54,
L"Sys Req",
00369 0x57,
L"F11",
00370 0x58,
L"F12",
00371 0x70, (LPWSTR)
SZ_KEY_NAME_KATAKANA,
00372 0x77, (LPWSTR)
SZ_KEY_NAME_HANKAKU_ZENKAKU,
00373 0x79, (LPWSTR)
SZ_KEY_NAME_HENKAN,
00374 0x7b, (LPWSTR)
SZ_KEY_NAME_MUHENKAN,
00375 0 ,
NULL
00376 };
00377
00378 static ALLOC_SECTION_LDATA VSC_LPWSTR
aKeyNamesExt[] = {
00379 0x1c,
L"Num Enter",
00380 0x1d,
L"Right Control",
00381 0x35,
L"Num /",
00382 0x37,
L"Prnt Scrn",
00383 0x38, (LPWSTR)
SZ_KEY_NAME_HIRAGANA,
00384 0x45,
L"Num Lock",
00385 0x46,
L"Break",
00386 0x47,
L"Home",
00387 0x48,
L"Up",
00388 0x49,
L"Page Up",
00389 0x4b,
L"Left",
00390 0x4d,
L"Right",
00391 0x4f,
L"End",
00392 0x50,
L"Down",
00393 0x51,
L"Page Down",
00394 0x52,
L"Insert",
00395 0x53,
L"Delete",
00396 0x54,
L"<00>",
00397 0x56,
L"Help",
00398 0x5B,
L"Left Windows",
00399 0x5C,
L"Right Windows",
00400 0x5D,
L"Application",
00401 0 ,
NULL
00402 };
00403
00404 static ALLOC_SECTION_LDATA KBDTABLES
KbdTables = {
00405
00406
00407
00408 &
CharModifiers,
00409
00410
00411
00412
00413
aVkToWcharTable,
00414
00415
00416
00417
00418
NULL,
00419
00420
00421
00422
00423
aKeyNames,
00424
aKeyNamesExt,
00425
NULL,
00426
00427
00428
00429
00430
ausVK,
00431
sizeof(
ausVK) /
sizeof(
ausVK[0]),
00432
aE0VscToVk,
00433
aE1VscToVk,
00434
00435
00436
00437
00438 0
00439 };
00440
00441 PKBDTABLES
KbdLayerDescriptor(VOID)
00442 {
00443
return &
KbdTables;
00444 }
00445
00446
00447
00448
00449
00450
00451 static ALLOC_SECTION_LDATA VK_F
VkToFuncTable_IBM002[] = {
00452 {
00453 VK_DBE_KATAKANA,
00454 KBDNLS_TYPE_TOGGLE,
00455 KBDNLS_INDEX_NORMAL,
00456 0x04,
00457 {
00458 {KBDNLS_KATAKANA,0},
00459 {KBDNLS_SEND_PARAM_VK,VK_KANJI},
00460 {KBDNLS_SEND_PARAM_VK,VK_KANA},
00461 {KBDNLS_NOEVENT,0},
00462 {KBDNLS_CODEINPUT,0},
00463 {KBDNLS_CODEINPUT,0},
00464 {KBDNLS_CODEINPUT,0},
00465 {KBDNLS_CODEINPUT,0}
00466 },
00467 {
00468 {KBDNLS_SEND_PARAM_VK,VK_KANA},
00469 {KBDNLS_NOEVENT,0},
00470 {KBDNLS_SEND_PARAM_VK,VK_KANA},
00471 {KBDNLS_NOEVENT,0},
00472 {KBDNLS_NOEVENT,0},
00473 {KBDNLS_NOEVENT,0},
00474 {KBDNLS_NOEVENT,0},
00475 {KBDNLS_NOEVENT,0}
00476 }
00477 },
00478 {
00479 VK_DBE_ALPHANUMERIC,
00480 KBDNLS_TYPE_TOGGLE,
00481 KBDNLS_INDEX_NORMAL,
00482 0xFE,
00483 {
00484 {KBDNLS_ALPHANUM,0},
00485 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL},
00486 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL},
00487 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL},
00488 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL},
00489 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL},
00490 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL},
00491 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL}
00492 },
00493 {
00494 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL},
00495 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL},
00496 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL},
00497 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL},
00498 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL},
00499 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL},
00500 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL},
00501 {KBDNLS_SEND_PARAM_VK,VK_CAPITAL}
00502 }
00503 },
00504 {
00505 VK_DBE_HIRAGANA,
00506 KBDNLS_TYPE_NORMAL,
00507 KBDNLS_INDEX_NORMAL,
00508 0,
00509 {
00510 {KBDNLS_HIRAGANA,0},
00511 {KBDNLS_HIRAGANA,0},
00512 {KBDNLS_HIRAGANA,0},
00513 {KBDNLS_HIRAGANA,0},
00514 {KBDNLS_ROMAN,0},
00515 {KBDNLS_ROMAN,0},
00516 {KBDNLS_ROMAN,0},
00517 {KBDNLS_ROMAN,0}
00518 },
00519 {
00520 {KBDNLS_NULL,0},
00521 {KBDNLS_NULL,0},
00522 {KBDNLS_NULL,0},
00523 {KBDNLS_NULL,0},
00524 {KBDNLS_NULL,0},
00525 {KBDNLS_NULL,0},
00526 {KBDNLS_NULL,0},
00527 {KBDNLS_NULL,0}
00528 }
00529 },
00530 {
00531 VK_DBE_SBCSCHAR,
00532 KBDNLS_TYPE_NORMAL,
00533 KBDNLS_INDEX_NORMAL,
00534 0,
00535 {
00536 {KBDNLS_SBCSDBCS,0},
00537 {KBDNLS_SBCSDBCS,0},
00538 {KBDNLS_SBCSDBCS,0},
00539 {KBDNLS_SBCSDBCS,0},
00540 {KBDNLS_NOEVENT,0},
00541 {KBDNLS_NOEVENT,0},
00542 {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERIMECONFIGMODE},
00543 {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERIMECONFIGMODE}
00544 },
00545 {
00546 {KBDNLS_NULL,0},
00547 {KBDNLS_NULL,0},
00548 {KBDNLS_NULL,0},
00549 {KBDNLS_NULL,0},
00550 {KBDNLS_NULL,0},
00551 {KBDNLS_NULL,0},
00552 {KBDNLS_NULL,0},
00553 {KBDNLS_NULL,0}
00554 }
00555 },
00556 {
00557 VK_NONCONVERT,
00558 KBDNLS_TYPE_NORMAL,
00559 KBDNLS_INDEX_NORMAL,
00560 0,
00561 {
00562 {KBDNLS_SEND_BASE_VK,0},
00563 {KBDNLS_NOEVENT,0},
00564 {KBDNLS_NOEVENT,0},
00565 {KBDNLS_NOEVENT,0},
00566 {KBDNLS_NOEVENT,0},
00567 {KBDNLS_NOEVENT,0},
00568 {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERWORDREGISTERMODE},
00569 {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERWORDREGISTERMODE}
00570 },
00571 {
00572 {KBDNLS_NULL,0},
00573 {KBDNLS_NULL,0},
00574 {KBDNLS_NULL,0},
00575 {KBDNLS_NULL,0},
00576 {KBDNLS_NULL,0},
00577 {KBDNLS_NULL,0},
00578 {KBDNLS_NULL,0},
00579 {KBDNLS_NULL,0}
00580 }
00581 }
00582 };
00583
00584
00585
00586
00587
00588
00589 static ALLOC_SECTION_LDATA KBDNLSTABLES
KbdNlsTables = {
00590 0,
00591 0,
00592 5,
00593
VkToFuncTable_IBM002,
00594 0,
00595
NULL
00596 };
00597
00598 PKBDNLSTABLES
KbdNlsLayerDescriptor(VOID)
00599 {
00600
return &
KbdNlsTables;
00601 }
Generated on Sat May 15 19:40:32 2004 for test by
1.3.7