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

  1. /*++
  2. Copyright (c) 1995-1999 Microsoft Corporation, All Rights Reserved
  3. Module Name:
  4. DATA.C
  5. ++*/
  6. #include <windows.h>
  7. #include <immdev.h>
  8. #include "imedefs.h"
  9. #pragma data_seg(".ShareDate")
  10. IMEG sImeG = {0};
  11. MBINDEX MBIndex = {0};
  12. #ifdef UNICODE
  13. TCHAR SKLayout[NumsSK][MAXSOFTKEYS] = {
  14. #ifdef KEYSTICKER
  15. #ifdef CHAJEI
  16. 0x3000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  17. 0x0020, 0x0020, 0x0020, 0x65E5, 0x6708, 0x91D1, 0x6728, 0x6C34,
  18. 0x706B, 0x571F, 0x7AF9, 0x6208, 0x5341, 0x5927, 0x4E2D, 0x4E00,
  19. 0x5F13, 0x4EBA, 0x5FC3, 0x624B, 0x53E3, 0x5C38, 0x5EFF, 0x5C71,
  20. 0x5973, 0x7530, 0x96E3, 0x535C, 0xFF3A, 0x0020, 0x0020, 0x0020,
  21. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  22. #else //if PHON
  23. 0x3000, 0x3122, 0x3105, 0x3109, 0x02C7, 0x02CB, 0x3113, 0x02CA,
  24. 0x02D9, 0x311A, 0x311E, 0x3107, 0x3116, 0x310F, 0x310E, 0x310D,
  25. 0x3111, 0x3115, 0x3118, 0x311B, 0x3128, 0x311C, 0x3120, 0x3129,
  26. 0x3119, 0x311F, 0x3123, 0x3106, 0x3110, 0x310B, 0x3114, 0x3127,
  27. 0x3112, 0x310A, 0x310C, 0x3117, 0x3108, 0x3124, 0x0020, 0x311D,
  28. 0x3126, 0x3121, 0x3125, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  29. #endif //CHAJEI
  30. #else //KEYSTICKER
  31. 0x3000, 0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16,
  32. 0xFF17, 0xFF18, 0xFF19, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45,
  33. 0xFF46, 0xFF47, 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D,
  34. 0xFF4E, 0xFF4F, 0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55,
  35. 0xFF56, 0xFF57, 0xFF58, 0xFF59, 0xFF5A, 0xFF1B, 0xFF1D, 0xFF0C,
  36. 0xFF0D, 0xFF0E, 0xFF0F, 0xFF40, 0xFF3B, 0xFF3C, 0xFF3D, 0xFF07,
  37. #endif //KEYSTICKER
  38. 0x3000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  39. 0x0020, 0x0020, 0x0020, 0x03BA, 0x03C7, 0x03C5, 0x03BC, 0x03B3,
  40. 0x03BD, 0x03BE, 0x03BF, 0x03B8, 0x03C0, 0x03C1, 0x0020, 0x03C9,
  41. 0x03C8, 0x03B9, 0x0020, 0x03B1, 0x03B4, 0x03BB, 0x03B5, 0x03B7,
  42. 0x03C6, 0x03B2, 0x03C4, 0x03B6, 0x03C3, 0x0020, 0x0020, 0x0020,
  43. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  44. 0x3000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  45. 0x0020, 0x0020, 0x0020, 0x043B, 0x044A, 0x0448, 0x043D, 0x0432,
  46. 0x043E, 0x043F, 0x0440, 0x0436, 0x0441, 0x0442, 0x0443, 0x044C,
  47. 0x044B, 0x0437, 0x0438, 0x0430, 0x0433, 0x043C, 0x0434, 0x0451,
  48. 0x0449, 0x0431, 0x0447, 0x0435, 0x0446, 0x0444, 0x0020, 0x044D,
  49. 0x0020, 0x044E, 0x044F, 0x0020, 0x0439, 0x0020, 0x043A, 0x0445,
  50. 0x3000, 0x3122, 0x3105, 0x3109, 0x02C7, 0x02CB, 0x3113, 0x02CA,
  51. 0x02D9, 0x311A, 0x311E, 0x3107, 0x3116, 0x310F, 0x310E, 0x310D,
  52. 0x3111, 0x3115, 0x3118, 0x311B, 0x3128, 0x311C, 0x3120, 0x3129,
  53. 0x3119, 0x311F, 0x3123, 0x3106, 0x3110, 0x310B, 0x3114, 0x3127,
  54. 0x3112, 0x310A, 0x310C, 0x3117, 0x3108, 0x3124, 0x0020, 0x311D,
  55. 0x3126, 0x3121, 0x3125, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  56. 0x3000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  57. 0x0020, 0x0020, 0x0020, 0x0113, 0x0020, 0x01D4, 0x011B, 0x01CE,
  58. 0x00E8, 0x0020, 0x012B, 0x01D2, 0x00ED, 0x01D0, 0x00EC, 0x01D8,
  59. 0x01D6, 0x00F2, 0x0020, 0x0101, 0x00E0, 0x00E9, 0x0020, 0x00F3,
  60. 0x00F9, 0x00E1, 0x00FA, 0x014D, 0x016B, 0x0020, 0x0020, 0x01DA,
  61. 0x0020, 0x01DC, 0x00FC, 0x0020, 0x00EA, 0x0020, 0x0020, 0x0020,
  62. 0x3000, 0x0020, 0x3043, 0x3045, 0x3047, 0x3049, 0x304B, 0x304D,
  63. 0x304F, 0x3051, 0x3053, 0x306A, 0x3082, 0x3080, 0x306C, 0x3059,
  64. 0x306D, 0x306E, 0x306F, 0x3064, 0x3072, 0x3075, 0x3078, 0x3085,
  65. 0x3083, 0x3063, 0x3066, 0x3055, 0x305B, 0x306B, 0x305D, 0x3061,
  66. 0x3081, 0x3057, 0x307F, 0x305F, 0x307E, 0x307B, 0x0020, 0x3087,
  67. 0x3093, 0x308E, 0x3092, 0x3041, 0x3068, 0x0020, 0x3090, 0x3091,
  68. 0x3000, 0x30B1, 0x30A3, 0x30A5, 0x30F4, 0x30A7, 0x30A9, 0x30AB,
  69. 0x30F5, 0x30AD, 0x30AF, 0x30CA, 0x30E2, 0x30E0, 0x30CC, 0x30B9,
  70. 0x30CD, 0x30CE, 0x30CF, 0x30C4, 0x30D2, 0x30D5, 0x30D8, 0x30E5,
  71. 0x30E3, 0x30C3, 0x30C6, 0x30B5, 0x30BB, 0x30CB, 0x30BD, 0x30C1,
  72. 0x30E1, 0x30B7, 0x30DF, 0x30BF, 0x30DE, 0x30DB, 0x30B3, 0x30E7,
  73. 0x30F6, 0x30EE, 0x30F2, 0x30A1, 0x30C8, 0x30F3, 0x30F0, 0x30F1,
  74. 0x3000, 0x02C9, 0xFF0C, 0x3001, 0xFF1B, 0xFF1A, 0xFF1F, 0xFF01,
  75. 0x2026, 0x2014, 0x00B7, 0x3014, 0xFF08, 0x3010, 0x3008, 0x201C,
  76. 0x3009, 0x300A, 0x300B, 0x2236, 0x300C, 0x300D, 0x300E, 0xFF3B,
  77. 0xFF09, 0xFF02, 0xFF07, 0x2018, 0x201D, 0x3015, 0x3005, 0x2016,
  78. 0x3011, 0x2019, 0x3017, 0xFF5E, 0x3016, 0x300F, 0x00A8, 0xFF3D,
  79. 0x02C7, 0xFF5B, 0xFF5D, 0x3002, 0xFF40, 0x3003, 0xFF5C, 0xFF0E,
  80. 0x3000, 0x216A, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166,
  81. 0x2167, 0x2168, 0x2169, 0x3220, 0x2478, 0x2476, 0x3222, 0x248A,
  82. 0x3223, 0x3224, 0x3225, 0x248F, 0x3226, 0x3227, 0x3228, 0x247A,
  83. 0x2479, 0x2490, 0x2491, 0x2488, 0x248B, 0x3221, 0x248C, 0x248E,
  84. 0x2477, 0x2489, 0x2475, 0x248D, 0x2474, 0x3229, 0x0020, 0x247B,
  85. 0x216B, 0x247C, 0x247D, 0x2160, 0x0020, 0x0020, 0x0020, 0x0020,
  86. 0x3000, 0x0020, 0x2261, 0x2260, 0xFF1D, 0x2264, 0x2265, 0xFF1C,
  87. 0xFF1E, 0x226E, 0x226F, 0x2227, 0x2299, 0x2220, 0x2211, 0xFF0D,
  88. 0x220F, 0x222A, 0x2229, 0x222B, 0x2208, 0x0020, 0x2235, 0x223D,
  89. 0x224C, 0x222E, 0x221D, 0x00B1, 0x00D7, 0x2228, 0x00F7, 0x0020,
  90. 0x2312, 0xFF0B, 0x2225, 0xFF0F, 0x22A5, 0x2234, 0x0020, 0x0020,
  91. 0x2237, 0x221A, 0x0020, 0x2248, 0x221E, 0x0020, 0x0020, 0x0020,
  92. 0x3000, 0x00A4, 0x00B0, 0x2032, 0x2033, 0xFF04, 0xFFE1, 0xFFE5,
  93. 0x2030, 0xFF05, 0x2103, 0x767E, 0x0020, 0x6BEB, 0x4E07, 0x4E8C,
  94. 0x4EBF, 0x5146, 0x5409, 0x4E03, 0x592A, 0x62CD, 0x827E, 0x0020,
  95. 0x0020, 0x516B, 0x4E5D, 0x25CB, 0x4E09, 0x5343, 0x56DB, 0x516D,
  96. 0x5FAE, 0x4E00, 0x5398, 0x4E94, 0x5206, 0x0020, 0x0020, 0x0020,
  97. 0xFFE0, 0x0020, 0x0020, 0x0020, 0x5341, 0x0020, 0x0020, 0x0020,
  98. 0x3000, 0x2504, 0x250D, 0x250E, 0x250F, 0x2510, 0x2511, 0x2512,
  99. 0x2513, 0x0020, 0x2500, 0x252C, 0x2540, 0x253E, 0x252E, 0x251E,
  100. 0x252F, 0x2530, 0x2531, 0x2523, 0x2532, 0x2533, 0x0020, 0x2542,
  101. 0x2541, 0x0020, 0x2502, 0x251C, 0x251F, 0x252D, 0x2520, 0x2522,
  102. 0x253F, 0x251D, 0x253D, 0x2521, 0x253C, 0x0020, 0x0020, 0x2543,
  103. 0x2508, 0x0020, 0x0020, 0x250C, 0x2506, 0x0020, 0x250A, 0x0020,
  104. 0x3000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  105. 0x0020, 0x0020, 0x0020, 0x25A0, 0xFF3E, 0xFF20, 0x25B2, 0x2606,
  106. 0x203B, 0x2192, 0x2190, 0x25C7, 0x2191, 0x2193, 0x3013, 0xFFE3,
  107. 0xFF3F, 0x25C6, 0x25A1, 0x00A7, 0x2605, 0x25B3, 0x25CB, 0x25CE,
  108. 0xFF3C, 0x2116, 0xFF06, 0x25CF, 0xFF03, 0x0020, 0x0020, 0x0020,
  109. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  110. };
  111. TCHAR SKLayoutS[NumsSK][MAXSOFTKEYS] = {
  112. #ifdef KEYSTICKER
  113. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  114. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  115. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  116. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  117. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  118. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  119. #else
  120. 0x3000, 0xFF09, 0xFF01, 0xFF20, 0xFF03, 0xFF04, 0xFF05, 0xFF3E,
  121. 0xFF06, 0xFF0A, 0xFF08, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25,
  122. 0xFF26, 0xFF27, 0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D,
  123. 0xFF2E, 0xFF2F, 0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35,
  124. 0xFF36, 0xFF37, 0xFF38, 0xFF39, 0xFF3A, 0xFF1A, 0xFF0B, 0xFF1C,
  125. 0xFF3F, 0xFF1E, 0xFF1F, 0xFF5E, 0xFF5B, 0xFF5C, 0xFF5D, 0xFF02,
  126. #endif //KEYSTICKER
  127. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  128. 0x0020, 0x0020, 0x0020, 0x039A, 0x03A7, 0x03A5, 0x039C, 0x0393,
  129. 0x039D, 0x039E, 0x039F, 0x0398, 0x03A0, 0x03A1, 0x0020, 0x03A9,
  130. 0x03A8, 0x0399, 0x0020, 0x0391, 0x0394, 0x039B, 0x0395, 0x0397,
  131. 0x03A6, 0x0392, 0x03A4, 0x0396, 0x03A3, 0x0020, 0x0020, 0x0020,
  132. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  133. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  134. 0x0020, 0x0020, 0x0020, 0x041B, 0x042A, 0x0428, 0x041D, 0x0412,
  135. 0x041E, 0x041F, 0x0420, 0x0416, 0x0421, 0x0422, 0x0423, 0x042C,
  136. 0x042B, 0x0417, 0x0418, 0x0410, 0x0413, 0x041C, 0x0414, 0x0401,
  137. 0x0429, 0x0411, 0x0427, 0x0415, 0x0426, 0x0424, 0x0020, 0x042D,
  138. 0x0020, 0x042E, 0x042F, 0x0020, 0x0419, 0x0020, 0x041A, 0x0425,
  139. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  140. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  141. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  142. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  143. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  144. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  145. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  146. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  147. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  148. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  149. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  150. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  151. 0x0020, 0x0020, 0x3044, 0x3046, 0x3048, 0x304A, 0x304C, 0x304E,
  152. 0x3050, 0x3052, 0x3054, 0x3071, 0x308D, 0x308B, 0x3077, 0x305A,
  153. 0x307A, 0x307D, 0x3070, 0x3065, 0x3073, 0x3076, 0x3079, 0x3086,
  154. 0x3084, 0x0020, 0x3067, 0x3056, 0x305C, 0x3074, 0x305E, 0x3062,
  155. 0x308C, 0x3058, 0x308A, 0x3060, 0x3089, 0x307C, 0x0020, 0x3088,
  156. 0x0020, 0x308F, 0x0020, 0x3042, 0x3069, 0x0020, 0x0020, 0x0020,
  157. 0x0020, 0x30B2, 0x30A4, 0x30A6, 0x0020, 0x30A8, 0x30AA, 0x30AC,
  158. 0x0020, 0x30AE, 0x30B0, 0x30D1, 0x30ED, 0x30EB, 0x30D7, 0x30BA,
  159. 0x30DA, 0x30DD, 0x30D0, 0x30C5, 0x30D3, 0x30D6, 0x30D9, 0x30E6,
  160. 0x30E4, 0x0020, 0x30C7, 0x30B6, 0x30BC, 0x30D4, 0x30BE, 0x30C2,
  161. 0x30EC, 0x30B8, 0x30EA, 0x30C0, 0x30E9, 0x30DC, 0x30B4, 0x30E8,
  162. 0x0020, 0x30EF, 0x0020, 0x30A2, 0x30C9, 0x0020, 0x0020, 0x0020,
  163. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  164. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  165. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  166. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  167. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  168. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  169. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  170. 0x0020, 0x0020, 0x0020, 0x2460, 0x2482, 0x2480, 0x2462, 0x2494,
  171. 0x2463, 0x2464, 0x2465, 0x2499, 0x2466, 0x2467, 0x2468, 0x2484,
  172. 0x2483, 0x249A, 0x249B, 0x2492, 0x2495, 0x2461, 0x2496, 0x2498,
  173. 0x2481, 0x2493, 0x247F, 0x2497, 0x247E, 0x2469, 0x0020, 0x2485,
  174. 0x0020, 0x2486, 0x2487, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  175. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  176. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  177. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  178. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  179. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  180. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  181. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  182. 0x0020, 0x0020, 0x0020, 0x4F70, 0x0020, 0x0020, 0x0020, 0x8D30,
  183. 0x0020, 0x0020, 0x0020, 0x67D2, 0x0020, 0x0020, 0x0020, 0x0020,
  184. 0x0020, 0x634C, 0x7396, 0x96F6, 0x53C1, 0x4EDF, 0x8086, 0x9646,
  185. 0x0020, 0x58F9, 0x0020, 0x4F0D, 0x0020, 0x0020, 0x0020, 0x0020,
  186. 0x0020, 0x0020, 0x0020, 0x0020, 0x62FE, 0x0020, 0x0020, 0x0020,
  187. 0x0020, 0x2505, 0x2515, 0x2516, 0x2517, 0x2518, 0x2519, 0x251A,
  188. 0x251B, 0x0020, 0x2501, 0x2534, 0x2548, 0x2546, 0x2536, 0x2526,
  189. 0x2537, 0x2538, 0x2539, 0x252B, 0x253A, 0x253B, 0x0020, 0x254A,
  190. 0x2549, 0x0020, 0x2503, 0x2524, 0x2527, 0x2535, 0x2528, 0x252A,
  191. 0x2547, 0x2525, 0x2545, 0x2529, 0x2544, 0x0020, 0x0020, 0x254B,
  192. 0x2509, 0x0020, 0x0020, 0x2514, 0x2507, 0x0020, 0x250B, 0x0020,
  193. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  194. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  195. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  196. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  197. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  198. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
  199. };
  200. #else
  201. BYTE SKLayout[NumsSK][MAXSOFTKEYS*2] = {
  202. #ifdef KEYSTICKER
  203. #ifdef CHAJEI
  204. "�� ���½�ľˮ��������ʮ����һ�������ֿ�ʬإɽŮ���y���� "),
  205. #else //if PHON
  206. "�����Ũɡ��A�Ө@�B�ڨިǨ֨ϨΨͨѨըبۨ��ܨ����٨ߨ��ƨШ˨Ԩ��Ҩʨ̨רȨ� �ݨ����� ",
  207. #endif //CHAJEI
  208. #else //KEYSTICKER
  209. "�����������������������������������������������������������������������������������������ۣܣݣ�",
  210. #endif //KEYSTICKER
  211. "�� �ʦ֦Ԧ̦æͦΦϦȦЦ� �ئצ� ���Ħ˦ŦǦզ¦ӦƦ� ",
  212. "�� �ݧ����ߧӧ������ا����������٧ڧѧԧާէק��ҧ��֧��� �� ���� �� �ܧ�",
  213. "�����Ũɡ��A�Ө@�B�ڨިǨ֨ϨΨͨѨըبۨ��ܨ����٨ߨ��ƨШ˨Ԩ��Ҩʨ̨רȨ� �ݨ����� ",
  214. // "������ �� �ڨި��Ǩ֨ϨΨͨѨըبۨ��ܨ����٨ߨ��ƨШ˨Ԩ��Ҩ� �רȨ� �� ������ ",
  215. "�� �� �������� ���������������� ������ ������������ �� ���� �� ",
  216. "�� �������������������ʤ����̤��ͤΤϤĤҤդؤ����äƤ����ˤ����ᤷ�ߤ��ޤ� �������򤡤� ����",
  217. "�����������������������ʥ����̥��ͥΥϥĥҥեإ����åƥ����˥����᥷�ߥ��ޥۥ��������򥡥ȥ�����",
  218. "���������������������������������������á������ۣ������������������������������ݡ��������ࡨ����",
  219. "�������������������������ɢǢ碳�����ꢸ�������ˢʢ��������梵���Ȣ��Ƣ��Ţ� �̢��͢΢� ",
  220. "�� �ԡ٣��ܡݣ����ڡۡġѡϡƣ��ǡȡɡҡ� �ߡסաӡء����š� �У��Σ��͡� �ˡ� �֡� ",
  221. "�������������꣤�룥���� ���������׼���̫�İ� �˾š���ǧ����΢һ������ �� ʮ ",
  222. "������������������ ���Щ����ҩ©өԩթǩ֩� ���� �����éѩĩƩ������ũ� �穬 ���� �� ",
  223. "�� ���ޣ����������������������ߡ��������������ܡ������� ",
  224. };
  225. BYTE SKLayoutS[NumsSK][MAXSOFTKEYS*2] = {
  226. #ifdef KEYSTICKER
  227. " ",
  228. #else
  229. "�����������磥�ޣ��������£ãģţƣǣȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڣ������ߣ�������������",
  230. #endif //KEYSTICKER
  231. " ���������������������� ������ �������������������� ",
  232. " ������������������������������������������������������ �� ���� �� ����",
  233. " ",
  234. " ",
  235. " �������������������Ѥ����פ��ڤݤܤŤӤ֤٤��� �Ǥ����Ԥ��¤줸�������� �� �� ���� ",
  236. " ������ ������ �����ѥ����ץ��ڥݥХťӥ֥٥��� �ǥ����ԥ��¥쥸�������ܥ��� �� ���� ",
  237. " ",
  238. " �٢ӢѢۢ��ܢݢޢ¢ߢ����բԢâĢ����ڢ����Ң��Т��Ϣ� �� �ע� ",
  239. " ",
  240. " �� �� �� �Ǿ�����Ǫ��½ Ҽ �� ʰ ",
  241. " ���������������� ���ة����کʩ۩ܩݩϩީ� ���� ���ȩ˩٩̩Ω��ɩ��ͩ� �舘 ���� �� ",
  242. " ",
  243. };
  244. #endif //UNICODE
  245. #pragma data_seg()
  246. //
  247. TCHAR CWCodeStr[13] = {0};
  248. TCHAR CWDBCSStr[41] = {0};
  249. HWND hCrtDlg = NULL;
  250. UINT uStartComp = 0;
  251. UINT uOpenCand = 0;
  252. UINT uCaps = 0;
  253. DWORD SaTC_Trace;
  254. UINT UI_CANDSTR = 300;
  255. HINSTANCE hInst;
  256. IMEL sImeL;
  257. LPIMEL lpImeL = NULL;
  258. TCHAR szImeMBFileName[MAX_PATH] = TEXT("");
  259. TCHAR szUIClassName[CLASS_LEN] = TEXT("");
  260. TCHAR szCompClassName[CLASS_LEN] = TEXT("");
  261. TCHAR szCandClassName[CLASS_LEN] = TEXT("");
  262. TCHAR szStatusClassName[CLASS_LEN] = TEXT("");
  263. TCHAR szCMenuClassName[CLASS_LEN];
  264. TCHAR szSoftkeyMenuClassName[CLASS_LEN];
  265. TCHAR szOrgName[NAMESIZE/2] = TEXT("");
  266. TCHAR szVerInfo[NAMESIZE] = TEXT("");
  267. TCHAR szHandCursor[] = TEXT("Hand");
  268. TCHAR szChinese[] = TEXT("Chinese");
  269. TCHAR szCZ[] = TEXT("CZ");
  270. #ifdef UNICODE
  271. WCHAR szCandInf1[] = {
  272. 0x0020, 0x0020, 0x0053, 0x0068, 0x0069, 0x0066, 0x0074, 0x0020,
  273. 0x002B, 0x0020, 0x6570, 0x5B57, 0x952E, 0x0000
  274. };
  275. WCHAR szCandInf2[] = {
  276. 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x6570, 0x5B57,
  277. 0x952E, 0x0000
  278. };
  279. #else
  280. TCHAR szCandInf1[] = TEXT(" Shift + ���ּ�");
  281. TCHAR szCandInf2[] = TEXT(" ���ּ�");
  282. #endif
  283. TCHAR szEnglish[] = TEXT("English");
  284. TCHAR szImeName[] = TEXT("ImeName");
  285. TCHAR szCode[] = TEXT("Code");
  286. TCHAR szEudc[] = TEXT("Eudc");
  287. TCHAR szFullShape[] = TEXT("FullShape");
  288. TCHAR szHalfShape[] = TEXT("HalfShape");
  289. TCHAR szSymbol[] = TEXT("Symbol");
  290. TCHAR szNoSymbol[] = TEXT("NoSymbol");
  291. TCHAR szNone[] = TEXT("None");
  292. TCHAR szSoftKBD[] = TEXT("SoftKBD");
  293. TCHAR szNoSoftKBD[] = TEXT("NoSoftKBD");
  294. TCHAR szDigit[] = TEXT("01234567890");
  295. #ifdef UNICODE
  296. WCHAR szTrace[] = { 0x5149, 0x6807, 0x8DDF, 0x968F, 0x0000 };
  297. WCHAR szWarnTitle[] = { 0x8B66, 0x544A, 0x0000 };
  298. WCHAR szErrorTitle[] = { 0x9519, 0x8BEF, 0x0000 };
  299. #else
  300. TCHAR szTrace[]= TEXT("��������");
  301. TCHAR szWarnTitle[]=TEXT("����");
  302. TCHAR szErrorTitle[]=TEXT("����");
  303. #endif
  304. // convert char to upper case
  305. BYTE bUpper[] = {
  306. 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
  307. 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
  308. 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
  309. 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
  310. 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
  311. 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
  312. 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
  313. 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
  314. '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
  315. 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
  316. 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
  317. 'X', 'Y', 'Z'
  318. };
  319. TCHAR szRegIMESetting[] = TEXT("Control Panel\\Input Method");
  320. TCHAR szPara[] = TEXT("Parallel Distance");
  321. TCHAR szPerp[] = TEXT("Perpendicular Distance");
  322. TCHAR szParaTol[] = TEXT("Parallel Tolerance");
  323. TCHAR szPerpTol[] = TEXT("Perpendicular Tolerance");
  324. #if defined(CROSSREF)
  325. #ifdef UNICODE
  326. WCHAR szRegRevKL[] = { 0x7F16, 0x7801, 0x67E5, 0x8BE2, 0x0000 };
  327. WCHAR szRegRevMaxKey[] = { 0x7F16, 0x7801, 0x67E5, 0x8BE2, 0x7801, 0x957F, 0x0000 };
  328. #else
  329. TCHAR szRegRevKL[] = TEXT("������ѯ");
  330. TCHAR szRegRevMaxKey[] = TEXT("������ѯ�볤");
  331. #endif
  332. #endif //CROSSREF
  333. #if defined(EUDC)
  334. TCHAR szRegEudcDictName[] = TEXT("EUDCDictName");
  335. TCHAR szRegEudcMapFileName[] = TEXT("EUDCMapFileName");
  336. #endif
  337. // decide UI offset base on escapement
  338. const NEARCARET ncUIEsc[] = {
  339. // LogFontX LogFontY ParaX PerpX ParaY PerpY
  340. { 0, 1, 1, 0, 0, 1}, // 0
  341. { 1, 0, 0, 1, 1, 0}, // 900
  342. { 0, 0, -1, 0, 0, 1}, // 1800
  343. {-1, 0, 0, -1, -1, 0} // 2700
  344. };
  345. // decide another UI offset base on escapement
  346. const NEARCARET ncAltUIEsc[] = {
  347. // LogFontX LogFontY ParaX PerpX ParaY PerpY
  348. { 0, 0, 1, 0, 0, -1}, // 0
  349. { 0, 0, 0, -1, 1, 0}, // 900
  350. { 0, 0, -1, 0, 0, -1}, // 1800
  351. { 0, 0, 0, 1, -1, 0} // 2700
  352. };
  353. // decide input rectangle base on escapement
  354. const POINT ptInputEsc[] = {
  355. // LogFontWi LogFontHi
  356. {1, 1}, // 0
  357. {1, -1}, // 900
  358. {1, 1}, // 1800
  359. {-1, 1} // 2700
  360. };
  361. // decide another input rectangle base on escapement
  362. const POINT ptAltInputEsc[] = {
  363. // LogFontWi LogFontHi
  364. {1, -1}, // 0
  365. {-1, -1}, // 900
  366. {1, -1}, // 1800
  367. {1, 1} // 2700
  368. };
  369. BYTE VirtKey48Map[MAXSOFTKEYS] = {
  370. 0x20, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
  371. 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
  372. 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53,
  373. 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0xba, 0xbb, 0xbc,
  374. 0xbd, 0xbe, 0xbf, 0xc0, 0xdb, 0xdc, 0xdd, 0xde
  375. };
  376. #ifdef KEYSTICKER
  377. #ifdef CHAJEI
  378. TCHAR KeyIndexTbl[INDEXNUM] = {
  379. TEXT('a'), TEXT('b'), TEXT('c'), TEXT('d'),
  380. TEXT('e'), TEXT('f'), TEXT('g'), TEXT('h'),
  381. TEXT('i'), TEXT('j'), TEXT('k'), TEXT('l'),
  382. TEXT('m'), TEXT('n'), TEXT('o'), TEXT('p'),
  383. TEXT('q'), TEXT('r'), TEXT('s'), TEXT('t'),
  384. TEXT('u'), TEXT('v'), TEXT('w'), TEXT('x'),
  385. TEXT('y'), TEXT('z')};
  386. #ifdef UNICODE
  387. WCHAR MapKeySticker_a[] = { 0x65E5, 0x0000 };
  388. WCHAR MapKeySticker_b[] = { 0x6708, 0x0000 };
  389. WCHAR MapKeySticker_c[] = { 0x91D1, 0x0000 };
  390. WCHAR MapKeySticker_d[] = { 0x6728, 0x0000 };
  391. WCHAR MapKeySticker_e[] = { 0x6C34, 0x0000 };
  392. WCHAR MapKeySticker_f[] = { 0x706B, 0x0000 };
  393. WCHAR MapKeySticker_g[] = { 0x571F, 0x0000 };
  394. WCHAR MapKeySticker_h[] = { 0x7AF9, 0x0000 };
  395. WCHAR MapKeySticker_i[] = { 0x6208, 0x0000 };
  396. WCHAR MapKeySticker_j[] = { 0x5341, 0x0000 };
  397. WCHAR MapKeySticker_k[] = { 0x5927, 0x0000 };
  398. WCHAR MapKeySticker_l[] = { 0x4E2D, 0x0000 };
  399. WCHAR MapKeySticker_m[] = { 0x4E00, 0x0000 };
  400. WCHAR MapKeySticker_n[] = { 0x5F13, 0x0000 };
  401. WCHAR MapKeySticker_o[] = { 0x4EBA, 0x0000 };
  402. WCHAR MapKeySticker_p[] = { 0x5FC3, 0x0000 };
  403. WCHAR MapKeySticker_q[] = { 0x624B, 0x0000 };
  404. WCHAR MapKeySticker_r[] = { 0x53E3, 0x0000 };
  405. WCHAR MapKeySticker_s[] = { 0x5C38, 0x0000 };
  406. WCHAR MapKeySticker_t[] = { 0x5EFF, 0x0000 };
  407. WCHAR MapKeySticker_u[] = { 0x5C71, 0x0000 };
  408. WCHAR MapKeySticker_v[] = { 0x5973, 0x0000 };
  409. WCHAR MapKeySticker_w[] = { 0x7530, 0x0000 };
  410. WCHAR MapKeySticker_x[] = { 0x96E3, 0x0000 };
  411. WCHAR MapKeySticker_y[] = { 0x535C, 0x0000 };
  412. WCHAR MapKeySticker_z[] = { 0xFF3A, 0x0000 };
  413. LPWSTR MapKeyStickerTbl[INDEXNUM] = {
  414. MapKeySticker_a, MapKeySticker_b, MapKeySticker_c,
  415. MapKeySticker_d, MapKeySticker_e, MapKeySticker_f,
  416. MapKeySticker_g, MapKeySticker_h, MapKeySticker_i,
  417. MapKeySticker_j, MapKeySticker_k, MapKeySticker_l,
  418. MapKeySticker_m, MapKeySticker_n, MapKeySticker_o,
  419. MapKeySticker_p, MapKeySticker_q, MapKeySticker_r,
  420. MapKeySticker_s, MapKeySticker_t, MapKeySticker_u,
  421. MapKeySticker_v, MapKeySticker_w, MapKeySticker_x,
  422. MapKeySticker_y, MapKeySticker_z
  423. };
  424. #else
  425. LPTSTR MapKeyStickerTbl[INDEXNUM] = {
  426. TEXT("��"), TEXT("��"), TEXT("��"),
  427. TEXT("ľ"), TEXT("ˮ"), TEXT("��"),
  428. TEXT("��"), TEXT("��"), TEXT("��"),
  429. TEXT("ʮ"), TEXT("��"), TEXT("��"),
  430. TEXT("һ"), TEXT("��"), TEXT("��"),
  431. TEXT("��"), TEXT("��"), TEXT("��"),
  432. TEXT("ʬ"), TEXT("إ"), TEXT("ɽ"),
  433. TEXT("Ů"), TEXT("��"), TEXT("�y"),
  434. TEXT("��"), TEXT("��")};
  435. #endif // UNICODE
  436. #endif // CHAJEI
  437. #ifdef PHON
  438. TCHAR KeyIndexTbl[INDEXNUM] = {
  439. TEXT('a'), TEXT('b'), TEXT('c'), TEXT('d'),
  440. TEXT('e'), TEXT('f'), TEXT('g'), TEXT('h'),
  441. TEXT('i'), TEXT('j'), TEXT('k'), TEXT('l'),
  442. TEXT('m'), TEXT('n'), TEXT('o'), TEXT('p'),
  443. TEXT('q'), TEXT('r'), TEXT('s'), TEXT('t'),
  444. TEXT('u'), TEXT('v'), TEXT('w'), TEXT('x'),
  445. TEXT('y'), TEXT('z'), TEXT('1'), TEXT('2'),
  446. TEXT('3'), TEXT('4'), TEXT('5'), TEXT('6'),
  447. TEXT('7'), TEXT('8'), TEXT('9'), TEXT('0'),
  448. TEXT('-'), TEXT('='), TEXT('\\'),TEXT('['),
  449. TEXT(']'), TEXT(';'), TEXT('\''),TEXT(','),
  450. TEXT('.'), TEXT('/')};
  451. #ifdef UNICODE
  452. WCHAR MapKeySticker_a[] = { 0x3107, 0x0000 };
  453. WCHAR MapKeySticker_b[] = { 0x3116, 0x0000 };
  454. WCHAR MapKeySticker_c[] = { 0x310F, 0x0000 };
  455. WCHAR MapKeySticker_d[] = { 0x310E, 0x0000 };
  456. WCHAR MapKeySticker_e[] = { 0x310D, 0x0000 };
  457. WCHAR MapKeySticker_f[] = { 0x3111, 0x0000 };
  458. WCHAR MapKeySticker_g[] = { 0x3115, 0x0000 };
  459. WCHAR MapKeySticker_h[] = { 0x3118, 0x0000 };
  460. WCHAR MapKeySticker_i[] = { 0x311B, 0x0000 };
  461. WCHAR MapKeySticker_j[] = { 0x3128, 0x0000 };
  462. WCHAR MapKeySticker_k[] = { 0x311C, 0x0000 };
  463. WCHAR MapKeySticker_l[] = { 0x3120, 0x0000 };
  464. WCHAR MapKeySticker_m[] = { 0x3129, 0x0000 };
  465. WCHAR MapKeySticker_n[] = { 0x3119, 0x0000 };
  466. WCHAR MapKeySticker_o[] = { 0x311F, 0x0000 };
  467. WCHAR MapKeySticker_p[] = { 0x3123, 0x0000 };
  468. WCHAR MapKeySticker_q[] = { 0x3106, 0x0000 };
  469. WCHAR MapKeySticker_r[] = { 0x3110, 0x0000 };
  470. WCHAR MapKeySticker_s[] = { 0x310B, 0x0000 };
  471. WCHAR MapKeySticker_t[] = { 0x3114, 0x0000 };
  472. WCHAR MapKeySticker_u[] = { 0x3127, 0x0000 };
  473. WCHAR MapKeySticker_v[] = { 0x3112, 0x0000 };
  474. WCHAR MapKeySticker_w[] = { 0x310A, 0x0000 };
  475. WCHAR MapKeySticker_x[] = { 0x310C, 0x0000 };
  476. WCHAR MapKeySticker_y[] = { 0x3117, 0x0000 };
  477. WCHAR MapKeySticker_z[] = { 0x3108, 0x0000 };
  478. WCHAR MapKeySticker_1[] = { 0x3105, 0x0000 };
  479. WCHAR MapKeySticker_2[] = { 0x3109, 0x0000 };
  480. WCHAR MapKeySticker_3[] = { 0x02C7, 0x0000 };
  481. WCHAR MapKeySticker_4[] = { 0x02CB, 0x0000 };
  482. WCHAR MapKeySticker_5[] = { 0x3113, 0x0000 };
  483. WCHAR MapKeySticker_6[] = { 0x02CA, 0x0000 };
  484. WCHAR MapKeySticker_7[] = { 0x02D9, 0x0000 };
  485. WCHAR MapKeySticker_8[] = { 0x311A, 0x0000 };
  486. WCHAR MapKeySticker_9[] = { 0x311E, 0x0000 };
  487. WCHAR MapKeySticker_0[] = { 0x3122, 0x0000 };
  488. WCHAR MapKeySticker_MINUS[] = { 0x3126, 0x0000 };
  489. WCHAR MapKeySticker_EQUAL[] = { 0x0000, 0x0000 };
  490. WCHAR MapKeySticker_BSLASH[] = { 0x0000, 0x0000 };
  491. WCHAR MapKeySticker_LBRACKET[] = { 0x0000 };
  492. WCHAR MapKeySticker_RBRACKET[] = { 0x0000 };
  493. WCHAR MapKeySticker_SEMICLN[] = { 0x3124, 0x0000 };
  494. WCHAR MapKeySticker_QUOTE[] = { 0x0000 };
  495. WCHAR MapKeySticker_COMMA[] = { 0x311D, 0x0000 };
  496. WCHAR MapKeySticker_DOT[] = { 0x3121, 0x0000 };
  497. WCHAR MapKeySticker_SLASH[] = { 0x3125, 0x0000 };
  498. LPWSTR MapKeyStickerTbl[INDEXNUM] = {
  499. MapKeySticker_a, MapKeySticker_b, MapKeySticker_c,
  500. MapKeySticker_d, MapKeySticker_e, MapKeySticker_f,
  501. MapKeySticker_g, MapKeySticker_h, MapKeySticker_i,
  502. MapKeySticker_j, MapKeySticker_k, MapKeySticker_l,
  503. MapKeySticker_m, MapKeySticker_n, MapKeySticker_o,
  504. MapKeySticker_p, MapKeySticker_q, MapKeySticker_r,
  505. MapKeySticker_s, MapKeySticker_t, MapKeySticker_u,
  506. MapKeySticker_v, MapKeySticker_w, MapKeySticker_x,
  507. MapKeySticker_y, MapKeySticker_z, MapKeySticker_1,
  508. MapKeySticker_2, MapKeySticker_3, MapKeySticker_4,
  509. MapKeySticker_5, MapKeySticker_6, MapKeySticker_7,
  510. MapKeySticker_8, MapKeySticker_9, MapKeySticker_0,
  511. MapKeySticker_MINUS, MapKeySticker_EQUAL, MapKeySticker_BSLASH,
  512. MapKeySticker_LBRACKET, MapKeySticker_RBRACKET, MapKeySticker_SEMICLN,
  513. MapKeySticker_QUOTE, MapKeySticker_COMMA, MapKeySticker_DOT,
  514. MapKeySticker_SLASH
  515. };
  516. #else
  517. LPTSTR MapKeyStickerTbl[INDEXNUM] = {
  518. TEXT("��"), TEXT("��"), TEXT("��"),
  519. TEXT("��"), TEXT("��"), TEXT("��"),
  520. TEXT("��"), TEXT("��"), TEXT("��"),
  521. TEXT("��"), TEXT("��"), TEXT("��"),
  522. TEXT("��"), TEXT("��"), TEXT("��"),
  523. TEXT("��"), TEXT("��"), TEXT("��"),
  524. TEXT("��"), TEXT("��"), TEXT("��"),
  525. TEXT("��"), TEXT("��"), TEXT("��"),
  526. TEXT("��"), TEXT("��"), TEXT("��"),
  527. TEXT("��"), TEXT("��"), TEXT("�A"),
  528. TEXT("��"), TEXT("�@"), TEXT("�B"),
  529. TEXT("��"), TEXT("��"), TEXT("��"),
  530. TEXT("��"), TEXT(""), TEXT(""),
  531. TEXT(""), TEXT(""), TEXT("��"),
  532. TEXT(""), TEXT("��"), TEXT("��"),
  533. TEXT("��")};
  534. #endif // UNICODE
  535. #endif // PHON
  536. #endif //KEYSTICKER