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