/************************************************* * abcw2.h * * * * Copyright (C) 1995-1999 Microsoft Inc. * * * *************************************************/ extern CHAR SKLayoutS[NumsSK]; extern CHAR SKLayout[NumsSK][48*2]; extern CHAR PcKb[48*2],SdaKb[48*2]; extern CHAR SPcKb[48*2],SSdaKb[48*2]; extern LPIMEL lpImeL; extern IMEG sImeG ; #define WM_NEW_DEF_CODE 1993+0x400 //1993.4.19 #define WM_NEW_DEF_RESTORE 1993+0x401 //1993.4.19 HIMC ghIMC = 0; LPINPUTCONTEXT glpIMC; LPPRIVCONTEXT glpIMCP; int wait_flag , waitzl_flag; //waitzl 6 int TypeOfOutMsg; int biaodian_len; BYTE I_U_Flag=0; //produce the "i, u" input struct INPUT_TISHI prompt[1]; struct INPT_BF in={40,0,{0}}; struct W_SLBL wp; struct ATTR msx_area[120]; struct INDEX ndx; struct INDEX kzk_ndx; struct TBF FAR *cisu; struct PD_TAB pindu; struct FMT now={10,53,27}; struct T_REM tmmr; int form[] ={10,/*9*/8,5,/*4*/4,3,2,2,1,1,1}; //form[0] not used BYTE spbx_tab[((87-15)*94+15)/16*16+16]={0}; BYTE logging_stack[0x400]={0}; WORD logging_stack_size=sizeof logging_stack; /******************************************* display result area DATA **********************************************/ unsigned char space_char[]={0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20}; BYTE out_svw[400]; unsigned char group_counter[]="0."; /********************************************* input area DATA **********************************************/ int input_cur; int new_no; int jlxw_mode; int jiyi_mode; /****************************************************** result area DATA *******************************************************/ int result_area_pointer; BYTE result_area[40]; BYTE out_result_area[40]; WORD out_bfb[40]; int out_pointer; int now_cs; int now_cs_dot; /******************************************** biaodian table *********************************************/ //unsigned char biaodian_table[]="~`!@?():<>,.;_\x22\x27"; //Note \0x22 will be 0 x 2 2 //unsigned char cc_biaodian[]="����������������������������������������"; unsigned char biaodian_table[]="@&$^\\!@?():<>,.;_\x22\x27"; //Note \0x22 will be 0 x 2 2 unsigned char cc_biaodian[]="����������������������������������������������"; int biaodian_pos; WORD biaodian_value; BYTE yinhao_flag=0; /******************************************* control variabe ********************************************/ //BYTE int_asc_mode=0; // int or half character switch extern BYTE step_mode; //BYTE cp_ajust_flag; BYTE bdd_flag; // the function of punctuation switch //BYTE cbx_flag =0; // for written-stroke input flag // =0 NO writen-stroke input module // =1 the method with STD_MODE // =2 ............... SDA_MODE BOOL IfTopMost; // top window flag BYTE word_back_flag; BYTE msg_type; /***************************************** temp memory area ******************************************/ BYTE temp_rem_area[512]; BYTE rem_area[512]; /************************************** display buffer parameter ***************************************/ BYTE out_length; BYTE last_out_length; BYTE cap_mode; /****************************************** user_definition parameter *******************************************/ WORD mulu_record_length=10; WORD data_record_length=32; WORD mulu_true_length=56; WORD data_start=0x1000; WORD mulu_max_length=0x1000; BYTE user_word_max_length=32; OFSTRUCT reopen; HWND active_win_keep; BYTE d_yinhao_flag=0,book_name=0,book_name_sub=0; /******************************************************************* This part of defination is cut from the beginning of ABCW.c ********************************************************************/ BYTE SdaPromptOpen=0,DefNewNow=0; //cock FARPROC _hh1,_hh2; HANDLE hInst; HANDLE cisu_hd; HCURSOR hCursor; //1993.2 FARPROC FAR *hh1,*hh2; FARPROC lpFunc,lpFunc2; HANDLE mdl; BYTE opt_flag; BYTE kb_buffer[35]; int OldCaps; BYTE in_buffer[1]; /* buffer for input */ int n,end_flg,CharHi,CharWi; HFONT hFont; HFONT hOldFont; HFONT hSFont=0; HPEN hPen; BYTE V_Flag=0; // V input flag OFSTRUCT ofstruct; HDC hDC; HDC hMemoryDC; HBITMAP cur_h; int count2; int pass_word=0; HWND NowFocus,OptFocus; //keep the user's focus BOOL cur_flag=0,op_flag; WORD old_curx=CUR_START_X,cur_hibit=1,cur_start_ps=0,cur_start_count=0; HWND hWnd,act_focus; int input_count=0; int kb_mode=CIN_STD,kb_flag = 0xffff; int local_focus=0; int timer_counter=0; int msg_count=0; BYTE msg_bf[50]; TimerCounter=2; KeyBoardState=0; SdaInst = 0; HWND Return; HWND act_win; HANDLE Hdopt; //for dynamic call .dll proc unsigned char jiyi[]="{����}"; WORD sda_trans[5]={9,9,9,9,0}; HWND hInputWnd; HWND hABCWnd; char ExeCmdLine[]="abcwin 0"; BYTE UpdateFlag=0; //1993.3 increase the user.rem char jiyi_wenjian_cuo[]="�ģ��û������ļ�������!"; BYTE InputBuffer[43]; WORD SoftKeyNum=0; TCHAR tmmr_rem[MAX_PATH]; TCHAR user_lib[MAX_PATH]; HANDLE hAccTable; HANDLE hImeL; LPIMEL lpImeL; int MoveFlag = 0; POINT pot; HWND hSetOp =0,NewWordWin=0; char *szMsgStr[] = { "0","0"}; // messages shown on diff sections BYTE Sd_Open_flag=0; //flag for display the keyboard BYTE kb_mode_save=0; //1993.4.19 /****************************************************************** This part of defination is cut from ABCWM.c *******************************************************************/ char TMMR_OPEN_WRONG[]= "�����ļ���"; /****************************************************************** This part of defination is cut before DIAMAN.c *******************************************************************/ BYTE cpjy,bxsr,qj,bdzh; /****************************************************************** This part of defination is cut before OKRETURN.c *******************************************************************/ OFSTRUCT ofs; struct SLBL sb; struct N_SLBL neg; BYTE slbl_tab[]="ZH00\1" "SH00\2" "CH00\3" "ING0\4" "AI00\5" "AN00\6" "ANG0\7" "AO00\x8" "EI00\x9" "EN00\xa" "ENG0\xb" "IA00\xc" "IAN0\xd" "IANG\xe" "IAO0\xf" "IE00\x10" "IN00\x11" "IU00\x12" "ONG0\x13" "OU00\x14" "UA00\x15" "UAI0\x16" "UAN0\x17" "UE00\x18" "UN00\x19" "UENG\x1a" //SC4K6c?*DBASE={<I5D1AH "UI00\x1b" "UO00\x1c" "UANG\x1d" "ER00\x1e" "IONG\x1f" "VE00\x18" "UEN0\x19" "VEN0\x19" "UEI0\x1b" "IOU0\x12"; OFSTRUCT openbuf; OFSTRUCT openbuf_kzk,open_user,open_tmmr; BYTE buffer[30]; BYTE cmp_head,cmp_state,cmp_bx,by_cchar_flag; WORD cmp_yj,cmp_cisu; // about search lib LONG r_addr; WORD out_svw_cnt,msx_area_cnt; WORD search_start,search_end,kzk_search_start,kzk_search_end; WORD item_length,kzk_item_length,last_item_name,item_addr,slib_addr; BYTE word_lib_state; WORD lib_w[0xa00]; WORD kzk_lib_w[0x400]; BYTE auto_mode,word_source,xs_flag,sfx_attr,jiyi_pindu,system_info; BYTE stack1_move_counter; WORD extb_ps; /****************************************************************** This part of defination is cut before READ_A_PAGE.c *******************************************************************/ char *std_dct="winabc.cwd"; char *user_dct="user.rem"; BYTE last_flag; LONG last_start_ps; WORD last_size; /****************************************************************** This part of defination is cut before REM_PD1.c *******************************************************************/ BYTE stack1_move_counter; //................................................................ // function tables definition // char fk_tab[]="0��1һ2��3��4��5��6��7��8��9��SʮB��Qǧ" "\0��\1Ҽ\2��\3��\4��\5��\6½\7��\x8��\x9��sʰb��qǪ" "G��" "W��" "Z��" "N��" "Y��" "R��" "J��" "D��" "$Ԫ" "K��" "M��" "F��" "L��" "T��" "E��" "O��" "Hʱ" "P��" "C��" "U" "A��" "I��" "X��" "+��" "-��" "*��" "/��"; WORD sfx_table[]={ //�� DA- 1 0x102, 0x80CC, //0x80C4, // �� DE- 1 0x202, 0x80E6, //0x80DE, // �� BA- 1 0x202, 0x2048, // �� BAI- 1 0x102, 0x2056, // �� BAN- 1 0x202, 0x205F, // �� BAN- 1 0x102, 0x206A, // �� BAO- 1 0x202, 0x2085, // �� BEN- 1 0x102, 0x209B, // �� BIAN- 1 0x202, 0x20BC, // �� BIAO- 1 0x202, 0x20CA, // �� BU- 1 0x102, 0x8058, //0x8054, // �� BU- 1 0x202, 0x20FA, // �� C,ANG- 1 0x102, 0x8088, //0x8080, // �� C,ANG- 1 0x202, 0x808E, //0x8086, // �� C,AO- 1 0x102, 0x2145, // �� C,E- 1 0x202, 0x8098, //0x8090, // 3� C,U- 1 0x202, 0x218F, // �� C,U- 1 0x202, 0x219D, // �� C,UN- 1 0x102, 0x21B6, // �� CONG- 1 0x202, 0x21CB, // �� CUN- 1 0x202, 0x21DC, // �� DAI- 1 0x202, 0x21EF, // �� DAN- 1 0x102, 0x80D6, //0x80CE, // �� DANG- 1 0x202, 0x2208, // �� DAO- 1 0x202, 0x2212, // �� DI- 1 0x102, 0x2222, // �� DI- 1 0x102, 0x80F4, //0x80EC, // �� DI- 1 0x202, 0x80F8, //0x80F0, // �� DIAN- 1 0x202, 0x2238, // �� DIAN- 1 0x102, 0x223C, // ���� DIAN-ZI- 1 0x104, 0x223C, 0x2EA4, // �� DIAO- 1 0x202, 0x2249, // �, DU- 1 0x202, 0x8116, //0x810E, // �� DUAN- 1 0x102, 0x227F, // �� DUI- 1 0x202, 0x2286, // �� DUO- 11 0x302, 0x2293, // �� E- 1 0x202, 0x22A1, // �� FA- 1 0x202, 0x22B9, // �� FANG- 1 0x102, 0x22D1, // �� FEI- 1 0x102, 0x22D8, // �� FEI- 1 0x202, 0x22E2, // �� FEN- 1 0x202, 0x22EC, // �� FENG- 1 0x202, 0x22F8, // �� FU- 1 0x102, 0x2320, // �� GAI- 1 0x102, 0x2332, // �� GAN- 1 0x202, 0x233F, // �� GAO- 1 0x102, 0x234E, // �� GE- 1 0x102, 0x2366, // �� GENG- 1 0x102, 0x236B, // �� GONG- 1 0x202, 0x2371, // �� GONG- 1 0x102, 0x237F, // �� GU- 1 0x102, 0x2392, // �� GUAN- 1 0x202, 0x23A8, // �� GUO- 1 0x202, 0x23C7, // �� ,AO- 1 0x102, 0x23EE, // �� ,EI- 1 0x102, 0x2405, // �� ,EN- 1 0x102, 0x2407, // �� ,ONG- 1 0x102, 0x819E, //0x8194, // �� ,OU- 1 0x202, 0x241E, // ;� ,U- 1 0x202, 0x2430, // �� ,UA- 1 0x202, 0x2438, // �� ,UAI- 1 0x102, 0x243E, // �� ,UI- 1 0x202, 0x81B0, //0x81A6, // �� ,UO- 1 0x202, 0x247E, // �� JI- 1 0x202, 0x2483, // �� JIA- 1 0x202, 0x81CC, //0x81C2, // �� JIAN- 1 0x202, 0x24E5, // �� JIANG- 1 0x202, 0x24F6, // �� JIE- 1 0x202, 0x252C, // �� JIN- 1 0x202, 0x2535, // �� JIU- 1 0x102, 0x256C, // �� JU- 1 0x202, 0x2579, // �� JUN- 1 0x202, 0x259F, // �� KE- 1 0x202, 0x25C4, // �� KE- 1 0x202, 0x25C6, // �� KE- 1 0x202, 0x25C7, // �� KE- 1 0x102, 0x25CA, // �� KE- 1 0x202, 0x25CF, // �� KOU- 1 0x202, 0x25DB, // �� LAO- 1 0x102, 0x262E, // �� LE- 1 0x202, 0x827A, //0x826C, // �� LEI- 1 0x202, 0x263F, // �� LI- 1 0x202, 0x264E, // �� LI- 1 0x202, 0x2663, // ���� LI-LUN- 1 0x204, 0x264C, 0x26F6, // �� LIANG- 1 0x202, 0x267C, // �� LIN- 1 0x202, 0x2693, // �� LUN- 1 0x202, 0x26F6, // �� LV- 1 0x202, 0x828E, //0x8280, // ÿ MEI- 1 0x102, 0x2738, // �� MEN- 1 0x202, 0x2740, // �� MI- 1 0x202, 0x274D, // �� MIAN- 1 0x102, 0x2757, // �� MIAN- 1 0x202, 0x275F, // ij MOU- 1 0x102, 0x278A, // �� NAN- 1 0x102, 0x27A7, // �� NAO- 1 0x102, 0x27AD, // �� NEI- 11 0x302, 0x27B1, // �� NIAN- 1 0x202, 0x27C1, // Ů NV- 1 0x102, 0x27E3, // �� PAI- 1 0x202, 0x8320, //0x8312, // �� PANG- 1 0x202, 0x2809, // Ƥ PI- 1 0x202, 0x2837, // Ƭ PIAN- 1 0x202, 0x283F, // Ʒ PIN- 1 0x202, 0x284A, // ,� QAUN- 1 0x102, 0x28FA, // �� QI- 1 0x102, 0x8354, //0x8346, // �� QI- 1 0x202, 0x288A, // ǰ QIAN- 1 0x202, 0x28A1, // �� QU- 1 0x202, 0x8388, //0x837A, // ,� QUAN- 1 0x202, 0x28F7, // ,� QUN- 1 0x202, 0x2909, // ,� REN- 1 0x202, 0x291A, // ,� RI- 1 0x202, 0x2924, // �� S,ANG- 11 0x302, 0x297C, // �� S,E- 1 0x202, 0x2994, // �� S,ENG- 1 0x202, 0x29A6, // ʡ S,ENG- 1 0x202, 0x83BE, //0x83B0, // �� S,I- 1 0x202, 0x83E2, //0x83D4, // �� S,I- 1 0x202, 0x29DD, // �� S,OU- 1 0x202, 0x29E1, // �� S,OU- 1 0x102, 0x29E7, // �� S,U- 1 0x202, 0x29F4, // ˫ S,UANG- 1 0x102, 0x2A14, // ˮ S,UI- 1 0x202, 0x2A17, // ˾ SI- 1 0x202, 0x2A27, // ˼�� SI-XIANG- 1 0x204, 0x8404, 0x2BCC, //0x83F8, 0x2BCC, // �� SUO- 1 0x202, 0x2A62, // ̨ TAI- 1 0x202, 0x2A6F, // �� TI- 1 0x202, 0x2AAC, // �� TIAO- 1 0x202, 0x2ABC, // �� TIE- 1 0x102, 0x2AC1, // ͷ TOU- 1 0x202, 0x2ADC, // �� WAI- 11 0x302, 0x2B07, // Ϊ WEI- 1 0x202, 0x2B2D, // �� WU- 1 0x102, 0x8450, //0x8444, // �� WU- 1 0x202, 0x2B72, // ϵ XI- 1 0x202, 0x8458, //0x844C, // �� XIA- 11 0x302, 0x2BA3, // �� XIAN- 1 0x202, 0x2BB9, // �� XIANG- 1 0x202, 0x2BC8, // ��Ŀ XIANG-MU- 1 0x204, 0x2BCF, 0x2796, // С XIAO- 1 0x102, 0x2BE0, // �� XIN- 1 0x102, 0x2C01, // �� XIN- 1 0x202, 0x2C03, // �� XING- 1 0x202, 0x2C13, // �� XING- 1 0x202, 0x2C0C, // ���� XING-Z,I- 1 0x204, 0x2C13, 0x2E3D, // ѧ XUE- 1 0x202, 0x2C44, // ѧ˵ XUE-S,UO- 1 0x204, 0x2C44, 0x83FE, //0x83F2, // �� YAN- 1 0x202, 0x2C78, // �� YANG- 1 0x102, 0x2C90, // ҵ YE- 1 0x202, 0x2CB0, // �� YI- 1 0x202, 0x2CC2, // �� YOU- 1 0x102, 0x2D29, // �� YU- 1 0x202, 0x2D33, // ԭ YUAN- 1 0x102, 0x2D64, // Ա YUAN- 1 0x202, 0x84C0, //0x84B4, // Ժ YUAN- 1 0x202, 0x2D71, // �˶� YUN-DONG- 1 0x204, 0x2D82, 0x2262, // �� ZI- 1 0x202, 0x2EA4, // �� ZAI- 1 0x102, 0x2D90, // �� ZAI- 1 0x102, 0x2D91, // վ Z,AN- 1 0x202, 0x2DD3, // �� Z,ANG- 1 0x202, 0x808A, //0x8082, // �� Z,E- 1 0x202, 0x2DF4, // �� Z,E- 1 0x202, 0x8532, //0x8526, // �� Z,EN- 1 0x102, 0x2DFB, // �� Z,EN- 1 0x202, 0x2E07, // �� Z,ENG- 1 0x102, 0x2E12, // �� Z,I- 1 0x202, 0x2E39, // �� Z,ONG- 11 0x302, 0x2E43, // �� Z,U- 1 0x102, 0x2E6A, // ס Z,U- 1 0x202, 0x2E72, // ���� Z,U-YI- 1 0x204, 0x2E6A, 0x2CE0, // רҵ Z,UAN-YE- 1 0x204, 0x2E79, 0x2CB0, // ״ Z,UANG- 1 0x202, 0x2E85, // Z,UN- 1 0x102, 0x2E8D, // �� ZONG- 1 0x102, 0x2EAD, // �� ZU- 1 0x202, 0x2EBA, // �� ZUI- 1 0x102, 0x2EBF, // �� ZUO- 1 0x102, 0x2EC8}; WORD sfx_table_size=sizeof sfx_table; int FAR PASCAL sda_proc(WORD, LPWORD, BYTE, HIMC); int FAR PASCAL tran_data(int, HIMC, BYTE);