Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

590 lines
28 KiB

/*++
Copyright (c) 1995-1999 Microsoft Corporation, All Rights Reserved
Module Name:
DATA.C
++*/
#include <windows.h>
#include <immdev.h>
#include "imedefs.h"
#pragma data_seg(".ShareDate")
IMEG sImeG = {0};
MBINDEX MBIndex = {0};
#ifdef UNICODE
TCHAR SKLayout[NumsSK][MAXSOFTKEYS] = {
#ifdef KEYSTICKER
#ifdef CHAJEI
0x3000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x65E5, 0x6708, 0x91D1, 0x6728, 0x6C34,
0x706B, 0x571F, 0x7AF9, 0x6208, 0x5341, 0x5927, 0x4E2D, 0x4E00,
0x5F13, 0x4EBA, 0x5FC3, 0x624B, 0x53E3, 0x5C38, 0x5EFF, 0x5C71,
0x5973, 0x7530, 0x96E3, 0x535C, 0xFF3A, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
#else //if PHON
0x3000, 0x3122, 0x3105, 0x3109, 0x02C7, 0x02CB, 0x3113, 0x02CA,
0x02D9, 0x311A, 0x311E, 0x3107, 0x3116, 0x310F, 0x310E, 0x310D,
0x3111, 0x3115, 0x3118, 0x311B, 0x3128, 0x311C, 0x3120, 0x3129,
0x3119, 0x311F, 0x3123, 0x3106, 0x3110, 0x310B, 0x3114, 0x3127,
0x3112, 0x310A, 0x310C, 0x3117, 0x3108, 0x3124, 0x0020, 0x311D,
0x3126, 0x3121, 0x3125, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
#endif //CHAJEI
#else //KEYSTICKER
0x3000, 0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16,
0xFF17, 0xFF18, 0xFF19, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45,
0xFF46, 0xFF47, 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D,
0xFF4E, 0xFF4F, 0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55,
0xFF56, 0xFF57, 0xFF58, 0xFF59, 0xFF5A, 0xFF1B, 0xFF1D, 0xFF0C,
0xFF0D, 0xFF0E, 0xFF0F, 0xFF40, 0xFF3B, 0xFF3C, 0xFF3D, 0xFF07,
#endif //KEYSTICKER
0x3000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x03BA, 0x03C7, 0x03C5, 0x03BC, 0x03B3,
0x03BD, 0x03BE, 0x03BF, 0x03B8, 0x03C0, 0x03C1, 0x0020, 0x03C9,
0x03C8, 0x03B9, 0x0020, 0x03B1, 0x03B4, 0x03BB, 0x03B5, 0x03B7,
0x03C6, 0x03B2, 0x03C4, 0x03B6, 0x03C3, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x3000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x043B, 0x044A, 0x0448, 0x043D, 0x0432,
0x043E, 0x043F, 0x0440, 0x0436, 0x0441, 0x0442, 0x0443, 0x044C,
0x044B, 0x0437, 0x0438, 0x0430, 0x0433, 0x043C, 0x0434, 0x0451,
0x0449, 0x0431, 0x0447, 0x0435, 0x0446, 0x0444, 0x0020, 0x044D,
0x0020, 0x044E, 0x044F, 0x0020, 0x0439, 0x0020, 0x043A, 0x0445,
0x3000, 0x3122, 0x3105, 0x3109, 0x02C7, 0x02CB, 0x3113, 0x02CA,
0x02D9, 0x311A, 0x311E, 0x3107, 0x3116, 0x310F, 0x310E, 0x310D,
0x3111, 0x3115, 0x3118, 0x311B, 0x3128, 0x311C, 0x3120, 0x3129,
0x3119, 0x311F, 0x3123, 0x3106, 0x3110, 0x310B, 0x3114, 0x3127,
0x3112, 0x310A, 0x310C, 0x3117, 0x3108, 0x3124, 0x0020, 0x311D,
0x3126, 0x3121, 0x3125, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x3000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0113, 0x0020, 0x01D4, 0x011B, 0x01CE,
0x00E8, 0x0020, 0x012B, 0x01D2, 0x00ED, 0x01D0, 0x00EC, 0x01D8,
0x01D6, 0x00F2, 0x0020, 0x0101, 0x00E0, 0x00E9, 0x0020, 0x00F3,
0x00F9, 0x00E1, 0x00FA, 0x014D, 0x016B, 0x0020, 0x0020, 0x01DA,
0x0020, 0x01DC, 0x00FC, 0x0020, 0x00EA, 0x0020, 0x0020, 0x0020,
0x3000, 0x0020, 0x3043, 0x3045, 0x3047, 0x3049, 0x304B, 0x304D,
0x304F, 0x3051, 0x3053, 0x306A, 0x3082, 0x3080, 0x306C, 0x3059,
0x306D, 0x306E, 0x306F, 0x3064, 0x3072, 0x3075, 0x3078, 0x3085,
0x3083, 0x3063, 0x3066, 0x3055, 0x305B, 0x306B, 0x305D, 0x3061,
0x3081, 0x3057, 0x307F, 0x305F, 0x307E, 0x307B, 0x0020, 0x3087,
0x3093, 0x308E, 0x3092, 0x3041, 0x3068, 0x0020, 0x3090, 0x3091,
0x3000, 0x30B1, 0x30A3, 0x30A5, 0x30F4, 0x30A7, 0x30A9, 0x30AB,
0x30F5, 0x30AD, 0x30AF, 0x30CA, 0x30E2, 0x30E0, 0x30CC, 0x30B9,
0x30CD, 0x30CE, 0x30CF, 0x30C4, 0x30D2, 0x30D5, 0x30D8, 0x30E5,
0x30E3, 0x30C3, 0x30C6, 0x30B5, 0x30BB, 0x30CB, 0x30BD, 0x30C1,
0x30E1, 0x30B7, 0x30DF, 0x30BF, 0x30DE, 0x30DB, 0x30B3, 0x30E7,
0x30F6, 0x30EE, 0x30F2, 0x30A1, 0x30C8, 0x30F3, 0x30F0, 0x30F1,
0x3000, 0x02C9, 0xFF0C, 0x3001, 0xFF1B, 0xFF1A, 0xFF1F, 0xFF01,
0x2026, 0x2014, 0x00B7, 0x3014, 0xFF08, 0x3010, 0x3008, 0x201C,
0x3009, 0x300A, 0x300B, 0x2236, 0x300C, 0x300D, 0x300E, 0xFF3B,
0xFF09, 0xFF02, 0xFF07, 0x2018, 0x201D, 0x3015, 0x3005, 0x2016,
0x3011, 0x2019, 0x3017, 0xFF5E, 0x3016, 0x300F, 0x00A8, 0xFF3D,
0x02C7, 0xFF5B, 0xFF5D, 0x3002, 0xFF40, 0x3003, 0xFF5C, 0xFF0E,
0x3000, 0x216A, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166,
0x2167, 0x2168, 0x2169, 0x3220, 0x2478, 0x2476, 0x3222, 0x248A,
0x3223, 0x3224, 0x3225, 0x248F, 0x3226, 0x3227, 0x3228, 0x247A,
0x2479, 0x2490, 0x2491, 0x2488, 0x248B, 0x3221, 0x248C, 0x248E,
0x2477, 0x2489, 0x2475, 0x248D, 0x2474, 0x3229, 0x0020, 0x247B,
0x216B, 0x247C, 0x247D, 0x2160, 0x0020, 0x0020, 0x0020, 0x0020,
0x3000, 0x0020, 0x2261, 0x2260, 0xFF1D, 0x2264, 0x2265, 0xFF1C,
0xFF1E, 0x226E, 0x226F, 0x2227, 0x2299, 0x2220, 0x2211, 0xFF0D,
0x220F, 0x222A, 0x2229, 0x222B, 0x2208, 0x0020, 0x2235, 0x223D,
0x224C, 0x222E, 0x221D, 0x00B1, 0x00D7, 0x2228, 0x00F7, 0x0020,
0x2312, 0xFF0B, 0x2225, 0xFF0F, 0x22A5, 0x2234, 0x0020, 0x0020,
0x2237, 0x221A, 0x0020, 0x2248, 0x221E, 0x0020, 0x0020, 0x0020,
0x3000, 0x00A4, 0x00B0, 0x2032, 0x2033, 0xFF04, 0xFFE1, 0xFFE5,
0x2030, 0xFF05, 0x2103, 0x767E, 0x0020, 0x6BEB, 0x4E07, 0x4E8C,
0x4EBF, 0x5146, 0x5409, 0x4E03, 0x592A, 0x62CD, 0x827E, 0x0020,
0x0020, 0x516B, 0x4E5D, 0x25CB, 0x4E09, 0x5343, 0x56DB, 0x516D,
0x5FAE, 0x4E00, 0x5398, 0x4E94, 0x5206, 0x0020, 0x0020, 0x0020,
0xFFE0, 0x0020, 0x0020, 0x0020, 0x5341, 0x0020, 0x0020, 0x0020,
0x3000, 0x2504, 0x250D, 0x250E, 0x250F, 0x2510, 0x2511, 0x2512,
0x2513, 0x0020, 0x2500, 0x252C, 0x2540, 0x253E, 0x252E, 0x251E,
0x252F, 0x2530, 0x2531, 0x2523, 0x2532, 0x2533, 0x0020, 0x2542,
0x2541, 0x0020, 0x2502, 0x251C, 0x251F, 0x252D, 0x2520, 0x2522,
0x253F, 0x251D, 0x253D, 0x2521, 0x253C, 0x0020, 0x0020, 0x2543,
0x2508, 0x0020, 0x0020, 0x250C, 0x2506, 0x0020, 0x250A, 0x0020,
0x3000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x25A0, 0xFF3E, 0xFF20, 0x25B2, 0x2606,
0x203B, 0x2192, 0x2190, 0x25C7, 0x2191, 0x2193, 0x3013, 0xFFE3,
0xFF3F, 0x25C6, 0x25A1, 0x00A7, 0x2605, 0x25B3, 0x25CB, 0x25CE,
0xFF3C, 0x2116, 0xFF06, 0x25CF, 0xFF03, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
};
TCHAR SKLayoutS[NumsSK][MAXSOFTKEYS] = {
#ifdef KEYSTICKER
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
#else
0x3000, 0xFF09, 0xFF01, 0xFF20, 0xFF03, 0xFF04, 0xFF05, 0xFF3E,
0xFF06, 0xFF0A, 0xFF08, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25,
0xFF26, 0xFF27, 0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D,
0xFF2E, 0xFF2F, 0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35,
0xFF36, 0xFF37, 0xFF38, 0xFF39, 0xFF3A, 0xFF1A, 0xFF0B, 0xFF1C,
0xFF3F, 0xFF1E, 0xFF1F, 0xFF5E, 0xFF5B, 0xFF5C, 0xFF5D, 0xFF02,
#endif //KEYSTICKER
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x039A, 0x03A7, 0x03A5, 0x039C, 0x0393,
0x039D, 0x039E, 0x039F, 0x0398, 0x03A0, 0x03A1, 0x0020, 0x03A9,
0x03A8, 0x0399, 0x0020, 0x0391, 0x0394, 0x039B, 0x0395, 0x0397,
0x03A6, 0x0392, 0x03A4, 0x0396, 0x03A3, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x041B, 0x042A, 0x0428, 0x041D, 0x0412,
0x041E, 0x041F, 0x0420, 0x0416, 0x0421, 0x0422, 0x0423, 0x042C,
0x042B, 0x0417, 0x0418, 0x0410, 0x0413, 0x041C, 0x0414, 0x0401,
0x0429, 0x0411, 0x0427, 0x0415, 0x0426, 0x0424, 0x0020, 0x042D,
0x0020, 0x042E, 0x042F, 0x0020, 0x0419, 0x0020, 0x041A, 0x0425,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x3044, 0x3046, 0x3048, 0x304A, 0x304C, 0x304E,
0x3050, 0x3052, 0x3054, 0x3071, 0x308D, 0x308B, 0x3077, 0x305A,
0x307A, 0x307D, 0x3070, 0x3065, 0x3073, 0x3076, 0x3079, 0x3086,
0x3084, 0x0020, 0x3067, 0x3056, 0x305C, 0x3074, 0x305E, 0x3062,
0x308C, 0x3058, 0x308A, 0x3060, 0x3089, 0x307C, 0x0020, 0x3088,
0x0020, 0x308F, 0x0020, 0x3042, 0x3069, 0x0020, 0x0020, 0x0020,
0x0020, 0x30B2, 0x30A4, 0x30A6, 0x0020, 0x30A8, 0x30AA, 0x30AC,
0x0020, 0x30AE, 0x30B0, 0x30D1, 0x30ED, 0x30EB, 0x30D7, 0x30BA,
0x30DA, 0x30DD, 0x30D0, 0x30C5, 0x30D3, 0x30D6, 0x30D9, 0x30E6,
0x30E4, 0x0020, 0x30C7, 0x30B6, 0x30BC, 0x30D4, 0x30BE, 0x30C2,
0x30EC, 0x30B8, 0x30EA, 0x30C0, 0x30E9, 0x30DC, 0x30B4, 0x30E8,
0x0020, 0x30EF, 0x0020, 0x30A2, 0x30C9, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x2460, 0x2482, 0x2480, 0x2462, 0x2494,
0x2463, 0x2464, 0x2465, 0x2499, 0x2466, 0x2467, 0x2468, 0x2484,
0x2483, 0x249A, 0x249B, 0x2492, 0x2495, 0x2461, 0x2496, 0x2498,
0x2481, 0x2493, 0x247F, 0x2497, 0x247E, 0x2469, 0x0020, 0x2485,
0x0020, 0x2486, 0x2487, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x4F70, 0x0020, 0x0020, 0x0020, 0x8D30,
0x0020, 0x0020, 0x0020, 0x67D2, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x634C, 0x7396, 0x96F6, 0x53C1, 0x4EDF, 0x8086, 0x9646,
0x0020, 0x58F9, 0x0020, 0x4F0D, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x62FE, 0x0020, 0x0020, 0x0020,
0x0020, 0x2505, 0x2515, 0x2516, 0x2517, 0x2518, 0x2519, 0x251A,
0x251B, 0x0020, 0x2501, 0x2534, 0x2548, 0x2546, 0x2536, 0x2526,
0x2537, 0x2538, 0x2539, 0x252B, 0x253A, 0x253B, 0x0020, 0x254A,
0x2549, 0x0020, 0x2503, 0x2524, 0x2527, 0x2535, 0x2528, 0x252A,
0x2547, 0x2525, 0x2545, 0x2529, 0x2544, 0x0020, 0x0020, 0x254B,
0x2509, 0x0020, 0x0020, 0x2514, 0x2507, 0x0020, 0x250B, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
};
#else
BYTE SKLayout[NumsSK][MAXSOFTKEYS*2] = {
#ifdef KEYSTICKER
#ifdef CHAJEI
"  晩埖署直邦諮輿幢瑚噴寄嶄匯広繁伉返笥分悒表溺弥�y卸Z "),
#else //if PHON
" ���・�A��@�B����������������������������� ���� ",
#endif //CHAJEI
#else //KEYSTICKER
" 0123456789abcdefghijklmnopqrstuvwxyz�����������",
#endif //KEYSTICKER
"  κχυμγνξοθπρ ωψι αδλεηφβτζσ ",
"  лъшнвопржстуьызиагмдёщбчецф э юя й кх",
" ���・�A��@�B����������������������������� ���� ",
// " �� � �������������������������� ��� � ��� ",
"  ┘ ┳├┌┬ ┤┓┴┼━╋┻┛ ─┐└ ┏┫│┣┃┗ ┠ ┯┨ ┷ ",
"  ぃぅぇぉかきくけこなもむぬすねのはつひふへゅゃってさせにそちめしみたまほ ょんゎをぁと ゐゑ",
" ケィゥヴェォカヵキクナモムヌスネノハツヒフヘュャッテサセニソチメシミタマホコョヶヮヲァトンヰヱ",
" .�、����´!,_�‐ヾ^ゝゞ〃|仝々〆����` ̄ヽ?゜/¨―゛ー〇:�・��。�;��",
" �ʼn♯♭♪†‡¶�√��∝�∵∫∬����∨∧�∈��∽�������� ¬�⇒⇔� ",
"  《』�+-��【】…}]‘�’“”〈( ×」》〉『\~‥∥ {�[�〕÷ )〔 「± ",
" ∴<>≦∞♀�°�≧為 坐嵐屈叮孥耳鈍湊田穐 伊湘$眉認膨鎗裏匯舌励蛍 ♂ 噴 ",
" �������� ������������ �� ����������� �� �� � ",
"  *��§℃☆★○%●◎◇��#&′¥@$£�″�¢� ",
};
BYTE SKLayoutS[NumsSK][MAXSOFTKEYS*2] = {
#ifdef KEYSTICKER
" ",
#else
" ����∞�����ABCDEFGHIJKLMNOPQRSTUVWXYZ������゛����",
#endif //KEYSTICKER
" ΚΧΥΜΓΝΞΟΘΠΡ ΩΨΙ ΑΔΛΕΗΦΒΤΖΣ ",
" ЛЪШНВОПРЖСТУЬЫЗИАГМДЁЩБЧЕЦФ Э ЮЯ Й КХ",
" ",
" ",
" いうえおがぎぐげごぱろるぷずぺぽぼづびぶべゆや でざぜぴぞぢれじりだらぼ よ わ あど ",
" ゲイウ エオガ ギグパロルプズペポバヅビブベユヤ デザゼピゾヂレジリダラボゴヨ ワ アド ",
" ",
" ����⊇∠⊥⌒�∂∇≡����∋⊂�⊃∩�⊆∃∪∀≒ � �� ",
" ",
" 異 掘 内 闇樵巣美祢冒遜 匱 礼 憤 ",
" �������� ������������ �� ����������� �� �� � ",
" ",
};
#endif //UNICODE
#pragma data_seg()
//
TCHAR CWCodeStr[13] = {0};
TCHAR CWDBCSStr[41] = {0};
HWND hCrtDlg = NULL;
UINT uStartComp = 0;
UINT uOpenCand = 0;
UINT uCaps = 0;
DWORD SaTC_Trace;
UINT UI_CANDSTR = 300;
HINSTANCE hInst;
IMEL sImeL;
LPIMEL lpImeL = NULL;
TCHAR szImeMBFileName[MAX_PATH] = TEXT("");
TCHAR szUIClassName[CLASS_LEN] = TEXT("");
TCHAR szCompClassName[CLASS_LEN] = TEXT("");
TCHAR szCandClassName[CLASS_LEN] = TEXT("");
TCHAR szStatusClassName[CLASS_LEN] = TEXT("");
TCHAR szCMenuClassName[CLASS_LEN];
TCHAR szSoftkeyMenuClassName[CLASS_LEN];
TCHAR szOrgName[NAMESIZE/2] = TEXT("");
TCHAR szVerInfo[NAMESIZE] = TEXT("");
TCHAR szHandCursor[] = TEXT("Hand");
TCHAR szChinese[] = TEXT("Chinese");
TCHAR szCZ[] = TEXT("CZ");
#ifdef UNICODE
WCHAR szCandInf1[] = {
0x0020, 0x0020, 0x0053, 0x0068, 0x0069, 0x0066, 0x0074, 0x0020,
0x002B, 0x0020, 0x6570, 0x5B57, 0x952E, 0x0000
};
WCHAR szCandInf2[] = {
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x6570, 0x5B57,
0x952E, 0x0000
};
#else
TCHAR szCandInf1[] = TEXT(" Shift + 方忖囚");
TCHAR szCandInf2[] = TEXT(" 方忖囚");
#endif
TCHAR szEnglish[] = TEXT("English");
TCHAR szImeName[] = TEXT("ImeName");
TCHAR szCode[] = TEXT("Code");
TCHAR szEudc[] = TEXT("Eudc");
TCHAR szFullShape[] = TEXT("FullShape");
TCHAR szHalfShape[] = TEXT("HalfShape");
TCHAR szSymbol[] = TEXT("Symbol");
TCHAR szNoSymbol[] = TEXT("NoSymbol");
TCHAR szNone[] = TEXT("None");
TCHAR szSoftKBD[] = TEXT("SoftKBD");
TCHAR szNoSoftKBD[] = TEXT("NoSoftKBD");
TCHAR szDigit[] = TEXT("01234567890");
#ifdef UNICODE
WCHAR szTrace[] = { 0x5149, 0x6807, 0x8DDF, 0x968F, 0x0000 };
WCHAR szWarnTitle[] = { 0x8B66, 0x544A, 0x0000 };
WCHAR szErrorTitle[] = { 0x9519, 0x8BEF, 0x0000 };
#else
TCHAR szTrace[]= TEXT("高炎効昧");
TCHAR szWarnTitle[]=TEXT("少御");
TCHAR szErrorTitle[]=TEXT("危列");
#endif
// convert char to upper case
BYTE bUpper[] = {
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
'`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
'X', 'Y', 'Z'
};
TCHAR szRegIMESetting[] = TEXT("Control Panel\\Input Method");
TCHAR szPara[] = TEXT("Parallel Distance");
TCHAR szPerp[] = TEXT("Perpendicular Distance");
TCHAR szParaTol[] = TEXT("Parallel Tolerance");
TCHAR szPerpTol[] = TEXT("Perpendicular Tolerance");
#if defined(CROSSREF)
#ifdef UNICODE
WCHAR szRegRevKL[] = { 0x7F16, 0x7801, 0x67E5, 0x8BE2, 0x0000 };
WCHAR szRegRevMaxKey[] = { 0x7F16, 0x7801, 0x67E5, 0x8BE2, 0x7801, 0x957F, 0x0000 };
#else
TCHAR szRegRevKL[] = TEXT("園鷹臥儂");
TCHAR szRegRevMaxKey[] = TEXT("園鷹臥儂鷹海");
#endif
#endif //CROSSREF
#if defined(EUDC)
TCHAR szRegEudcDictName[] = TEXT("EUDCDictName");
TCHAR szRegEudcMapFileName[] = TEXT("EUDCMapFileName");
#endif
// decide UI offset base on escapement
const NEARCARET ncUIEsc[] = {
// LogFontX LogFontY ParaX PerpX ParaY PerpY
{ 0, 1, 1, 0, 0, 1}, // 0
{ 1, 0, 0, 1, 1, 0}, // 900
{ 0, 0, -1, 0, 0, 1}, // 1800
{-1, 0, 0, -1, -1, 0} // 2700
};
// decide another UI offset base on escapement
const NEARCARET ncAltUIEsc[] = {
// LogFontX LogFontY ParaX PerpX ParaY PerpY
{ 0, 0, 1, 0, 0, -1}, // 0
{ 0, 0, 0, -1, 1, 0}, // 900
{ 0, 0, -1, 0, 0, -1}, // 1800
{ 0, 0, 0, 1, -1, 0} // 2700
};
// decide input rectangle base on escapement
const POINT ptInputEsc[] = {
// LogFontWi LogFontHi
{1, 1}, // 0
{1, -1}, // 900
{1, 1}, // 1800
{-1, 1} // 2700
};
// decide another input rectangle base on escapement
const POINT ptAltInputEsc[] = {
// LogFontWi LogFontHi
{1, -1}, // 0
{-1, -1}, // 900
{1, -1}, // 1800
{1, 1} // 2700
};
BYTE VirtKey48Map[MAXSOFTKEYS] = {
0x20, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53,
0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0xba, 0xbb, 0xbc,
0xbd, 0xbe, 0xbf, 0xc0, 0xdb, 0xdc, 0xdd, 0xde
};
#ifdef KEYSTICKER
#ifdef CHAJEI
TCHAR KeyIndexTbl[INDEXNUM] = {
TEXT('a'), TEXT('b'), TEXT('c'), TEXT('d'),
TEXT('e'), TEXT('f'), TEXT('g'), TEXT('h'),
TEXT('i'), TEXT('j'), TEXT('k'), TEXT('l'),
TEXT('m'), TEXT('n'), TEXT('o'), TEXT('p'),
TEXT('q'), TEXT('r'), TEXT('s'), TEXT('t'),
TEXT('u'), TEXT('v'), TEXT('w'), TEXT('x'),
TEXT('y'), TEXT('z')};
#ifdef UNICODE
WCHAR MapKeySticker_a[] = { 0x65E5, 0x0000 };
WCHAR MapKeySticker_b[] = { 0x6708, 0x0000 };
WCHAR MapKeySticker_c[] = { 0x91D1, 0x0000 };
WCHAR MapKeySticker_d[] = { 0x6728, 0x0000 };
WCHAR MapKeySticker_e[] = { 0x6C34, 0x0000 };
WCHAR MapKeySticker_f[] = { 0x706B, 0x0000 };
WCHAR MapKeySticker_g[] = { 0x571F, 0x0000 };
WCHAR MapKeySticker_h[] = { 0x7AF9, 0x0000 };
WCHAR MapKeySticker_i[] = { 0x6208, 0x0000 };
WCHAR MapKeySticker_j[] = { 0x5341, 0x0000 };
WCHAR MapKeySticker_k[] = { 0x5927, 0x0000 };
WCHAR MapKeySticker_l[] = { 0x4E2D, 0x0000 };
WCHAR MapKeySticker_m[] = { 0x4E00, 0x0000 };
WCHAR MapKeySticker_n[] = { 0x5F13, 0x0000 };
WCHAR MapKeySticker_o[] = { 0x4EBA, 0x0000 };
WCHAR MapKeySticker_p[] = { 0x5FC3, 0x0000 };
WCHAR MapKeySticker_q[] = { 0x624B, 0x0000 };
WCHAR MapKeySticker_r[] = { 0x53E3, 0x0000 };
WCHAR MapKeySticker_s[] = { 0x5C38, 0x0000 };
WCHAR MapKeySticker_t[] = { 0x5EFF, 0x0000 };
WCHAR MapKeySticker_u[] = { 0x5C71, 0x0000 };
WCHAR MapKeySticker_v[] = { 0x5973, 0x0000 };
WCHAR MapKeySticker_w[] = { 0x7530, 0x0000 };
WCHAR MapKeySticker_x[] = { 0x96E3, 0x0000 };
WCHAR MapKeySticker_y[] = { 0x535C, 0x0000 };
WCHAR MapKeySticker_z[] = { 0xFF3A, 0x0000 };
LPWSTR MapKeyStickerTbl[INDEXNUM] = {
MapKeySticker_a, MapKeySticker_b, MapKeySticker_c,
MapKeySticker_d, MapKeySticker_e, MapKeySticker_f,
MapKeySticker_g, MapKeySticker_h, MapKeySticker_i,
MapKeySticker_j, MapKeySticker_k, MapKeySticker_l,
MapKeySticker_m, MapKeySticker_n, MapKeySticker_o,
MapKeySticker_p, MapKeySticker_q, MapKeySticker_r,
MapKeySticker_s, MapKeySticker_t, MapKeySticker_u,
MapKeySticker_v, MapKeySticker_w, MapKeySticker_x,
MapKeySticker_y, MapKeySticker_z
};
#else
LPTSTR MapKeyStickerTbl[INDEXNUM] = {
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""),
TEXT("輿"), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT("�y"),
TEXT(""), TEXT("")};
#endif // UNICODE
#endif // CHAJEI
#ifdef PHON
TCHAR KeyIndexTbl[INDEXNUM] = {
TEXT('a'), TEXT('b'), TEXT('c'), TEXT('d'),
TEXT('e'), TEXT('f'), TEXT('g'), TEXT('h'),
TEXT('i'), TEXT('j'), TEXT('k'), TEXT('l'),
TEXT('m'), TEXT('n'), TEXT('o'), TEXT('p'),
TEXT('q'), TEXT('r'), TEXT('s'), TEXT('t'),
TEXT('u'), TEXT('v'), TEXT('w'), TEXT('x'),
TEXT('y'), TEXT('z'), TEXT('1'), TEXT('2'),
TEXT('3'), TEXT('4'), TEXT('5'), TEXT('6'),
TEXT('7'), TEXT('8'), TEXT('9'), TEXT('0'),
TEXT('-'), TEXT('='), TEXT('\\'),TEXT('['),
TEXT(']'), TEXT(';'), TEXT('\''),TEXT(','),
TEXT('.'), TEXT('/')};
#ifdef UNICODE
WCHAR MapKeySticker_a[] = { 0x3107, 0x0000 };
WCHAR MapKeySticker_b[] = { 0x3116, 0x0000 };
WCHAR MapKeySticker_c[] = { 0x310F, 0x0000 };
WCHAR MapKeySticker_d[] = { 0x310E, 0x0000 };
WCHAR MapKeySticker_e[] = { 0x310D, 0x0000 };
WCHAR MapKeySticker_f[] = { 0x3111, 0x0000 };
WCHAR MapKeySticker_g[] = { 0x3115, 0x0000 };
WCHAR MapKeySticker_h[] = { 0x3118, 0x0000 };
WCHAR MapKeySticker_i[] = { 0x311B, 0x0000 };
WCHAR MapKeySticker_j[] = { 0x3128, 0x0000 };
WCHAR MapKeySticker_k[] = { 0x311C, 0x0000 };
WCHAR MapKeySticker_l[] = { 0x3120, 0x0000 };
WCHAR MapKeySticker_m[] = { 0x3129, 0x0000 };
WCHAR MapKeySticker_n[] = { 0x3119, 0x0000 };
WCHAR MapKeySticker_o[] = { 0x311F, 0x0000 };
WCHAR MapKeySticker_p[] = { 0x3123, 0x0000 };
WCHAR MapKeySticker_q[] = { 0x3106, 0x0000 };
WCHAR MapKeySticker_r[] = { 0x3110, 0x0000 };
WCHAR MapKeySticker_s[] = { 0x310B, 0x0000 };
WCHAR MapKeySticker_t[] = { 0x3114, 0x0000 };
WCHAR MapKeySticker_u[] = { 0x3127, 0x0000 };
WCHAR MapKeySticker_v[] = { 0x3112, 0x0000 };
WCHAR MapKeySticker_w[] = { 0x310A, 0x0000 };
WCHAR MapKeySticker_x[] = { 0x310C, 0x0000 };
WCHAR MapKeySticker_y[] = { 0x3117, 0x0000 };
WCHAR MapKeySticker_z[] = { 0x3108, 0x0000 };
WCHAR MapKeySticker_1[] = { 0x3105, 0x0000 };
WCHAR MapKeySticker_2[] = { 0x3109, 0x0000 };
WCHAR MapKeySticker_3[] = { 0x02C7, 0x0000 };
WCHAR MapKeySticker_4[] = { 0x02CB, 0x0000 };
WCHAR MapKeySticker_5[] = { 0x3113, 0x0000 };
WCHAR MapKeySticker_6[] = { 0x02CA, 0x0000 };
WCHAR MapKeySticker_7[] = { 0x02D9, 0x0000 };
WCHAR MapKeySticker_8[] = { 0x311A, 0x0000 };
WCHAR MapKeySticker_9[] = { 0x311E, 0x0000 };
WCHAR MapKeySticker_0[] = { 0x3122, 0x0000 };
WCHAR MapKeySticker_MINUS[] = { 0x3126, 0x0000 };
WCHAR MapKeySticker_EQUAL[] = { 0x0000, 0x0000 };
WCHAR MapKeySticker_BSLASH[] = { 0x0000, 0x0000 };
WCHAR MapKeySticker_LBRACKET[] = { 0x0000 };
WCHAR MapKeySticker_RBRACKET[] = { 0x0000 };
WCHAR MapKeySticker_SEMICLN[] = { 0x3124, 0x0000 };
WCHAR MapKeySticker_QUOTE[] = { 0x0000 };
WCHAR MapKeySticker_COMMA[] = { 0x311D, 0x0000 };
WCHAR MapKeySticker_DOT[] = { 0x3121, 0x0000 };
WCHAR MapKeySticker_SLASH[] = { 0x3125, 0x0000 };
LPWSTR MapKeyStickerTbl[INDEXNUM] = {
MapKeySticker_a, MapKeySticker_b, MapKeySticker_c,
MapKeySticker_d, MapKeySticker_e, MapKeySticker_f,
MapKeySticker_g, MapKeySticker_h, MapKeySticker_i,
MapKeySticker_j, MapKeySticker_k, MapKeySticker_l,
MapKeySticker_m, MapKeySticker_n, MapKeySticker_o,
MapKeySticker_p, MapKeySticker_q, MapKeySticker_r,
MapKeySticker_s, MapKeySticker_t, MapKeySticker_u,
MapKeySticker_v, MapKeySticker_w, MapKeySticker_x,
MapKeySticker_y, MapKeySticker_z, MapKeySticker_1,
MapKeySticker_2, MapKeySticker_3, MapKeySticker_4,
MapKeySticker_5, MapKeySticker_6, MapKeySticker_7,
MapKeySticker_8, MapKeySticker_9, MapKeySticker_0,
MapKeySticker_MINUS, MapKeySticker_EQUAL, MapKeySticker_BSLASH,
MapKeySticker_LBRACKET, MapKeySticker_RBRACKET, MapKeySticker_SEMICLN,
MapKeySticker_QUOTE, MapKeySticker_COMMA, MapKeySticker_DOT,
MapKeySticker_SLASH
};
#else
LPTSTR MapKeyStickerTbl[INDEXNUM] = {
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT("�A"),
TEXT(""), TEXT("�@"), TEXT("�B"),
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""),
TEXT("")};
#endif // UNICODE
#endif // PHON
#endif //KEYSTICKER