kbdnecat.c
Go to the documentation of this file.00001 
#if defined(_PC98_)
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
#else // defined(_PC98_)
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
#endif // defined(_PC98_)
00018 
00019 
#include <windows.h>
00020 
#include <ime.h>
00021 
#include "vkoem.h"
00022 
#include "kbdjpn.h"
00023 
#if defined(_PC98_)
00024 
#include "kbdnecAT.h"
00025 
#else // defined(_PC98_)
00026 
#include "kbd106.h"
00027 
#endif // defined(_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(_PC98_)
00038 
00039 
00040 
00041 
#else // defined(_PC98_)
00042 
00043 
00044 
00045 
#endif // defined(_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     T28,
00054 
00055     
00056 
00057 
00058     T29 | KBDSPECIAL,
00059 
00060               T2A, T2B, T2C, T2D, T2E, T2F,
00061     T30, T31, T32, T33, T34, T35,
00062 
00063     
00064 
00065 
00066     T36 | KBDEXT,
00067 
00068 
#if defined(_PC98_)
00069 
    T37,
00070 
#else // defined(_PC98_)
00071 
    
00072 
00073 
00074     T37 | KBDMULTIVK,
00075 
#endif // defined(_PC98_)
00076 
00077     T38, T39,
00078 
00079 
#if defined(_PC98_)
00080 
    T3A,
00081 
#else // defined(_PC98_)
00082 
    
00083 
00084 
00085     T3A | KBDSPECIAL,
00086 
#endif // defined(_PC98_)
00087 
00088                    T3B, T3C, T3D, T3E, T3F,
00089     T40, T41, T42, T43, T44,
00090 
00091     
00092 
00093 
00094 
00095 
00096     T45 | KBDEXT | KBDMULTIVK,
00097 
00098 
#if defined(_PC98_)
00099 
    T46,
00100 
#else // defined(_PC98_)
00101 
    T46 | KBDMULTIVK,
00102 
#endif // defined(_PC98_)
00103 
00104     
00105 
00106 
00107 
00108 
00109     T47 | KBDNUMPAD | KBDSPECIAL,   
00110     T48 | KBDNUMPAD | KBDSPECIAL,   
00111     T49 | KBDNUMPAD | KBDSPECIAL,   
00112     T4A,
00113     T4B | KBDNUMPAD | KBDSPECIAL,   
00114     T4C | KBDNUMPAD | KBDSPECIAL,   
00115     T4D | KBDNUMPAD | KBDSPECIAL,   
00116     T4E,
00117     T4F | KBDNUMPAD | KBDSPECIAL,   
00118     T50 | KBDNUMPAD | KBDSPECIAL,   
00119     T51 | KBDNUMPAD | KBDSPECIAL,   
00120     T52 | KBDNUMPAD | KBDSPECIAL,   
00121     T53 | KBDNUMPAD | KBDSPECIAL,   
00122 
00123 
#if defined(_PC98_)
00124 
    T54, T55, T56, T57, T58,
00125     T59 | KBDSPECIAL,               
00126                                   T5A, T5B,
00127 
#else // defined(_PC98_)
00128 
    T54, T55, T56, T57, T58, T59, T5A, T5B,
00129 
#endif // defined(_PC98_)
00130 
00131     T5C, T5D, T5E, T5F, T60, T61, T62, T63,
00132     T64, T65, T66, T67, T68, T69, T6A, T6B,
00133     T6C, T6D, T6E, T6F,
00134 
00135     
00136 
00137 
00138 
#if defined(_PC98_)
00139 
    T70,
00140 
#else // defined(_PC98_)
00141 
    T70 | KBDSPECIAL,
00142 
#endif // defined(_PC98_)
00143 
00144                              T71, T72, T73,
00145     T74, T75, T76, T77, T78,
00146 
00147     
00148 
00149 
00150     T79 | KBDSPECIAL,
00151 
00152                                   T7A,
00153 
00154     
00155 
00156 
00157     T7B | KBDSPECIAL,
00158 
00159     T7C, T7D, T7E, T7F
00160 };
00161 
00162 static ALLOC_SECTION_LDATA VSC_VK 
aE0VscToVk[] = {
00163         { 0x1C, X1C | KBDEXT              },  
00164         { 0x1D, X1D | KBDEXT              },  
00165         { 0x35, X35 | KBDEXT              },  
00166         { 0x37, X37 | KBDEXT              },  
00167         { 0x38, X38 | KBDEXT              },  
00168         { 0x46, X46 | KBDEXT              },  
00169 
#if defined(_PC98_)
00170 
        { 0x47, X47 | KBDEXT | KBDSPECIAL },  
00171 
#else // defined(_PC98_)
00172 
        { 0x47, X47 | KBDEXT              },  
00173 
#endif // defined(_PC98_)
00174 
        { 0x48, X48 | KBDEXT              },  
00175         { 0x49, X49 | KBDEXT              },  
00176         { 0x4B, X4B | KBDEXT              },  
00177         { 0x4D, X4D | KBDEXT              },  
00178 
#if defined(_PC98_)
00179 
        { 0x4F, X4F | KBDEXT | KBDSPECIAL },  
00180 
#else // defined(_PC98_)
00181 
        { 0x4F, X4F | KBDEXT              },  
00182 
#endif // defined(_PC98_)
00183 
        { 0x50, X50 | KBDEXT              },  
00184         { 0x51, X51 | KBDEXT              },  
00185         { 0x52, X52 | KBDEXT              },  
00186         { 0x53, X53 | KBDEXT              },  
00187         { 0x5B, X5B | KBDEXT              },  
00188         { 0x5C, X5C | KBDEXT              },  
00189         { 0x5D, X5D | KBDEXT              },  
00190         { 0,      0                       }
00191 };
00192 
00193 static ALLOC_SECTION_LDATA VSC_VK 
aE1VscToVk[] = {
00194         { 0x1D, Y1D                       },  
00195         { 0   ,   0                       }
00196 };
00197 
00198 
00199 
00200 
00201 
00202 
00203 
00204 
00205 
00206 
00207 
00208 
00209 static ALLOC_SECTION_LDATA VK_TO_BIT 
aVkToBits[] = {
00210     { VK_SHIFT,   KBDSHIFT },
00211     { VK_CONTROL, KBDCTRL  },
00212     { VK_MENU,    KBDALT   },
00213     { VK_KANA,    KBDKANA  },
00214     { 0,          0        }
00215 };
00216 
00217 
00218 
00219 
00220 
00221 
00222 
00223 
00224 static ALLOC_SECTION_LDATA MODIFIERS 
CharModifiers = {
00225     &
aVkToBits[0],
00226     11,
00227     {
00228     
00229     
00230         0,            
00231         1,            
00232         4,            
00233         6,            
00234         SHFT_INVALID, 
00235         SHFT_INVALID, 
00236         SHFT_INVALID, 
00237         SHFT_INVALID, 
00238         2,            
00239         3,            
00240         5,            
00241         7             
00242     }
00243 };
00244 
00245 
00246 
00247 
00248 
00249 
00250 
00251 
00252 
00253 
00254 
00255 
00256 
00257 
00258 
00259 
00260 
00261 
00262 
00263 
00264 
00265 
00266 
00267 
00268 
00269 
00270 static ALLOC_SECTION_LDATA VK_TO_WCHARS4 
aVkToWch4[] = {
00271     
00272     
00273 
#if defined(_PC98_)
00274 
    {
'0'          ,          KANALOK ,
'0'       ,
'0'       ,
WCH_WA  ,
WCH_WO  },
00275 
#else // defined(_PC98_)
00276 
    {
'0'          ,          KANALOK ,
'0'       ,WCH_NONE  ,
WCH_WA  ,
WCH_WO  },
00277 
#endif // defined(_PC98_)
00278 
    {
'1'          ,          KANALOK ,
'1'       ,
'!'       ,
WCH_NU  ,
WCH_NU  },
00279     {
'3'          ,          KANALOK ,
'3'       ,
'#'       ,
WCH_A   ,
WCH_AA  },
00280     {
'4'          ,          KANALOK ,
'4'       ,
'$'       ,
WCH_U   ,
WCH_UU  },
00281     {
'5'          ,          KANALOK ,
'5'       ,
'%'       ,
WCH_E   ,
WCH_EE  },
00282     {
'7'          ,          KANALOK ,
'7'       ,0x27      ,
WCH_YA  ,
WCH_YAA },
00283     {
'8'          ,          KANALOK ,
'8'       ,
'('       ,
WCH_YU  ,
WCH_YUU },
00284     {
'9'          ,          KANALOK ,
'9'       ,
')'       ,
WCH_YO  ,
WCH_YOO },
00285     {
'A'          , CAPLOK | KANALOK ,
'a'       ,
'A'       ,
WCH_TI  ,
WCH_TI  },
00286     {
'B'          , CAPLOK | KANALOK ,
'b'       ,
'B'       ,
WCH_KO  ,
WCH_KO  },
00287     {
'C'          , CAPLOK | KANALOK ,
'c'       ,
'C'       ,
WCH_SO  ,
WCH_SO  },
00288     {
'D'          , CAPLOK | KANALOK ,
'd'       ,
'D'       ,
WCH_SI  ,
WCH_SI  },
00289     {
'E'          , CAPLOK | KANALOK ,
'e'       ,
'E'       ,
WCH_I   ,
WCH_II  },
00290     {
'F'          , CAPLOK | KANALOK ,
'f'       ,
'F'       ,
WCH_HA  ,
WCH_HA  },
00291     {
'G'          , CAPLOK | KANALOK ,
'g'       ,
'G'       ,
WCH_KI  ,
WCH_KI  },
00292     {
'H'          , CAPLOK | KANALOK ,
'h'       ,
'H'       ,
WCH_KU  ,
WCH_KU  },
00293     {
'I'          , CAPLOK | KANALOK ,
'i'       ,
'I'       ,
WCH_NI  ,
WCH_NI  },
00294     {
'J'          , CAPLOK | KANALOK ,
'j'       ,
'J'       ,
WCH_MA  ,
WCH_MA  },
00295     {
'K'          , CAPLOK | KANALOK ,
'k'       ,
'K'       ,
WCH_NO  ,
WCH_NO  },
00296     {
'L'          , CAPLOK | KANALOK ,
'l'       ,
'L'       ,
WCH_RI  ,
WCH_RI  },
00297     {
'M'          , CAPLOK | KANALOK ,
'm'       ,
'M'       ,
WCH_MO  ,
WCH_MO  },
00298     {
'N'          , CAPLOK | KANALOK ,
'n'       ,
'N'       ,
WCH_MI  ,
WCH_MI  },
00299     {
'O'          , CAPLOK | KANALOK ,
'o'       ,
'O'       ,
WCH_RA  ,
WCH_RA  },
00300     {
'P'          , CAPLOK | KANALOK ,
'p'       ,
'P'       ,
WCH_SE  ,
WCH_SE  },
00301     {
'Q'          , CAPLOK | KANALOK ,
'q'       ,
'Q'       ,
WCH_TA  ,
WCH_TA  },
00302     {
'R'          , CAPLOK | KANALOK ,
'r'       ,
'R'       ,
WCH_SU  ,
WCH_SU  },
00303     {
'S'          , CAPLOK | KANALOK ,
's'       ,
'S'       ,
WCH_TO  ,
WCH_TO  },
00304     {
'T'          , CAPLOK | KANALOK ,
't'       ,
'T'       ,
WCH_KA  ,
WCH_KA  },
00305     {
'U'          , CAPLOK | KANALOK ,
'u'       ,
'U'       ,
WCH_NA  ,
WCH_NA  },
00306     {
'V'          , CAPLOK | KANALOK ,
'v'       ,
'V'       ,
WCH_HI  ,
WCH_HI  },
00307     {
'W'          , CAPLOK | KANALOK ,
'w'       ,
'W'       ,
WCH_TE  ,
WCH_TE  },
00308     {
'X'          , CAPLOK | KANALOK ,
'x'       ,
'X'       ,
WCH_SA  ,
WCH_SA  },
00309     {
'Y'          , CAPLOK | KANALOK ,
'y'       ,
'Y'       ,
WCH_NN  ,
WCH_NN  },
00310     {
'Z'          , CAPLOK | KANALOK ,
'z'       ,
'Z'       ,
WCH_TU  ,
WCH_TUU },
00311     {VK_OEM_1     ,          KANALOK ,
':'       ,
'*'       ,
WCH_KE  ,
WCH_KE  },
00312     {VK_OEM_2     ,          KANALOK ,
'/'       ,
'?'       ,
WCH_ME  ,
WCH_MD  },
00313 
#if defined(_PC98_)
00314 
#else // defined(_PC98_)
00315 
    {VK_OEM_3     ,          KANALOK ,
'@'       ,
'`'       ,
WCH_VS  ,
WCH_VS  },
00316     {VK_OEM_7     ,          KANALOK ,
'^'       ,
'~'       ,
WCH_HE  ,
WCH_HE  },
00317     {VK_OEM_8     , 0                ,WCH_NONE  ,WCH_NONE  ,WCH_NONE,WCH_NONE},
00318 
#endif // defined(_PC98_)
00319 
    {VK_OEM_COMMA ,          KANALOK ,
','       ,
'<'       ,
WCH_NE  ,
WCH_IC  },
00320     {VK_OEM_PERIOD,          KANALOK ,
'.'       ,
'>'       ,
WCH_RU  ,
WCH_IP  },
00321     {VK_OEM_PLUS  ,          KANALOK ,
';'       ,
'+'       ,
WCH_RE  ,
WCH_RE  },
00322     {VK_TAB       , 0                ,
'\t'      ,
'\t'      ,
'\t'    ,
'\t'    },
00323     {VK_ADD       , 0                ,
'+'       ,
'+'       ,
'+'     ,
'+'     },
00324     {VK_DECIMAL   , 0                ,
'.'       ,
'.'       ,
'.'     ,
'.'     },
00325     {VK_DIVIDE    , 0                ,
'/'       ,
'/'       ,
'/'     ,
'/'     },
00326     {VK_MULTIPLY  , 0                ,
'*'       ,
'*'       ,
'*'     ,
'*'     },
00327     {VK_SUBTRACT  , 0                ,
'-'       ,
'-'       ,
'-'     ,
'-'     },
00328 
#if defined(_PC98_)
00329 
    {VK_SEPARATOR , 0                ,
','       ,
','       ,
','     ,
','     },
00330     {VK_OEM_NEC_EQUAL,    0          ,
'='       ,
'='       ,
'='     ,
'='     },
00331 
#endif // defined(_PC98_)
00332 
    {0            , 0                ,0         ,0         ,0       ,0       }
00333 };
00334 
00335 static ALLOC_SECTION_LDATA VK_TO_WCHARS6 
aVkToWch6[] = {
00336     
00337     
00338     {VK_BACK      , 0       ,
'\b'      ,
'\b'      ,
'\b'    ,
'\b'    , 0x7f      , 0x7f      },
00339     {VK_CANCEL    , 0       ,0x03      ,0x03      ,0x03    ,0x03    , 0x03      , 0x03      },
00340     {VK_ESCAPE    , 0       ,0x1b      ,0x1b      ,0x1b    ,0x1b    , 0x1b      , 0x1b      },
00341 
#if defined(_PC98_)
00342 
    {VK_OEM_3     , KANALOK ,
'@'       ,
'~'       ,
WCH_VS  ,
WCH_VS  , 0x00      , 0x00      },
00343     {VK_OEM_4     , KANALOK ,
'['       ,
'{'       ,
WCH_SVS ,
WCH_OB  , 0x1b      , 0x1b      },
00344     {VK_OEM_5     , KANALOK ,
'\\'      ,
'|'       ,
WCH_PS  ,
WCH_PS  , 0x1c      , 0x1c      },
00345     {VK_OEM_6     , KANALOK ,
']'       ,
'}'       ,
WCH_MU  ,
WCH_CB  , 0x1d      , 0x1d      },
00346     {VK_OEM_7     , KANALOK ,
'^'       ,
'`'       ,
WCH_HE  ,
WCH_HE  , 0x1e      , 0x1e      },
00347     {VK_OEM_8     , KANALOK ,WCH_NONE  ,
'_'       ,
WCH_RO  ,
WCH_RO  , 0x1f      , 0x1f      },
00348 
#else // defined(_PC98_)
00349 
    {VK_OEM_4     , KANALOK ,
'['       ,
'{'       ,
WCH_SVS ,
WCH_OB  , 0x1b      , 0x1b      },
00350     {VK_OEM_5     , KANALOK ,
'\\'      ,
'|'       ,
WCH_PS  ,
WCH_PS  , 0x1c      , 0x1c      },
00351     {VK_OEM_102   , KANALOK ,
'\\'      ,
'_'       ,
WCH_RO  ,
WCH_RO  , 0x1c      , 0x1c      },
00352     {VK_OEM_6     , KANALOK ,
']'       ,
'}'       ,
WCH_MU  ,
WCH_CB  , 0x1d      , 0x1d      },
00353 
#endif // defined(_PC98_)
00354 
    {VK_RETURN    , 0       ,
'\r'      ,
'\r'      ,
'\r'    ,
'\r'    , 
'\n'      , 
'\n'      },
00355     {VK_SPACE     , 0       ,
' '       ,
' '       ,
' '     ,
' '     , 0x20      , 0x20      },
00356     {0            , 0       ,0         ,0         ,0       ,0       , 0         , 0         }
00357 };
00358 
00359 static ALLOC_SECTION_LDATA VK_TO_WCHARS8 
aVkToWch8[] = {
00360     
00361     
00362     {
'2'          , KANALOK ,
'2'       ,
'"'       ,
WCH_HU  ,
WCH_HU  , WCH_NONE  , WCH_NONE  , 0x00      , 0x00      },
00363     {
'6'          , KANALOK ,
'6'       ,
'&'       ,
WCH_O   ,
WCH_OO  , WCH_NONE  , WCH_NONE  , 0x1e      , 0x1e      },
00364     {VK_OEM_MINUS , KANALOK ,
'-'       ,
'='       ,
WCH_HO  ,
WCH_HO  , WCH_NONE  , WCH_NONE  , 0x1f      , 0x1f      },
00365     {0            , 0       ,0         ,0         ,0       ,0       , 0         , 0         , 0         , 0         }
00366 };
00367 
00368 
00369 
00370 
00371 
00372 static ALLOC_SECTION_LDATA VK_TO_WCHARS4 
aVkToWch1[] = {
00373     
00374     
00375     { VK_NUMPAD0   , 0      ,  
'0'    , WCH_NONE ,   
'0'  ,WCH_NONE},
00376     { VK_NUMPAD1   , 0      ,  
'1'    , WCH_NONE ,   
'1'  ,WCH_NONE},
00377     { VK_NUMPAD2   , 0      ,  
'2'    , WCH_NONE ,   
'2'  ,WCH_NONE},
00378     { VK_NUMPAD3   , 0      ,  
'3'    , WCH_NONE ,   
'3'  ,WCH_NONE},
00379     { VK_NUMPAD4   , 0      ,  
'4'    , WCH_NONE ,   
'4'  ,WCH_NONE},
00380     { VK_NUMPAD5   , 0      ,  
'5'    , WCH_NONE ,   
'5'  ,WCH_NONE},
00381     { VK_NUMPAD6   , 0      ,  
'6'    , WCH_NONE ,   
'6'  ,WCH_NONE},
00382     { VK_NUMPAD7   , 0      ,  
'7'    , WCH_NONE ,   
'7'  ,WCH_NONE},
00383     { VK_NUMPAD8   , 0      ,  
'8'    , WCH_NONE ,   
'8'  ,WCH_NONE},
00384     { VK_NUMPAD9   , 0      ,  
'9'    , WCH_NONE ,   
'9'  ,WCH_NONE},
00385     { 0            , 0      ,  
'\0'   , 0        ,   0    ,0       }   
00386 };
00387 
00388 
00389 
00390 
00391 
00392 
00393 
00394 
00395 
00396 
00397 
00398 
00399 
00400 
00401 static ALLOC_SECTION_LDATA VK_TO_WCHAR_TABLE 
aVkToWcharTable[] = {
00402     {  (PVK_TO_WCHARS1)
aVkToWch6, 6, 
sizeof(
aVkToWch6[0]) },
00403     {  (PVK_TO_WCHARS1)
aVkToWch8, 8, 
sizeof(
aVkToWch8[0]) },
00404     {  (PVK_TO_WCHARS1)
aVkToWch4, 4, 
sizeof(
aVkToWch4[0]) },
00405     {  (PVK_TO_WCHARS1)
aVkToWch1, 4, 
sizeof(
aVkToWch1[0]) },  
00406     {                       
NULL, 0, 0                    }
00407 };
00408 
00409 
00410 
00411 
00412 
00413 
00414 
00415 
00416 
00417 
00418 static ALLOC_SECTION_LDATA VSC_LPWSTR 
aKeyNames[] = {
00419 
#if defined(_PC98_)
00420 
    0x01,    
L"ESC",            
00421     0x0e,    
L"BS",             
00422     0x0f,    
L"TAB",            
00423     0x1c,    
L"RETURN",         
00424     0x1d,    
L"CTRL",           
00425     0x29,    (LPWSTR)
SZ_KEY_NAME_HANKAKU_ZENKAKU,  
00426     0x2a,    
L"SHIFT",          
00427     0x36,    
L"SHIFT",          
00428 
#else // defined(_PC98_)
00429 
    0x01,    
L"Esc",
00430     0x0e,    
L"Backspace",
00431     0x0f,    
L"Tab",
00432     0x1c,    
L"Enter",
00433     0x1d,    
L"Ctrl",
00434     0x29,    (LPWSTR)
SZ_KEY_NAME_HANKAKU_ZENKAKU,  
00435     0x2a,    
L"Shift",
00436     0x36,    
L"Right Shift",
00437 
#endif // defined(_PC98_)
00438 
    0x37,    
L"Num *",
00439 
#if defined(_PC98_)
00440 
    0x38,    
L"GRPH",                   
00441     0x39,    
L"SPACE",                  
00442     0x3a,    
L"CAPS",                   
00443     0x3b,    (LPWSTR)
SZ_KEY_NAME_F1,    
00444     0x3c,    (LPWSTR)
SZ_KEY_NAME_F2,    
00445     0x3d,    (LPWSTR)
SZ_KEY_NAME_F3,    
00446     0x3e,    (LPWSTR)
SZ_KEY_NAME_F4,    
00447     0x3f,    (LPWSTR)
SZ_KEY_NAME_F5,    
00448     0x40,    (LPWSTR)
SZ_KEY_NAME_F6,    
00449     0x41,    (LPWSTR)
SZ_KEY_NAME_F7,    
00450     0x42,    (LPWSTR)
SZ_KEY_NAME_F8,    
00451     0x43,    (LPWSTR)
SZ_KEY_NAME_F9,    
00452     0x44,    (LPWSTR)
SZ_KEY_NAME_F10,   
00453 
#else // defined(_PC98_)
00454 
    0x38,    
L"Alt",
00455     0x39,    
L"Space",
00456     0x3a,    
L"Caps Lock",
00457     0x3b,    
L"F1",
00458     0x3c,    
L"F2",
00459     0x3d,    
L"F3",
00460     0x3e,    
L"F4",
00461     0x3f,    
L"F5",
00462     0x40,    
L"F6",
00463     0x41,    
L"F7",
00464     0x42,    
L"F8",
00465     0x43,    
L"F9",
00466     0x44,    
L"F10",
00467 
#endif // defined(_PC98_)
00468 
    0x45,    
L"Pause",
00469     0x46,    
L"Scroll Lock",
00470     0x47,    
L"Num 7",
00471     0x48,    
L"Num 8",
00472     0x49,    
L"Num 9",
00473     0x4a,    
L"Num -",
00474     0x4b,    
L"Num 4",
00475     0x4c,    
L"Num 5",
00476     0x4d,    
L"Num 6",
00477     0x4e,    
L"Num +",
00478     0x4f,    
L"Num 1",
00479     0x50,    
L"Num 2",
00480     0x51,    
L"Num 3",
00481     0x52,    
L"Num 0",
00482 
#if defined(_PC98_)
00483 
    0x53,    
L"Num .",
00484 
#else // defined(_PC98_)
00485 
    0x53,    
L"Num Del",
00486 
#endif // defined(_PC98_)
00487 
    0x54,    
L"Sys Req",
00488 
#if defined(_PC98_)
00489 
00490     0x57,    (LPWSTR)
SZ_KEY_NAME_F11,     
00491     0x58,    (LPWSTR)
SZ_KEY_NAME_F12,     
00492     0x59,    
L"Num =",
00493 
00494     0x5C,    
L"Num ,",
00495     0x5D,    (LPWSTR)
SZ_KEY_NAME_F13,     
00496     0x5E,    (LPWSTR)
SZ_KEY_NAME_F14,     
00497     0x5F,    (LPWSTR)
SZ_KEY_NAME_F15,     
00498     0x70,    (LPWSTR)
SZ_KEY_NAME_KANA,    
00499     0x79,    
L"XFER",                     
00500     0x7b,    
L"NFER",                     
00501 
#else // defined(_PC98_)
00502 
    0x57,    
L"F11",
00503     0x58,    
L"F12",
00504     0x70,    (LPWSTR)
SZ_KEY_NAME_HIRAGANA,
00505     0x79,    (LPWSTR)
SZ_KEY_NAME_HENKAN,
00506     0x7b,    (LPWSTR)
SZ_KEY_NAME_MUHENKAN,
00507     0x7C,    
L"F13",
00508 
#endif // defined(_PC98_)
00509 
    0   ,    
NULL
00510 };
00511 
00512 static ALLOC_SECTION_LDATA VSC_LPWSTR 
aKeyNamesExt[] = {
00513 
#if defined(_PC98_)
00514 
    0x1c,    
L"Num Enter",
00515     0x35,    
L"Num /",
00516     0x37,    
L"COPY",                   
00517     0x45,    
L"Num Lock",
00518     0x46,    
L"STOP",                   
00519     0x47,    
L"CLR",                    
00520     0x48,    
L"UP",                     
00521     0x49,    
L"ROLL DOWN",              
00522     0x4b,    
L"LEFT",                   
00523     0x4d,    
L"RIGHT",                  
00524     0x4f,    
L"HELP",                   
00525     0x50,    
L"DOWN",                   
00526     0x51,    
L"ROLL UP",                
00527     0x52,    
L"INS",                    
00528     0x53,    
L"DEL",                    
00529     0x54,    
L"<00>",
00530     0x56,    
L"HELP",                   
00531 
00532 
#else // defined(_PC98_)
00533 
    0x1c,    
L"Num Enter",
00534     0x1d,    
L"Right Control",
00535     0x35,    
L"Num /",
00536     0x37,    
L"Prnt Scrn",
00537     0x38,    
L"Right Alt",
00538     0x45,    
L"Num Lock",
00539     0x46,    
L"Break",
00540     0x47,    
L"Home",
00541     0x48,    
L"Up",
00542     0x49,    
L"Page Up",
00543     0x4b,    
L"Left",
00544     0x4d,    
L"Right",
00545     0x4f,    
L"End",
00546     0x50,    
L"Down",
00547     0x51,    
L"Page Down",
00548     0x52,    
L"Insert",
00549     0x53,    
L"Delete",
00550 
#endif // defined(_PC98_)
00551 
    0x5B,    
L"Left Windows",
00552     0x5C,    
L"Right Windows",
00553     0x5D,    
L"Application",
00554     0   ,    
NULL
00555 };
00556 
00557 static ALLOC_SECTION_LDATA KBDTABLES 
KbdTables = {
00558     
00559 
00560 
00561     &
CharModifiers,
00562 
00563     
00564 
00565 
00566     
aVkToWcharTable,
00567 
00568     
00569 
00570 
00571     
NULL,
00572 
00573     
00574 
00575 
00576     
aKeyNames,
00577     
aKeyNamesExt,
00578     
NULL,
00579 
00580     
00581 
00582 
00583     
ausVK,
00584     
sizeof(
ausVK) / 
sizeof(
ausVK[0]),
00585     
aE0VscToVk,
00586     
aE1VscToVk,
00587 
00588     
00589 
00590 
00591     0
00592 };
00593 
00594 PKBDTABLES 
KbdLayerDescriptor(VOID)
00595 {
00596     
return &
KbdTables;
00597 }
00598 
00599 
00600 
00601 
00602 
00603 
00604 static ALLOC_SECTION_LDATA VK_F 
VkToFuncTable_106[] = {
00605     {
00606         VK_DBE_ALPHANUMERIC,  
00607         KBDNLS_TYPE_TOGGLE,   
00608         KBDNLS_INDEX_NORMAL,  
00609         0x02,   
00610         {                     
00611             {KBDNLS_ALPHANUM,0},               
00612             {KBDNLS_SEND_PARAM_VK,VK_CAPITAL}, 
00613             {KBDNLS_ALPHANUM,0},               
00614             {KBDNLS_ALPHANUM,0},               
00615             {KBDNLS_ALPHANUM,0},               
00616             {KBDNLS_ALPHANUM,0},               
00617             {KBDNLS_CODEINPUT,0},              
00618             {KBDNLS_CODEINPUT,0}               
00619         },
00620         {                     
00621             {KBDNLS_SEND_PARAM_VK,VK_CAPITAL}, 
00622             {KBDNLS_SEND_PARAM_VK,VK_CAPITAL}, 
00623             {KBDNLS_NOEVENT,0},                
00624             {KBDNLS_NOEVENT,0},                
00625             {KBDNLS_NOEVENT,0},                
00626             {KBDNLS_NOEVENT,0},                
00627             {KBDNLS_NOEVENT,0},                
00628             {KBDNLS_NOEVENT,0}                 
00629         }
00630     },
00631     {
00632         VK_DBE_HIRAGANA,     
00633         KBDNLS_TYPE_TOGGLE,  
00634         KBDNLS_INDEX_NORMAL, 
00635         0x08,  
00636         {                    
00637             {KBDNLS_HIRAGANA,0},             
00638             {KBDNLS_KATAKANA,0},             
00639             {KBDNLS_HIRAGANA,0},             
00640             {KBDNLS_SEND_PARAM_VK,VK_KANA},  
00641             {KBDNLS_ROMAN,0},                
00642             {KBDNLS_ROMAN,0},                
00643             {KBDNLS_ROMAN,0},                
00644             {KBDNLS_NOEVENT,0}               
00645         },
00646         {                    
00647             {KBDNLS_SEND_PARAM_VK,VK_KANA},  
00648             {KBDNLS_SEND_PARAM_VK,VK_KANA},  
00649             {KBDNLS_SEND_PARAM_VK,VK_KANA},  
00650             {KBDNLS_SEND_PARAM_VK,VK_KANA},  
00651             {KBDNLS_NOEVENT,0},              
00652             {KBDNLS_NOEVENT,0},              
00653             {KBDNLS_NOEVENT,0},              
00654             {KBDNLS_NOEVENT,0}               
00655         }
00656     },
00657     {
00658         VK_DBE_SBCSCHAR,     
00659         KBDNLS_TYPE_NORMAL,  
00660         KBDNLS_INDEX_NORMAL, 
00661         0x0,                 
00662         {                    
00663             {KBDNLS_SBCSDBCS,0},             
00664             {KBDNLS_SBCSDBCS,0},             
00665             {KBDNLS_SBCSDBCS,0},             
00666             {KBDNLS_SBCSDBCS,0},             
00667             {KBDNLS_SEND_PARAM_VK,VK_KANJI}, 
00668             {KBDNLS_SBCSDBCS,0},             
00669             {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERIMECONFIGMODE}, 
00670             {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERIMECONFIGMODE}  
00671         },
00672         {                    
00673             {KBDNLS_NULL,0},  
00674             {KBDNLS_NULL,0},  
00675             {KBDNLS_NULL,0},  
00676             {KBDNLS_NULL,0},  
00677             {KBDNLS_NULL,0},  
00678             {KBDNLS_NULL,0},  
00679             {KBDNLS_NULL,0},  
00680             {KBDNLS_NULL,0}   
00681         }
00682     },
00683     {
00684         VK_NONCONVERT,       
00685         KBDNLS_TYPE_NORMAL,  
00686         KBDNLS_INDEX_NORMAL, 
00687         0x0,                 
00688         {                    
00689             {KBDNLS_SEND_BASE_VK,0},         
00690             {KBDNLS_SEND_BASE_VK,0},         
00691             {KBDNLS_SEND_BASE_VK,0},         
00692             {KBDNLS_SEND_BASE_VK,0},         
00693             {KBDNLS_SEND_BASE_VK,0},         
00694             {KBDNLS_SEND_BASE_VK,0},         
00695             {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERWORDREGISTERMODE}, 
00696             {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERWORDREGISTERMODE}  
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 
00711 
#if defined(_PC98_)
00712 
static ALLOC_SECTION_LDATA VK_F VkToFuncTable_NEC[] = {
00713     {
00714         VK_DBE_SBCSCHAR,     
00715         KBDNLS_TYPE_NORMAL,  
00716         KBDNLS_INDEX_NORMAL, 
00717         0x0,                 
00718         {                    
00719             {KBDNLS_SBCSDBCS,0},             
00720             {KBDNLS_SBCSDBCS,0},             
00721             {KBDNLS_SBCSDBCS,0},             
00722             {KBDNLS_SBCSDBCS,0},             
00723             {KBDNLS_SBCSDBCS,0},             
00724 
00725             {KBDNLS_SBCSDBCS,0},             
00726             {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERIMECONFIGMODE}, 
00727             {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERIMECONFIGMODE}  
00728         },
00729         {                    
00730             {KBDNLS_NULL,0},  
00731             {KBDNLS_NULL,0},  
00732             {KBDNLS_NULL,0},  
00733             {KBDNLS_NULL,0},  
00734             {KBDNLS_NULL,0},  
00735             {KBDNLS_NULL,0},  
00736             {KBDNLS_NULL,0},  
00737             {KBDNLS_NULL,0}   
00738         }
00739     },
00740     {
00741         VK_NONCONVERT,       
00742         KBDNLS_TYPE_NORMAL,  
00743         KBDNLS_INDEX_NORMAL, 
00744         0x0,                 
00745         {                    
00746             {KBDNLS_SEND_BASE_VK,0},                             
00747             {KBDNLS_SEND_BASE_VK,0},                             
00748             {KBDNLS_SEND_PARAM_VK,VK_DBE_ALPHANUMERIC},          
00749             {KBDNLS_SBCSDBCS,0},                                 
00750             {KBDNLS_SEND_PARAM_VK,VK_DBE_KATAKANA},              
00751             {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERWORDREGISTERMODE}, 
00752             {KBDNLS_SEND_PARAM_VK,VK_DBE_NOCODEINPUT},           
00753             {KBDNLS_SEND_PARAM_VK,VK_DBE_FLUSHSTRING}            
00754         },
00755         {                     
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             {KBDNLS_NULL,0}   
00764         }
00765     },
00766     {
00767         VK_CONVERT,            
00768         KBDNLS_TYPE_NORMAL,  
00769         KBDNLS_INDEX_NORMAL, 
00770         0x0,                 
00771         {                    
00772             {KBDNLS_SEND_BASE_VK,0},                          
00773             {KBDNLS_SEND_BASE_VK,0},                          
00774             {KBDNLS_SEND_PARAM_VK,VK_KANJI},                  
00775             {KBDNLS_SEND_BASE_VK,0},                          
00776             {KBDNLS_ROMAN,0},                                 
00777             {KBDNLS_SEND_PARAM_VK,VK_DBE_ENTERIMECONFIGMODE}, 
00778             {KBDNLS_SEND_PARAM_VK,VK_DBE_CODEINPUT},          
00779             {KBDNLS_SEND_PARAM_VK,VK_DBE_HIRAGANA}            
00780         },
00781         {                     
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             {KBDNLS_NULL,0}   
00790         }
00791     },
00792     {
00793         VK_OEM_NEC_EQUAL,    
00794         KBDNLS_TYPE_NORMAL,  
00795         KBDNLS_INDEX_NORMAL, 
00796         0x0,                 
00797         {                    
00798             {KBDNLS_SEND_BASE_VK,0},                  
00799             {KBDNLS_SEND_BASE_VK,0},                  
00800             {KBDNLS_SEND_PARAM_VK,VK_SCROLL},         
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             {KBDNLS_SEND_BASE_VK,0}                   
00806         },
00807         {                     
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             {KBDNLS_NULL,0}   
00816         }
00817     },
00818     {
00819         VK_HOME,             
00820         KBDNLS_TYPE_NORMAL,  
00821         KBDNLS_INDEX_NORMAL, 
00822         0x0,                 
00823         {                    
00824             {KBDNLS_HOME_OR_CLEAR,0},         
00825             {KBDNLS_SEND_BASE_VK,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             {KBDNLS_HOME_OR_CLEAR,0}          
00832         },
00833         {                     
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             {KBDNLS_NULL,0}   
00842         }
00843     },
00844     {
00845         VK_END,              
00846         KBDNLS_TYPE_NORMAL,  
00847         KBDNLS_INDEX_NORMAL, 
00848         0x0,                 
00849         {                    
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             {KBDNLS_HELP_OR_END,0}          
00858         },
00859         {                     
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             {KBDNLS_NULL,0}   
00868         }
00869     },
00870     {
00871         VK_NUMPAD0,          
00872         KBDNLS_TYPE_NORMAL,  
00873         KBDNLS_INDEX_NORMAL, 
00874         0x0,                 
00875         {                    
00876             {KBDNLS_NUMPAD,0},         
00877             {KBDNLS_NUMPAD,0},         
00878             {KBDNLS_NUMPAD,0},         
00879             {KBDNLS_NUMPAD,0},         
00880             {KBDNLS_NUMPAD,0},         
00881             {KBDNLS_NUMPAD,0},         
00882             {KBDNLS_NUMPAD,0},         
00883             {KBDNLS_NUMPAD,0}          
00884         },
00885         {                     
00886             {KBDNLS_NULL,0},  
00887             {KBDNLS_NULL,0},  
00888             {KBDNLS_NULL,0},  
00889             {KBDNLS_NULL,0},  
00890             {KBDNLS_NULL,0},  
00891             {KBDNLS_NULL,0},  
00892             {KBDNLS_NULL,0},  
00893             {KBDNLS_NULL,0}   
00894         }
00895     },
00896     {
00897         VK_NUMPAD1,          
00898         KBDNLS_TYPE_NORMAL,  
00899         KBDNLS_INDEX_NORMAL, 
00900         0x0,                 
00901         {                    
00902             {KBDNLS_NUMPAD,0},         
00903             {KBDNLS_NUMPAD,0},         
00904             {KBDNLS_NUMPAD,0},         
00905             {KBDNLS_NUMPAD,0},         
00906             {KBDNLS_NUMPAD,0},         
00907             {KBDNLS_NUMPAD,0},         
00908             {KBDNLS_NUMPAD,0},         
00909             {KBDNLS_NUMPAD,0}          
00910         },
00911         {                     
00912             {KBDNLS_NULL,0},  
00913             {KBDNLS_NULL,0},  
00914             {KBDNLS_NULL,0},  
00915             {KBDNLS_NULL,0},  
00916             {KBDNLS_NULL,0},  
00917             {KBDNLS_NULL,0},  
00918             {KBDNLS_NULL,0},  
00919             {KBDNLS_NULL,0}   
00920         }
00921     },
00922     {
00923         VK_NUMPAD2,          
00924         KBDNLS_TYPE_NORMAL,  
00925         KBDNLS_INDEX_NORMAL, 
00926         0x0,                 
00927         {                    
00928             {KBDNLS_NUMPAD,0},         
00929             {KBDNLS_NUMPAD,0},         
00930             {KBDNLS_NUMPAD,0},         
00931             {KBDNLS_NUMPAD,0},         
00932             {KBDNLS_NUMPAD,0},         
00933             {KBDNLS_NUMPAD,0},         
00934             {KBDNLS_NUMPAD,0},         
00935             {KBDNLS_NUMPAD,0}          
00936         },
00937         {                     
00938             {KBDNLS_NULL,0},  
00939             {KBDNLS_NULL,0},  
00940             {KBDNLS_NULL,0},  
00941             {KBDNLS_NULL,0},  
00942             {KBDNLS_NULL,0},  
00943             {KBDNLS_NULL,0},  
00944             {KBDNLS_NULL,0},  
00945             {KBDNLS_NULL,0}   
00946         }
00947     },
00948     {
00949         VK_NUMPAD3,          
00950         KBDNLS_TYPE_NORMAL,  
00951         KBDNLS_INDEX_NORMAL, 
00952         0x0,                 
00953         {                    
00954             {KBDNLS_NUMPAD,0},         
00955             {KBDNLS_NUMPAD,0},         
00956             {KBDNLS_NUMPAD,0},         
00957             {KBDNLS_NUMPAD,0},         
00958             {KBDNLS_NUMPAD,0},         
00959             {KBDNLS_NUMPAD,0},         
00960             {KBDNLS_NUMPAD,0},         
00961             {KBDNLS_NUMPAD,0}          
00962         },
00963         {                     
00964             {KBDNLS_NULL,0},  
00965             {KBDNLS_NULL,0},  
00966             {KBDNLS_NULL,0},  
00967             {KBDNLS_NULL,0},  
00968             {KBDNLS_NULL,0},  
00969             {KBDNLS_NULL,0},  
00970             {KBDNLS_NULL,0},  
00971             {KBDNLS_NULL,0}   
00972         }
00973     },
00974     {
00975         VK_NUMPAD4,          
00976         KBDNLS_TYPE_NORMAL,  
00977         KBDNLS_INDEX_NORMAL, 
00978         0x0,                 
00979         {                    
00980             {KBDNLS_NUMPAD,0},         
00981             {KBDNLS_NUMPAD,0},         
00982             {KBDNLS_NUMPAD,0},         
00983             {KBDNLS_NUMPAD,0},         
00984             {KBDNLS_NUMPAD,0},         
00985             {KBDNLS_NUMPAD,0},         
00986             {KBDNLS_NUMPAD,0},         
00987             {KBDNLS_NUMPAD,0}          
00988         },
00989         {                     
00990             {KBDNLS_NULL,0},  
00991             {KBDNLS_NULL,0},  
00992             {KBDNLS_NULL,0},  
00993             {KBDNLS_NULL,0},  
00994             {KBDNLS_NULL,0},  
00995             {KBDNLS_NULL,0},  
00996             {KBDNLS_NULL,0},  
00997             {KBDNLS_NULL,0}   
00998         }
00999     },
01000     {
01001         VK_NUMPAD5,          
01002         KBDNLS_TYPE_NORMAL,  
01003         KBDNLS_INDEX_NORMAL, 
01004         0x0,                 
01005         {                    
01006             {KBDNLS_NUMPAD,0},         
01007             {KBDNLS_NUMPAD,0},         
01008             {KBDNLS_NUMPAD,0},         
01009             {KBDNLS_NUMPAD,0},         
01010             {KBDNLS_NUMPAD,0},         
01011             {KBDNLS_NUMPAD,0},         
01012             {KBDNLS_NUMPAD,0},         
01013             {KBDNLS_NUMPAD,0}          
01014         },
01015         {                     
01016             {KBDNLS_NULL,0},  
01017             {KBDNLS_NULL,0},  
01018             {KBDNLS_NULL,0},  
01019             {KBDNLS_NULL,0},  
01020             {KBDNLS_NULL,0},  
01021             {KBDNLS_NULL,0},  
01022             {KBDNLS_NULL,0},  
01023             {KBDNLS_NULL,0}   
01024         }
01025     },
01026     {
01027         VK_NUMPAD6,          
01028         KBDNLS_TYPE_NORMAL,  
01029         KBDNLS_INDEX_NORMAL, 
01030         0x0,                 
01031         {                    
01032             {KBDNLS_NUMPAD,0},         
01033             {KBDNLS_NUMPAD,0},         
01034             {KBDNLS_NUMPAD,0},         
01035             {KBDNLS_NUMPAD,0},         
01036             {KBDNLS_NUMPAD,0},         
01037             {KBDNLS_NUMPAD,0},         
01038             {KBDNLS_NUMPAD,0},         
01039             {KBDNLS_NUMPAD,0}          
01040         },
01041         {                     
01042             {KBDNLS_NULL,0},  
01043             {KBDNLS_NULL,0},  
01044             {KBDNLS_NULL,0},  
01045             {KBDNLS_NULL,0},  
01046             {KBDNLS_NULL,0},  
01047             {KBDNLS_NULL,0},  
01048             {KBDNLS_NULL,0},  
01049             {KBDNLS_NULL,0}   
01050         }
01051     },
01052     {
01053         VK_NUMPAD7,          
01054         KBDNLS_TYPE_NORMAL,  
01055         KBDNLS_INDEX_NORMAL, 
01056         0x0,                 
01057         {                    
01058             {KBDNLS_NUMPAD,0},         
01059             {KBDNLS_NUMPAD,0},         
01060             {KBDNLS_NUMPAD,0},         
01061             {KBDNLS_NUMPAD,0},         
01062             {KBDNLS_NUMPAD,0},         
01063             {KBDNLS_NUMPAD,0},         
01064             {KBDNLS_NUMPAD,0},         
01065             {KBDNLS_NUMPAD,0}          
01066         },
01067         {                     
01068             {KBDNLS_NULL,0},  
01069             {KBDNLS_NULL,0},  
01070             {KBDNLS_NULL,0},  
01071             {KBDNLS_NULL,0},  
01072             {KBDNLS_NULL,0},  
01073             {KBDNLS_NULL,0},  
01074             {KBDNLS_NULL,0},  
01075             {KBDNLS_NULL,0}   
01076         }
01077     },
01078     {
01079         VK_NUMPAD8,          
01080         KBDNLS_TYPE_NORMAL,  
01081         KBDNLS_INDEX_NORMAL, 
01082         0x0,                 
01083         {                    
01084             {KBDNLS_NUMPAD,0},         
01085             {KBDNLS_NUMPAD,0},         
01086             {KBDNLS_NUMPAD,0},         
01087             {KBDNLS_NUMPAD,0},         
01088             {KBDNLS_NUMPAD,0},         
01089             {KBDNLS_NUMPAD,0},         
01090             {KBDNLS_NUMPAD,0},         
01091             {KBDNLS_NUMPAD,0}          
01092         },
01093         {                     
01094             {KBDNLS_NULL,0},  
01095             {KBDNLS_NULL,0},  
01096             {KBDNLS_NULL,0},  
01097             {KBDNLS_NULL,0},  
01098             {KBDNLS_NULL,0},  
01099             {KBDNLS_NULL,0},  
01100             {KBDNLS_NULL,0},  
01101             {KBDNLS_NULL,0}   
01102         }
01103     },
01104     {
01105         VK_NUMPAD9,          
01106         KBDNLS_TYPE_NORMAL,  
01107         KBDNLS_INDEX_NORMAL, 
01108         0x0,                 
01109         {                    
01110             {KBDNLS_NUMPAD,0},         
01111             {KBDNLS_NUMPAD,0},         
01112             {KBDNLS_NUMPAD,0},         
01113             {KBDNLS_NUMPAD,0},         
01114             {KBDNLS_NUMPAD,0},         
01115             {KBDNLS_NUMPAD,0},         
01116             {KBDNLS_NUMPAD,0},         
01117             {KBDNLS_NUMPAD,0}          
01118         },
01119         {                     
01120             {KBDNLS_NULL,0},  
01121             {KBDNLS_NULL,0},  
01122             {KBDNLS_NULL,0},  
01123             {KBDNLS_NULL,0},  
01124             {KBDNLS_NULL,0},  
01125             {KBDNLS_NULL,0},  
01126             {KBDNLS_NULL,0},  
01127             {KBDNLS_NULL,0}   
01128         }
01129     },
01130     {
01131         VK_DECIMAL,          
01132         KBDNLS_TYPE_NORMAL,  
01133         KBDNLS_INDEX_NORMAL, 
01134         0x0,                 
01135         {                    
01136             {KBDNLS_NUMPAD,0},         
01137             {KBDNLS_NUMPAD,0},         
01138             {KBDNLS_NUMPAD,0},         
01139             {KBDNLS_NUMPAD,0},         
01140             {KBDNLS_NUMPAD,0},         
01141             {KBDNLS_NUMPAD,0},         
01142             {KBDNLS_NUMPAD,0},         
01143             {KBDNLS_NUMPAD,0}          
01144         },
01145         {                     
01146             {KBDNLS_NULL,0},  
01147             {KBDNLS_NULL,0},  
01148             {KBDNLS_NULL,0},  
01149             {KBDNLS_NULL,0},  
01150             {KBDNLS_NULL,0},  
01151             {KBDNLS_NULL,0},  
01152             {KBDNLS_NULL,0},  
01153             {KBDNLS_NULL,0}   
01154         }
01155     }
01156 };
01157 
01158 
USHORT ausMouseVKey98[] = {
01159                        VK_NUMPAD5,
01160                        VK_NUMPAD9,
01161                        VK_NUMPAD3,
01162                        VK_NUMPAD1,
01163                        VK_NUMPAD7,
01164                        VK_NUMPAD4,
01165                        VK_NUMPAD8,
01166                        VK_NUMPAD6,
01167                        VK_NUMPAD2,
01168                        VK_NUMPAD0,
01169                        VK_DECIMAL,
01170                        VK_MULTIPLY,
01171                        VK_ADD,
01172                        VK_SUBTRACT,
01173                        VK_DIVIDE | KBDEXT,
01174                        VK_HOME | KBDEXT
01175                       };
01176 
#endif // defined(_PC98_)
01177 
01178 
01179 
01180 
01181 
01182 static ALLOC_SECTION_LDATA KBDNLSTABLES 
KbdNlsTables = {
01183 
#if defined(_PC98_)
01184 
#if 1
01185 
    0,
01186 
#else
01187 
    0x0d,                            
01188 
#endif
01189 
    NLSKBD_INFO_ACCESSIBILITY_KEYMAP,
01190     16,                              
01191     VkToFuncTable_NEC,               
01192     16,                              
01193     ausMouseVKey98                   
01194 
#else // defined(_PC98_)
01195 
    0,                      
01196     0,                      
01197     4,                      
01198     
VkToFuncTable_106,      
01199     0,                      
01200     
NULL                    
01201 
#endif // defined(_PC98_)
01202 
};
01203 
01204 PKBDNLSTABLES 
KbdNlsLayerDescriptor(VOID)
01205 {
01206     
return &
KbdNlsTables;
01207 }
Generated on Sat May 15 19:40:33 2004 for test by
 1.3.7
 1.3.7