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.

371 lines
14 KiB

  1. /*************************************************
  2. * data.h *
  3. * *
  4. * Copyright (C) 1995-1999 Microsoft Inc. *
  5. * *
  6. *************************************************/
  7. extern WORD KeyBoardState;
  8. extern HDC hMemoryDC;
  9. extern HBITMAP cur_h;
  10. extern BYTE cap_mode;
  11. extern int kb_mode;
  12. extern HANDLE hInputWnd;
  13. extern WORD TimerCounter;
  14. extern WORD cur_hibit;
  15. extern int kb_flag , wait_flag ,waitzl_flag; //waitzl 1
  16. extern BOOL cur_flag;
  17. extern int TypeOfOutMsg;
  18. extern char SoftKeyDef[3][100];
  19. extern struct FMT now ;
  20. extern WORD SoftKeyNum;
  21. extern int unit_length;
  22. extern HIMC ghIMC;
  23. extern LPPRIVCONTEXT glpIMCP;
  24. extern LPINPUTCONTEXT glpIMC;
  25. extern BYTE bx_inpt_on;
  26. extern BYTE InputBuffer[];
  27. extern int now_cs_dot,now_cs;
  28. extern WORD cur_start_ps;
  29. extern WORD cur_start_count;
  30. extern BYTE V_Flag,bx_inpt_on;
  31. extern HANDLE cisu_hd;
  32. BYTE step_mode =0;
  33. int ShowCandTimerCount;
  34. int CandWndChange = 0;
  35. int CompWndChange = 0;
  36. HINSTANCE hInst;
  37. IMEG sImeG;
  38. IMEL sImeL;
  39. LPIMEL lpImeL;
  40. BYTE szUIClassName[16];
  41. BYTE szCompClassName[24];
  42. BYTE szCandClassName[24];
  43. BYTE szStatusClassName[24];
  44. BYTE szHandCursor[] = "Hand";
  45. BYTE szChinese[] = "Chinese";
  46. BYTE szEnglish[] = "English";
  47. BYTE szCode[] = "Code";
  48. BYTE szEudc[] = "Eudc";
  49. BYTE szFullShape[] = "FullShape";
  50. BYTE szHalfShape[] = "HalfShape";
  51. BYTE szNone[] = "None";
  52. BYTE szNoSTD[] = "NOSTD";
  53. BYTE szNoSDA[] = "NOSDA";
  54. BYTE szSoftKBD[] = "SoftKBD";
  55. BYTE szNoSoftKBD[] = "NoSoftKBD";
  56. BYTE szDigit[] = "01234567890";
  57. BYTE szSTD[] ="MODESTD";
  58. BYTE szSDA[] ="MODESDA";
  59. BYTE szCPCT[] ="CPCT";
  60. BYTE szEPCT[] ="EPCT";
  61. BYTE CUR_HB[] = "CUR_BMP";
  62. BYTE szUpDown[] = "UPDOWN";
  63. BYTE szFlower[] = "FLOWER";
  64. BYTE szPageUp[] = "BPAGEUP";
  65. BYTE szPageDown[] = "BPAGEDOWN";
  66. BYTE szHome[] = "BHOME";
  67. BYTE szEnd[] = "BEND";
  68. BYTE szPageUp2[] = "BPAGEUP2";
  69. BYTE szPgDown2[] = "BPGDOWN2";
  70. BYTE szHome2[] = "BHOME2";
  71. BYTE szEnd2[] = "BEND2";
  72. BYTE szNumb[] = "NUMB";
  73. BYTE szSnumb[] = "SNUMB";
  74. // convert char to upper case
  75. BYTE bUpper[] = {
  76. // 0x20 - 0x27
  77. 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
  78. // 0x28 - 0x2F
  79. 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
  80. // 0x30 - 0x37
  81. 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
  82. // 0x38 - 0x3F
  83. 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
  84. // 0x40 - 0x47
  85. 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
  86. // 0x48 - 0x4F
  87. 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
  88. // 0x50 - 0x57
  89. 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
  90. // 0x58 - 0x5F
  91. 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
  92. // ' a b c d e f g
  93. '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
  94. // h i j k l m n o
  95. 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
  96. // p q r s t u v w
  97. 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
  98. // x y z { | } ~
  99. 'X', 'Y', 'Z'
  100. };
  101. WORD fMask[] = { // offset of bitfield
  102. 0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020, 0x0040, 0x0080,
  103. 0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000, 0x4000, 0x8000
  104. };
  105. BYTE szRegIMESetting[] = "Control Panel\\Input Method";
  106. // decide UI offset base on escapement
  107. NEARCARET ncUIEsc[] = {
  108. // LogFontHi ParaX PerpX ParaY PerpY
  109. { 1, 1, 0, 0, 1}, // 0
  110. { 0, 0, 1, 1, 0}, // 900
  111. { 0, -1, 0, 0, 1}, // 1800
  112. { 0, 0, -1, 1, 0} // 2700
  113. };
  114. // decide input rectangle base on escapement
  115. POINT ptInputEsc[] = {
  116. // LogFontWi LogFontHi
  117. {1, 1}, // 0
  118. {1, -1}, // 900
  119. {-1, -1}, // 1800
  120. {-1, 1} // 2700
  121. };
  122. // all shift keys are not for typing reading characters
  123. BYTE bChar2VirtKey[] = {
  124. // ' ' ! " # $ % & '
  125. VK_SPACE, 0, 0, 0, 0, 0, 0, VK_OEM_QUOTE,
  126. // ( ) * + , - . /
  127. 0, 0, 0, 0, VK_OEM_COMMA, VK_OEM_MINUS, VK_OEM_PERIOD, VK_OEM_SLASH,
  128. // 0 1 2 3 4 5 6 7
  129. '0', '1', '2', '3', '4', '5', '6', '7',
  130. // 8 9 : ; < = > ?
  131. '8', '9', 0, VK_OEM_SEMICLN, 0, VK_OEM_EQUAL, 0, 0,
  132. // @ A B C D E F G
  133. '!', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
  134. // H I J K L M N O
  135. 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
  136. // P Q R S T U V W
  137. 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
  138. // X Y Z [ \ ] ^ _
  139. 'X', 'Y', 'Z', VK_OEM_LBRACKET, VK_OEM_BSLASH, VK_OEM_RBRACKET, 0, 0
  140. };
  141. // this table will convert key of other layout to the standard layout
  142. // '!' for invalid key
  143. BYTE bStandardLayout[4][0x41] = {
  144. {
  145. // ' ' ! " # $ % & '
  146. ' ', '!', '!', '!', '!', '!', '!', '!',
  147. // ( ) * + , - . /
  148. '!', '!', '!', '!', ',', '-', '.', '/',
  149. // 0 1 2 3 4 5 6 7
  150. '0', '1', '2', '3', '4', '5', '6', '7',
  151. // 8 9 : ; < = > ?
  152. '8', '9', '!', ';', '<', '!', '>', '?',
  153. // @ A B C D E F G
  154. '!', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
  155. // H I J K L M N O
  156. 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
  157. // P Q R S T U V W
  158. 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
  159. // X Y Z [ \ ] ^ _ `
  160. 'X', 'Y', 'Z', '!', '!', '!', '!', '!', '!'
  161. }
  162. , {
  163. // ' ' ! " # $ % & '
  164. ' ', '!', '!', '!', '!', '!', '!', 'H',
  165. // ( ) * + , - . /
  166. '!', '!', '!', '!', '5', '/', 'T', 'G',
  167. // 0 1 2 3 4 5 6 7
  168. ';', '7', '6', '3', '4', '!', '!', 'F',
  169. // 8 9 : ; < = > ?
  170. '0', 'P', '!', 'Y', '<', '-', '>', '?',
  171. // @ A B C D E F G
  172. '!', '8', '1', 'V', '2', 'U', 'Z', 'R',
  173. // H I J K L M N O
  174. 'C', '9', 'B', 'D', 'X', 'A', 'S', 'I',
  175. // P Q R S T U V W
  176. 'Q', 'O', 'K', 'N', 'W', 'M', 'E', ',',
  177. // X Y Z [ \ ] ^ _ `
  178. 'J', '.', 'L', '!', '!', '!', '!', '!', '!'
  179. }
  180. , {
  181. // ' ' ! " # $ % & '
  182. ' ', '!', '!', '!', '!', '!', '!', '!',
  183. // ( ) * + , - . /
  184. '!', '!', '!', '!', '3', 'C', '4', '7',
  185. // 0 1 2 3 4 5 6 7
  186. 'D', '1', 'Q', 'A', 'Z', '2', 'W', 'S',
  187. // 8 9 : ; < = > ?
  188. 'X', 'E', '!', 'L', '<', '!', '>', '?',
  189. // @ A B C D E F G
  190. '!', 'U', '/', 'P', 'M', 'V', '8', 'I',
  191. // H I J K L M N O
  192. 'K', 'Y', ',', '9', 'O', '6', '-', 'H',
  193. // P Q R S T U V W
  194. 'N', 'R', '5', 'J', 'T', 'B', ';', 'F',
  195. // X Y Z [ \ ] ^ _ `
  196. '0', 'G', '.', '!', '!', '!', '!', '!', '!'
  197. }
  198. , {
  199. // ' ' ! " # $ % & '
  200. ' ', '!', '!', '!', '!', '!', '!', 'M',
  201. // ( ) * + , - . /
  202. '!', '!', '!', '!', ',', 'U', '.', '/',
  203. // 0 1 2 3 4 5 6 7
  204. '0', '7', '1', '2', '!', '!', '5', '!',
  205. // 8 9 : ; < = > ?
  206. '8', '9', '!', ';', '<', '-', '>', '?',
  207. // @ A B C D E F G
  208. '!', '3', 'V', 'X', 'S', 'W', 'D', 'F',
  209. // H I J K L M N O
  210. 'G', 'I', 'H', 'K', 'L', 'N', 'B', 'O',
  211. // P Q R S T U V W
  212. 'P', '6', 'E', 'A', 'R', 'Y', 'C', 'Q',
  213. // X Y Z [ \ ] ^ _ `
  214. 'Z', 'T', '4', 'J', '!', '!', '!', '!', '!'
  215. }
  216. };
  217. // the index (position) of bo, po, mo, and fo.
  218. // only 0 to 3 is a valid value
  219. char cIndexTable[] = {
  220. // ' ' ! " # $ % & '
  221. 3, -1, -1, -1, -1, -1, -1, -1,
  222. // ( ) * + , - . /
  223. -1, -1, -1, -1, 2, 2, 2, 2,
  224. // 0 1 2 3 4 5 6 7
  225. 2, 0, 0, 3, 3, 0, 3, 3,
  226. // 8 9 : ; < = > ?
  227. 2, 2, -1, 2, -1, -1, -1, -1,
  228. // @ A B C D E F G
  229. -1, 0, 0, 0, 0, 0, 0, 0,
  230. // H I J K L M N O
  231. 0, 2, 1, 2, 2, 1, 0, 2,
  232. // P Q R S T U V W
  233. 2, 0, 0, 0, 0, 1, 0, 0,
  234. // X Y Z [ \ ] ^ _ `
  235. 0, 0, 0, -1, -1, -1, -1, -1, -1
  236. };
  237. // convert sequence code to index [position]
  238. char cSeq2IndexTbl[] = {
  239. // 0 1 2 3 4 5 6 7
  240. -1, 0, 0, 0, 0, 0, 0, 0,
  241. // 8 9 10 11 12 13 14 15
  242. 0, 0, 0, 0, 0, 0, 0, 0,
  243. // 16 17 18 19 20 21 22 23
  244. 0, 0, 0, 0, 0, 0, 1, 1,
  245. // 24 25 26 27 28 29 30 31
  246. 1, 2, 2, 2, 2, 2, 2, 2,
  247. // 32 33 34 35 36 37 38 39
  248. 2, 2, 2, 2, 2, 2, 3, 3,
  249. // 40 41 42
  250. 3, 3, 3
  251. };
  252. const TCHAR szRegAppUser[] = REGSTR_PATH_SETUP;
  253. const TCHAR szRegModeConfig[] = "Mode Configuration";
  254. const TCHAR szRegNearCaret[] = REGSTR_PATH_SETUP ;
  255. const TCHAR szAIABC[] = "����ABC";
  256. //"Control Panel\\Input Method";
  257. const TCHAR szPara[] = "Parallel Distance";
  258. const TCHAR szPerp[] = "Perpendicular Distance";
  259. const TCHAR szParaTol[] = "Parallel Tolerance";
  260. const TCHAR szPerpTol[] = "Perpendicular Tolerance";
  261. const TCHAR szKeyType[]="˫����������";
  262. const TCHAR szImeStyle[] = "����";
  263. const TCHAR szCpAuto[] = "��Ƶ����";
  264. const TCHAR szBxFlag[] = "����������";
  265. const TCHAR szTuneFlag[] ="����";
  266. const TCHAR szAutoCvt[] = "�Զ�ת��";
  267. const TCHAR szSdaHelp[] = "˫����ʾ";
  268. //DATA.C sdk #4
  269. const CHAR VirtKey48Map[48]
  270. ={VK_SPACE,'0','1','2','3','4','5','6','7','8','9',
  271. 'A','B','C','D','E','F','G','H','I','J','K',
  272. 'L','M','N','O','P','Q','R','S','T','U','V',
  273. 'W','X','Y','Z',
  274. VK_OEM_SEMICLN,
  275. VK_OEM_EQUAL,
  276. //VK_OEM_PERIOD,
  277. (CHAR)VK_OEM_COMMA,
  278. (CHAR)VK_OEM_MINUS,
  279. (CHAR)VK_OEM_PERIOD,
  280. //VK_OEM_COMMA,
  281. VK_OEM_SLASH,// '/'
  282. (CHAR)VK_OEM_3, // '`' '~'
  283. VK_OEM_LBRACKET, //'['
  284. VK_OEM_BSLASH, //'\'
  285. VK_OEM_RBRACKET, // ']'
  286. VK_OEM_QUOTE // [']
  287. };
  288. CHAR SKLayout[NumsSK][48*2] = {
  289. "�����������������������������������������������������������������������������������������ۣܣݣ�",
  290. "�� �ʦ֦Ԧ̦æͦΦϦȦЦ� �ئצ� ���Ħ˦ŦǦզ¦ӦƦ� ",
  291. " �ݧ����ߧӧ������ا����������٧ڧѧԧާէק��ҧ��֧��� �� ���� �� �ܧ�",
  292. "������ �� �ڨި��Ǩ֨ϨΨͨѨըبۨ��ܨ����٨ߨ��ƨШ˨Ԩ��Ҩ� �רȨ� �� ������ ",
  293. " �� �������� ���������������� ������ ������������ �� ���� �� ",
  294. "�� �������������������ʤ����̤��ͤΤϤĤҤդؤ����äƤ����ˤ����ᤷ�ߤ��ޤ� �������򤡤� ����",
  295. "�����������������������ʥ����̥��ͥΥϥĥҥեإ����åƥ����˥����᥷�ߥ��ޥۥ��������򥡥ȥ�����",
  296. "���������������������������������������á������ۣ������������������������������ݡ��������ࡨ����",
  297. "�������������������������ɢǢ碳�����ꢸ�������ˢʢ��������梵���Ȣ��Ƣ��Ţ� �̢��͢΢� ",
  298. "�� �ԡ٣��ܡݣ����ڡۡġѡϡƣ��ǡȡɡҡ� �ߡסաӡء����š� �У��Σ��͡� �ˡ� �֡� ",
  299. "�������������꣤�룥���� ���������׼���̫�İ� �˾š���ǧ����΢һ������ �� ʮ ",
  300. "������������������ ���Щ����ҩ©өԩթǩ֩� ���� �����éѩĩƩ������ũ� �穬 ���� �� ",
  301. "�� ���ޣ����������������������ߡ��������������ܡ������� ",
  302. };
  303. CHAR SKLayoutS[NumsSK][48*2] = {
  304. "�����������磥�ޣ��������£ãģţƣǣȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڣ������ߣ�������������",
  305. " ���������������������� ������ �������������������� ",
  306. " ������������������������������������������������������ �� ���� �� ����",
  307. " ",
  308. " ",
  309. " �������������������Ѥ����פ��ڤݤФŤӤ֤٤��� �Ǥ����Ԥ��¤줸�������� �� �� ���� ",
  310. " ������ ������ �����ѥ����ץ��ڥݥХťӥ֥٥��� �ǥ����ԥ��¥쥸�������ܥ��� �� ���� ",
  311. " ",
  312. " �٢ӢѢۢ��ܢݢޢ¢ߢ����բԢâĢ����ڢ����Ң��Т��Ϣ� �� �ע� ",
  313. " ",
  314. " �� �� �� �ƾ�����Ǫ��½ Ҽ �� ʰ ",
  315. " ���������������� ���ة����کʩ۩ܩݩϩީ� ���� ���ȩ˩٩̩Ω��ɩ��ͩ� �舘 ���� �� ",
  316. " ",
  317. };
  318. BYTE PcKb[48*2] =
  319. "�����������������������������������������������������������������������������������������ۣܣݣ�";
  320. BYTE SdaKb[48*2]=
  321. "������������������������������������������������������������������������������������������������";
  322. BYTE SPcKb[48*2]=
  323. "�����������磥�ޣ��������£ãģţƣǣȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڣ������ߣ�������������";
  324. BYTE SSdaKb[48*2]={'\xa1', '\xa1'};
  325. const NEARCARET ncAltUIEsc[] = {
  326. // LogFontX LogFontY ParaX PerpX ParaY PerpY
  327. { 0, 0, 1, 0, 0, -1}, // 0
  328. { 0, 0, 0, -1, 1, 0}, // 900
  329. { 0, 0, -1, 0, 0, -1}, // 1800
  330. { 0, 0, 0, 1, -1, 0} // 2700
  331. };
  332. const POINT ptAltInputEsc[] = {
  333. // LogFontWi LogFontHi
  334. {1, -1}, // 0
  335. {-1, -1}, // 900
  336. {1, -1}, // 1800
  337. {1, 1} // 2700
  338. };