Leaked source code of windows server 2003
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.

589 lines
29 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 szCode[] = TEXT("Code");
  285. TCHAR szEudc[] = TEXT("Eudc");
  286. TCHAR szFullShape[] = TEXT("FullShape");
  287. TCHAR szHalfShape[] = TEXT("HalfShape");
  288. TCHAR szSymbol[] = TEXT("Symbol");
  289. TCHAR szNoSymbol[] = TEXT("NoSymbol");
  290. TCHAR szNone[] = TEXT("None");
  291. TCHAR szSoftKBD[] = TEXT("SoftKBD");
  292. TCHAR szNoSoftKBD[] = TEXT("NoSoftKBD");
  293. TCHAR szDigit[] = TEXT("01234567890");
  294. #ifdef UNICODE
  295. WCHAR szTrace[] = { 0x5149, 0x6807, 0x8DDF, 0x968F, 0x0000 };
  296. WCHAR szWarnTitle[] = { 0x8B66, 0x544A, 0x0000 };
  297. WCHAR szErrorTitle[] = { 0x9519, 0x8BEF, 0x0000 };
  298. #else
  299. TCHAR szTrace[]= TEXT("��������");
  300. TCHAR szWarnTitle[]=TEXT("����");
  301. TCHAR szErrorTitle[]=TEXT("����");
  302. #endif
  303. // convert char to upper case
  304. BYTE bUpper[] = {
  305. 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
  306. 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
  307. 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
  308. 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
  309. 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
  310. 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
  311. 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
  312. 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
  313. '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
  314. 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
  315. 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
  316. 'X', 'Y', 'Z'
  317. };
  318. TCHAR szRegIMESetting[] = TEXT("Control Panel\\Input Method");
  319. TCHAR szPara[] = TEXT("Parallel Distance");
  320. TCHAR szPerp[] = TEXT("Perpendicular Distance");
  321. TCHAR szParaTol[] = TEXT("Parallel Tolerance");
  322. TCHAR szPerpTol[] = TEXT("Perpendicular Tolerance");
  323. #if defined(CROSSREF)
  324. #ifdef UNICODE
  325. WCHAR szRegRevKL[] = { 0x7F16, 0x7801, 0x67E5, 0x8BE2, 0x0000 };
  326. WCHAR szRegRevMaxKey[] = { 0x7F16, 0x7801, 0x67E5, 0x8BE2, 0x7801, 0x957F, 0x0000 };
  327. #else
  328. TCHAR szRegRevKL[] = TEXT("������ѯ");
  329. TCHAR szRegRevMaxKey[] = TEXT("������ѯ�볤");
  330. #endif
  331. #endif //CROSSREF
  332. #if defined(EUDC)
  333. TCHAR szRegEudcDictName[] = TEXT("EUDCDictName");
  334. TCHAR szRegEudcMapFileName[] = TEXT("EUDCMapFileName");
  335. #endif
  336. // decide UI offset base on escapement
  337. const NEARCARET ncUIEsc[] = {
  338. // LogFontX LogFontY ParaX PerpX ParaY PerpY
  339. { 0, 1, 1, 0, 0, 1}, // 0
  340. { 1, 0, 0, 1, 1, 0}, // 900
  341. { 0, 0, -1, 0, 0, 1}, // 1800
  342. {-1, 0, 0, -1, -1, 0} // 2700
  343. };
  344. // decide another UI offset base on escapement
  345. const NEARCARET ncAltUIEsc[] = {
  346. // LogFontX LogFontY ParaX PerpX ParaY PerpY
  347. { 0, 0, 1, 0, 0, -1}, // 0
  348. { 0, 0, 0, -1, 1, 0}, // 900
  349. { 0, 0, -1, 0, 0, -1}, // 1800
  350. { 0, 0, 0, 1, -1, 0} // 2700
  351. };
  352. // decide input rectangle base on escapement
  353. const POINT ptInputEsc[] = {
  354. // LogFontWi LogFontHi
  355. {1, 1}, // 0
  356. {1, -1}, // 900
  357. {1, 1}, // 1800
  358. {-1, 1} // 2700
  359. };
  360. // decide another input rectangle base on escapement
  361. const POINT ptAltInputEsc[] = {
  362. // LogFontWi LogFontHi
  363. {1, -1}, // 0
  364. {-1, -1}, // 900
  365. {1, -1}, // 1800
  366. {1, 1} // 2700
  367. };
  368. BYTE VirtKey48Map[MAXSOFTKEYS] = {
  369. 0x20, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
  370. 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
  371. 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53,
  372. 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0xba, 0xbb, 0xbc,
  373. 0xbd, 0xbe, 0xbf, 0xc0, 0xdb, 0xdc, 0xdd, 0xde
  374. };
  375. #ifdef KEYSTICKER
  376. #ifdef CHAJEI
  377. TCHAR KeyIndexTbl[INDEXNUM] = {
  378. TEXT('a'), TEXT('b'), TEXT('c'), TEXT('d'),
  379. TEXT('e'), TEXT('f'), TEXT('g'), TEXT('h'),
  380. TEXT('i'), TEXT('j'), TEXT('k'), TEXT('l'),
  381. TEXT('m'), TEXT('n'), TEXT('o'), TEXT('p'),
  382. TEXT('q'), TEXT('r'), TEXT('s'), TEXT('t'),
  383. TEXT('u'), TEXT('v'), TEXT('w'), TEXT('x'),
  384. TEXT('y'), TEXT('z')};
  385. #ifdef UNICODE
  386. WCHAR MapKeySticker_a[] = { 0x65E5, 0x0000 };
  387. WCHAR MapKeySticker_b[] = { 0x6708, 0x0000 };
  388. WCHAR MapKeySticker_c[] = { 0x91D1, 0x0000 };
  389. WCHAR MapKeySticker_d[] = { 0x6728, 0x0000 };
  390. WCHAR MapKeySticker_e[] = { 0x6C34, 0x0000 };
  391. WCHAR MapKeySticker_f[] = { 0x706B, 0x0000 };
  392. WCHAR MapKeySticker_g[] = { 0x571F, 0x0000 };
  393. WCHAR MapKeySticker_h[] = { 0x7AF9, 0x0000 };
  394. WCHAR MapKeySticker_i[] = { 0x6208, 0x0000 };
  395. WCHAR MapKeySticker_j[] = { 0x5341, 0x0000 };
  396. WCHAR MapKeySticker_k[] = { 0x5927, 0x0000 };
  397. WCHAR MapKeySticker_l[] = { 0x4E2D, 0x0000 };
  398. WCHAR MapKeySticker_m[] = { 0x4E00, 0x0000 };
  399. WCHAR MapKeySticker_n[] = { 0x5F13, 0x0000 };
  400. WCHAR MapKeySticker_o[] = { 0x4EBA, 0x0000 };
  401. WCHAR MapKeySticker_p[] = { 0x5FC3, 0x0000 };
  402. WCHAR MapKeySticker_q[] = { 0x624B, 0x0000 };
  403. WCHAR MapKeySticker_r[] = { 0x53E3, 0x0000 };
  404. WCHAR MapKeySticker_s[] = { 0x5C38, 0x0000 };
  405. WCHAR MapKeySticker_t[] = { 0x5EFF, 0x0000 };
  406. WCHAR MapKeySticker_u[] = { 0x5C71, 0x0000 };
  407. WCHAR MapKeySticker_v[] = { 0x5973, 0x0000 };
  408. WCHAR MapKeySticker_w[] = { 0x7530, 0x0000 };
  409. WCHAR MapKeySticker_x[] = { 0x96E3, 0x0000 };
  410. WCHAR MapKeySticker_y[] = { 0x535C, 0x0000 };
  411. WCHAR MapKeySticker_z[] = { 0xFF3A, 0x0000 };
  412. LPWSTR MapKeyStickerTbl[INDEXNUM] = {
  413. MapKeySticker_a, MapKeySticker_b, MapKeySticker_c,
  414. MapKeySticker_d, MapKeySticker_e, MapKeySticker_f,
  415. MapKeySticker_g, MapKeySticker_h, MapKeySticker_i,
  416. MapKeySticker_j, MapKeySticker_k, MapKeySticker_l,
  417. MapKeySticker_m, MapKeySticker_n, MapKeySticker_o,
  418. MapKeySticker_p, MapKeySticker_q, MapKeySticker_r,
  419. MapKeySticker_s, MapKeySticker_t, MapKeySticker_u,
  420. MapKeySticker_v, MapKeySticker_w, MapKeySticker_x,
  421. MapKeySticker_y, MapKeySticker_z
  422. };
  423. #else
  424. LPTSTR MapKeyStickerTbl[INDEXNUM] = {
  425. TEXT("��"), TEXT("��"), TEXT("��"),
  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("�y"),
  433. TEXT("��"), TEXT("��")};
  434. #endif // UNICODE
  435. #endif // CHAJEI
  436. #ifdef PHON
  437. TCHAR KeyIndexTbl[INDEXNUM] = {
  438. TEXT('a'), TEXT('b'), TEXT('c'), TEXT('d'),
  439. TEXT('e'), TEXT('f'), TEXT('g'), TEXT('h'),
  440. TEXT('i'), TEXT('j'), TEXT('k'), TEXT('l'),
  441. TEXT('m'), TEXT('n'), TEXT('o'), TEXT('p'),
  442. TEXT('q'), TEXT('r'), TEXT('s'), TEXT('t'),
  443. TEXT('u'), TEXT('v'), TEXT('w'), TEXT('x'),
  444. TEXT('y'), TEXT('z'), TEXT('1'), TEXT('2'),
  445. TEXT('3'), TEXT('4'), TEXT('5'), TEXT('6'),
  446. TEXT('7'), TEXT('8'), TEXT('9'), TEXT('0'),
  447. TEXT('-'), TEXT('='), TEXT('\\'),TEXT('['),
  448. TEXT(']'), TEXT(';'), TEXT('\''),TEXT(','),
  449. TEXT('.'), TEXT('/')};
  450. #ifdef UNICODE
  451. WCHAR MapKeySticker_a[] = { 0x3107, 0x0000 };
  452. WCHAR MapKeySticker_b[] = { 0x3116, 0x0000 };
  453. WCHAR MapKeySticker_c[] = { 0x310F, 0x0000 };
  454. WCHAR MapKeySticker_d[] = { 0x310E, 0x0000 };
  455. WCHAR MapKeySticker_e[] = { 0x310D, 0x0000 };
  456. WCHAR MapKeySticker_f[] = { 0x3111, 0x0000 };
  457. WCHAR MapKeySticker_g[] = { 0x3115, 0x0000 };
  458. WCHAR MapKeySticker_h[] = { 0x3118, 0x0000 };
  459. WCHAR MapKeySticker_i[] = { 0x311B, 0x0000 };
  460. WCHAR MapKeySticker_j[] = { 0x3128, 0x0000 };
  461. WCHAR MapKeySticker_k[] = { 0x311C, 0x0000 };
  462. WCHAR MapKeySticker_l[] = { 0x3120, 0x0000 };
  463. WCHAR MapKeySticker_m[] = { 0x3129, 0x0000 };
  464. WCHAR MapKeySticker_n[] = { 0x3119, 0x0000 };
  465. WCHAR MapKeySticker_o[] = { 0x311F, 0x0000 };
  466. WCHAR MapKeySticker_p[] = { 0x3123, 0x0000 };
  467. WCHAR MapKeySticker_q[] = { 0x3106, 0x0000 };
  468. WCHAR MapKeySticker_r[] = { 0x3110, 0x0000 };
  469. WCHAR MapKeySticker_s[] = { 0x310B, 0x0000 };
  470. WCHAR MapKeySticker_t[] = { 0x3114, 0x0000 };
  471. WCHAR MapKeySticker_u[] = { 0x3127, 0x0000 };
  472. WCHAR MapKeySticker_v[] = { 0x3112, 0x0000 };
  473. WCHAR MapKeySticker_w[] = { 0x310A, 0x0000 };
  474. WCHAR MapKeySticker_x[] = { 0x310C, 0x0000 };
  475. WCHAR MapKeySticker_y[] = { 0x3117, 0x0000 };
  476. WCHAR MapKeySticker_z[] = { 0x3108, 0x0000 };
  477. WCHAR MapKeySticker_1[] = { 0x3105, 0x0000 };
  478. WCHAR MapKeySticker_2[] = { 0x3109, 0x0000 };
  479. WCHAR MapKeySticker_3[] = { 0x02C7, 0x0000 };
  480. WCHAR MapKeySticker_4[] = { 0x02CB, 0x0000 };
  481. WCHAR MapKeySticker_5[] = { 0x3113, 0x0000 };
  482. WCHAR MapKeySticker_6[] = { 0x02CA, 0x0000 };
  483. WCHAR MapKeySticker_7[] = { 0x02D9, 0x0000 };
  484. WCHAR MapKeySticker_8[] = { 0x311A, 0x0000 };
  485. WCHAR MapKeySticker_9[] = { 0x311E, 0x0000 };
  486. WCHAR MapKeySticker_0[] = { 0x3122, 0x0000 };
  487. WCHAR MapKeySticker_MINUS[] = { 0x3126, 0x0000 };
  488. WCHAR MapKeySticker_EQUAL[] = { 0x0000, 0x0000 };
  489. WCHAR MapKeySticker_BSLASH[] = { 0x0000, 0x0000 };
  490. WCHAR MapKeySticker_LBRACKET[] = { 0x0000 };
  491. WCHAR MapKeySticker_RBRACKET[] = { 0x0000 };
  492. WCHAR MapKeySticker_SEMICLN[] = { 0x3124, 0x0000 };
  493. WCHAR MapKeySticker_QUOTE[] = { 0x0000 };
  494. WCHAR MapKeySticker_COMMA[] = { 0x311D, 0x0000 };
  495. WCHAR MapKeySticker_DOT[] = { 0x3121, 0x0000 };
  496. WCHAR MapKeySticker_SLASH[] = { 0x3125, 0x0000 };
  497. LPWSTR MapKeyStickerTbl[INDEXNUM] = {
  498. MapKeySticker_a, MapKeySticker_b, MapKeySticker_c,
  499. MapKeySticker_d, MapKeySticker_e, MapKeySticker_f,
  500. MapKeySticker_g, MapKeySticker_h, MapKeySticker_i,
  501. MapKeySticker_j, MapKeySticker_k, MapKeySticker_l,
  502. MapKeySticker_m, MapKeySticker_n, MapKeySticker_o,
  503. MapKeySticker_p, MapKeySticker_q, MapKeySticker_r,
  504. MapKeySticker_s, MapKeySticker_t, MapKeySticker_u,
  505. MapKeySticker_v, MapKeySticker_w, MapKeySticker_x,
  506. MapKeySticker_y, MapKeySticker_z, MapKeySticker_1,
  507. MapKeySticker_2, MapKeySticker_3, MapKeySticker_4,
  508. MapKeySticker_5, MapKeySticker_6, MapKeySticker_7,
  509. MapKeySticker_8, MapKeySticker_9, MapKeySticker_0,
  510. MapKeySticker_MINUS, MapKeySticker_EQUAL, MapKeySticker_BSLASH,
  511. MapKeySticker_LBRACKET, MapKeySticker_RBRACKET, MapKeySticker_SEMICLN,
  512. MapKeySticker_QUOTE, MapKeySticker_COMMA, MapKeySticker_DOT,
  513. MapKeySticker_SLASH
  514. };
  515. #else
  516. LPTSTR MapKeyStickerTbl[INDEXNUM] = {
  517. TEXT("��"), TEXT("��"), TEXT("��"),
  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("�A"),
  527. TEXT("��"), TEXT("�@"), TEXT("�B"),
  528. TEXT("��"), TEXT("��"), TEXT("��"),
  529. TEXT("��"), TEXT(""), TEXT(""),
  530. TEXT(""), TEXT(""), TEXT("��"),
  531. TEXT(""), TEXT("��"), TEXT("��"),
  532. TEXT("��")};
  533. #endif // UNICODE
  534. #endif // PHON
  535. #endif //KEYSTICKER