mirror of https://github.com/tongzx/nt5src
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
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("Z")};
|
|
#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
|