/************************************************* * 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={