1480 lines
41 KiB
C
1480 lines
41 KiB
C
|
||
/*************************************************
|
||
* abc95def.h *
|
||
* *
|
||
* Copyright (C) 1995-1999 Microsoft Inc. *
|
||
* *
|
||
*************************************************/
|
||
|
||
#include <regstr.h>
|
||
#include <winreg.h>
|
||
|
||
/* VK from the keyboard driver */
|
||
#define VK_KANA 0x15 //1993.4.22 append from windows.h
|
||
#define VK_ROMAJI 0x16
|
||
#define VK_ZENKAKU 0x17
|
||
#define VK_HIRAGANA 0x18
|
||
#define VK_KANJI 0x19
|
||
|
||
|
||
#define VK_DANYINHAO 0xc0 // [,] char = 0x60
|
||
#define VK_JIANHAO 0xbd // [-] char = 0x2d
|
||
#define VK_DENGHAO 0xbb // [=] char = 0x3d
|
||
#define VK_ZUOFANG 0xdb // "[" char = 0x5b
|
||
#define VK_YOUFANG 0xdd // "]" char = 0x5d
|
||
#define VK_FENHAO 0xba // [;] char = 0x3b
|
||
#define VK_ZUODAN 0xde // ['] char = 0x27
|
||
#define VK_DOUHAO 0xbc // [,] char = 0x2c
|
||
#define VK_JUHAO 0xbe // [.] char = 0x2d
|
||
#define VK_SHANGXIE 0xbf // [ ] char = 0x2f
|
||
#define VK_XIAXIE 0xdc // [\] char = 0x5c
|
||
|
||
#define WM_NEW_WORD 1992+0x400
|
||
|
||
#define STC FALSE
|
||
#define CLC TRUE
|
||
#define REINPUT 2
|
||
#define RECALL 3
|
||
#define BACKWORD_KEY 0x802d
|
||
#define FORWORD_KEY 0x803d
|
||
#define BIAODIAN_ONLY -2
|
||
|
||
#define SC_METHOD0 100
|
||
#define SC_METHOD1 101
|
||
#define SC_METHOD2 102
|
||
#define SC_METHOD3 103
|
||
#define SC_METHOD4 104
|
||
#define SC_METHOD5 105
|
||
#define SC_METHOD6 106
|
||
#define SC_METHOD7 107
|
||
#define SC_METHOD8 108
|
||
#define SC_METHOD9 109
|
||
#define SC_METHOD10 110
|
||
#define SC_ABOUT 111
|
||
#define SC_QUIT 112
|
||
#define SC_METHODA 113
|
||
|
||
|
||
|
||
#define IDK_SK 211
|
||
#define IDK_QY 212
|
||
#define IDK_CF 213
|
||
#define IDK_SX 214
|
||
|
||
//Input Methods definition (kb_mode)
|
||
#define CIN_QW 1
|
||
#define CIN_BX 2
|
||
#define CIN_STD 3
|
||
#define CIN_SDA 4
|
||
#define CIN_ASC 5
|
||
|
||
// Definitions of input step_mode (STD, SD)
|
||
|
||
#define START 0 //the step_mode before pinyin inputing
|
||
#define SELECT 1 // after convert
|
||
#define RESELECT 2 // after select and can be reselect by FORCE SELECT
|
||
// KEY.
|
||
#define ONINPUT 3 // During inputing progress.
|
||
#define ONCOVERT 4 // While converting.
|
||
|
||
//input information (in.info_flag) definitions
|
||
|
||
#define BY_RECALL 1
|
||
#define BY_WORD 0x80
|
||
#define BY_CHAR 0x81
|
||
|
||
|
||
//#define IDM_ABOUT 100
|
||
#define ABC_HEIGHT 18 //22 //24 here
|
||
#define ABC_TOP 4 //7
|
||
#define KBAR_W 5 //10
|
||
#define KHLINE_W 1
|
||
#define KDISP_X 1
|
||
#define KDISP_Y 1 //4
|
||
#define KVLINE_TOP (ABC_TOP-1)
|
||
#define KVLINE_H ( Rect.bottom-Rect.top/*-5-4*/-2-1) //here
|
||
#define BLINE_Y (Rect.bottom-/*4*/2) //-2
|
||
|
||
#define KMAIN_X 1
|
||
#define KMAIN_Y ( GetSystemMetrics(SM_CYSCREEN)/*-37*/-29)
|
||
#define KMAIN_W (GetSystemMetrics(SM_CXSCREEN)-2)
|
||
#define KMAIN_H 28 //36
|
||
|
||
#define FC_X 1
|
||
#define FC_Y 1
|
||
#define FC_W (GetSystemMetrics(SM_CXSCREEN)-2)
|
||
#define FC_H ( GetSystemMetrics(SM_CYSCREEN)-/*37*/29)
|
||
|
||
#define KA_X (Rect.left+KBAR_W) /* Default horizontal position. */
|
||
#define KA_Y (Rect.top+ABC_TOP) /* Default vertical position. */
|
||
#define KA_W 32
|
||
#define KA_H ABC_HEIGHT /* Default height. */
|
||
|
||
#define KB_X (Rect.left+KBAR_W*2+KA_W) /* Default horizontal position. */
|
||
#define KB_Y (Rect.top+ABC_TOP) /* Default vertical position. */
|
||
#define KB_W 200 /* Default width. */
|
||
#define KB_H ABC_HEIGHT
|
||
|
||
#define KD_W 32 // IT MUST BE HERE!
|
||
#define KD_X (Rect.right-KD_W-KBAR_W) /* Default horizontal position. */
|
||
#define KD_Y (Rect.top+ABC_TOP) /* Default vertical position. */
|
||
#define KD_H ABC_HEIGHT /* Default height. */
|
||
|
||
|
||
#define KC_X (Rect.left+KA_W+KBAR_W*3+KB_W) /* Default horizontal position. */
|
||
#define KC_Y (Rect.top+ABC_TOP) /* Default vertical position. */
|
||
#define KC_W (Rect.right-Rect.left-KBAR_W*5-KA_W-KB_W-KD_W) /* Default width. */
|
||
#define KC_H ABC_HEIGHT
|
||
|
||
#define KSDA_X 60
|
||
#define KSDA_Y ( GetSystemMetrics(SM_CYSCREEN)-37)-130
|
||
#define KSDA_W 545 //312
|
||
#define KSDA_H 130 //83
|
||
|
||
#define XX 0
|
||
|
||
#define CUR_START_X 1 //KBAR_W+KBAR_W+KA_W+1
|
||
#define CUR_START_Y /*KVLINE_TOP+*/ KDISP_Y
|
||
#define CUR_W 2
|
||
#define CUR_H 16
|
||
|
||
#define IN_MENU 1
|
||
#define IN_NAME 2
|
||
#define IN_INPUT 3
|
||
#define IN_CANDIDATE 4
|
||
#define IN_OPERAT 5
|
||
#define IN_MODE 6
|
||
#define IN_SOFTKEY 7
|
||
#define IN_MOVE 8
|
||
|
||
|
||
#define MD_PAINT 0x1992 //For ABC Paint
|
||
#define MD_CURX MD_PAINT+1 // Show chusor
|
||
#define MD_NORMAL MD_PAINT+2 // Display Normal char
|
||
#define MD_BACK MD_PAINT+3 // Display BACKSPACE,ESC...
|
||
#define TN_CLS MD_PAINT+4
|
||
#define TN_SHOW MD_PAINT+5
|
||
#define TN_STATE MD_PAINT+6
|
||
|
||
#define MD_UPDATE 0x1993 //1993.3 for increase user.rem
|
||
|
||
#define POST_OLD 0x11
|
||
#define TMMR_REAL_LENGTH 0x1800
|
||
|
||
//#define some corlors
|
||
#define CO_LIGHTBLUE RGB(0,255,255)
|
||
#define CO_METHOD RGB(0,40,80)
|
||
#define CO_CAP RGB(255,0,0)
|
||
|
||
#define TColor1 RGB(0,0,0)
|
||
#define TColor2 RGB(0,0,255)
|
||
#define TColor4 RGB(0,0,128)
|
||
#define TColor3 RGB(64,0,128)
|
||
|
||
|
||
// Input msg type definitions (STD,SD)
|
||
|
||
#define NORMAL 0 // Normal pinyin string
|
||
#define ABBR 1 // First letter is capital
|
||
#define CPAPS_NUM 2 // Capital Chinese number (identifer is "I")
|
||
#define CSMALL_NUM 3 // Small chinese number (identifer is "i")
|
||
#define USER_extern WORDS 4 // Look for user words
|
||
#define BACK_extern WORDS 12 // Reduce convert poextern inter for a word.
|
||
#define CONTINUE 13 // Continue converting.
|
||
|
||
// Converitng return msg definitions(STD and SD)
|
||
|
||
#define NO_RESULT -1 // Un-successful converting
|
||
#define SUCCESS 1 // Converting has results.
|
||
|
||
|
||
#define EXPAND_TABLE_LENGTH 0x0BBE0
|
||
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD>仯<EFBFBD><E4BBAF><EFBFBD><EFBFBD>
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>йز<D0B9><D8B2><EFBFBD>
|
||
|
||
//<2F><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>(<28><>ʱ<EFBFBD>İ<EFBFBD><C4B0><EFBFBD>)
|
||
|
||
#define BX_LIB_START_POINTER 0L
|
||
#define BX_LIB_LENGTH 0x5528 //7650H
|
||
// (<28><>DZSY.MB <20><><EFBFBD>뵽GCW.OVL)
|
||
|
||
#define DTKB_START_POINTER_LOW 0x05600 //BX_LIB_LENGTH (c680..)
|
||
#define DTKB_START_POINTER_HI 0
|
||
#define DTKB_LENGTH 0x0A00
|
||
#define DTKB_CHECK_VALUE 0x55EB
|
||
// (<28><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD>̵ij<CCB5><C4B3><EFBFBD>)
|
||
|
||
#define HELP_LOW 0x06000H
|
||
#define HELP_HI 0
|
||
#define HELP_LENGTH 0x600
|
||
// space 180h
|
||
|
||
#define BHB_START_POINTER_LOW 0x6780 //ԭ<><D4AD>D130H
|
||
#define BHB_START_POINTER_HI 0
|
||
#define BHB_LENGTH 0x54A0 //ԭΪ49A0H
|
||
|
||
#define BHB_CX_LOW 0x0A1c0 //=3a80h
|
||
#define BHB_CX_HI 0
|
||
#define BHB_CX_LENGTH 0x1A20
|
||
#define BHB_CHECK_VALUE 0x049FC
|
||
|
||
|
||
|
||
#define PTZ_LIB_START_POINTER 0x0BBE0L
|
||
#define PTZ_LIB_LENGTH 0x4460L // 94/4/18 0x4430 //4FC0H
|
||
#define PTZ_LIB_LONG 0x400l
|
||
|
||
#define PD_START_POINTER 0x10040 // 94/4/18 0x10010l //
|
||
#define PD_LENGTH 0x1160 //
|
||
// (PD_TAB ϵ<>ڱ<EFBFBD>дYCW<43><57>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,1990.11 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
||
// <20>ڱ<EFBFBD><DAB1>ڼ<EFBFBD>¼<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>ڴʵ<DAB4>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>.
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>ܻ<EFBFBD><DCBB><EFBFBD>Ҫ<EFBFBD><EFBFBD>.
|
||
|
||
#define SPBX_START_POINTER 0x111E0l
|
||
#define SPBX_LENGTH 6784 //(1A80H)
|
||
// (SPBX_TAB ϵ<>ڱ<EFBFBD>дYCW<43><57>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,1990.11 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
||
// <20>ڱ<EFBFBD><DAB1>ڼ<EFBFBD>¼<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ʼ<EFBFBD>ʻ<EFBFBD>(<28><>ʼ<EFBFBD><CABC>2<EFBFBD><32>).
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>ܻ<EFBFBD><DCBB><EFBFBD>Ҫ<EFBFBD><EFBFBD>.
|
||
|
||
//TOTAL LENGTH OF THE OVERLAY FILE=12CA0H
|
||
|
||
#define TMMR_LIB_LENGTH 0x1800 //<2F><>AD7<44><37>Ϊ3800H(14K)
|
||
// ad81=3000h
|
||
#define PAREMETER_LENGTH 0x10 //1993.4 for setting paremeters
|
||
|
||
#define FRONT_LIB_START_POINTER_HI 0
|
||
#define FRONT_LIB_START_POINTER_LOW 0
|
||
#define FRONT_LIB_LENGTH TMMR_LIB_LENGTH
|
||
|
||
#define MIDDLE_REM 0x1400 //ԭ<><D4AD>Ϊ1C00H 5/11/91 <20><><EFBFBD><EFBFBD>
|
||
//<2F><><EFBFBD><EFBFBD>
|
||
#define BHB_PROC_OFFSET 0
|
||
|
||
#define LENGTH_OF_USER 0x0A000l //<2F>DZ<EFBFBD><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ40K
|
||
// ע<><D7A2><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>"8"<22>Ͱ汾<CDB0><E6B1BE>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
#define NEAR_CARET_CANDIDATE 0x0002
|
||
#define NEAR_CARET_FIRST_TIME 0x0001
|
||
|
||
#define NDX_REAL_LENGTH 0x510 //Added IN 1/1/1991
|
||
|
||
#define CHECK_POINT 1024+2048-4
|
||
#define CHECK_POINT2 48-4
|
||
|
||
#define input_msg_disp 0 // 6
|
||
|
||
// define for aiABC out type
|
||
#define ABC_OUT_ONE 0x1
|
||
#define ABC_OUT_MULTY 0x2
|
||
#define ABC_OUT_ASCII 0x4
|
||
#define COMP_NEEDS_END 0x100
|
||
|
||
struct INPUT_TISHI {
|
||
unsigned char buffer[6];
|
||
};
|
||
|
||
struct INPT_BF{
|
||
WORD max_length;
|
||
WORD true_length;
|
||
BYTE info_flag;
|
||
BYTE buffer[40];
|
||
};
|
||
|
||
|
||
struct W_SLBL{
|
||
BYTE dw_stack[20];
|
||
WORD dw_count;
|
||
WORD yj[20];
|
||
BYTE syj[20];
|
||
WORD tone[20];
|
||
BYTE bx_stack[20];
|
||
BYTE cmp_stack[20];
|
||
WORD yj_ps[20];
|
||
int yjs;
|
||
int xsyjs;
|
||
int xsyjw;
|
||
int syyjs;
|
||
};
|
||
|
||
struct ATTR{
|
||
BYTE pindu;
|
||
BYTE from;
|
||
WORD addr;
|
||
};
|
||
|
||
|
||
struct STD_LIB_AREA{
|
||
WORD two_end;
|
||
WORD three_end;
|
||
WORD four_end;
|
||
BYTE buffer[0x800-6];
|
||
};
|
||
|
||
struct INDEX{
|
||
WORD body_start;
|
||
WORD ttl_length;
|
||
WORD body_length;
|
||
WORD index_start;
|
||
WORD index_length;
|
||
WORD unused1;
|
||
WORD ttl_words;
|
||
WORD two_words;
|
||
WORD three_words;
|
||
WORD four_words;
|
||
WORD fiveup_words;
|
||
WORD unused2[13 ];
|
||
WORD dir[((23*27)+7)/8*8];
|
||
};
|
||
|
||
struct USER_LIB_AREA{
|
||
WORD two_end;
|
||
WORD three_end;
|
||
WORD four_end;
|
||
BYTE buffer[0x400-6];
|
||
};
|
||
|
||
struct TBF{
|
||
WORD t_bf_start[8];
|
||
WORD t_bf1[(72*94+15)/16*16];
|
||
WORD t_bf2[PTZ_LIB_LENGTH/2-(72*94+15)/16*16];
|
||
};
|
||
|
||
struct PD_TAB{
|
||
WORD pd_bf0[8];
|
||
BYTE pd_bf1[((55-16+1)*94+15)/16*16];
|
||
BYTE pd_bf2[0x4f0];
|
||
};
|
||
|
||
|
||
struct FMT{
|
||
WORD fmt_group;
|
||
WORD fmt_ttl_len;
|
||
WORD fmt_start;
|
||
};
|
||
|
||
|
||
struct T_REM{
|
||
WORD stack1[512];
|
||
WORD stack2[1024];
|
||
WORD stack3[512];
|
||
WORD temp_rem_area[512];
|
||
WORD rem_area[512];
|
||
};
|
||
|
||
struct M_NDX{
|
||
WORD mulu_start_hi;
|
||
WORD mulu_start_low;
|
||
WORD mulu_length_max;
|
||
WORD mulu_true_length;
|
||
WORD mulu_record_length;
|
||
WORD data_start_hi;
|
||
WORD data_start_low;
|
||
WORD data_record_length;
|
||
};
|
||
|
||
struct S_HEAD{
|
||
BYTE flag;
|
||
BYTE name;
|
||
WORD start_pos;
|
||
WORD item[25];
|
||
|
||
};
|
||
|
||
struct DEX{
|
||
WORD body_start;
|
||
WORD ttl_length;
|
||
WORD body_length;
|
||
WORD index_start;
|
||
WORD index_length;
|
||
WORD unused1;
|
||
WORD ttl_words;
|
||
WORD two_words;
|
||
WORD three_words;
|
||
WORD four_words;
|
||
WORD fiveup_words;
|
||
WORD unused2[13 ];
|
||
struct S_HEAD dex[23];
|
||
WORD unuserd2[0x510/2-23*27-24];
|
||
};
|
||
|
||
|
||
#define ParaPos 7
|
||
/******************************************************************
|
||
This part of defination is cut before CWP.c
|
||
*******************************************************************/
|
||
#define TRUE 1
|
||
#define FALSE 0
|
||
#define NUMBER 0x20
|
||
#define FUYIN 0x21
|
||
#define YUANYIN 0x22
|
||
#define SEPERATOR 0x27
|
||
#define FIRST_T 1
|
||
#define SECOND_T 2
|
||
#define THIRD_T 3
|
||
#define FORTH_T 4
|
||
|
||
// about search strutagy
|
||
#define BX_FLAG 8
|
||
#define JP_FLAG 4
|
||
#define QP_FLAG 2
|
||
#define YD_FLAG 1
|
||
|
||
// about search lib
|
||
#define BODY_START 0
|
||
#define KZK_BODY_START 0
|
||
#define KZK_BASE 0xa000l
|
||
#define MORE_THAN_5 23
|
||
//#define TMMR_REAL_LENGTH 0x1800
|
||
|
||
// mark for test
|
||
#define TEST 0
|
||
|
||
|
||
struct SLBL{
|
||
WORD value;
|
||
BYTE head;
|
||
WORD length;
|
||
BYTE tune;
|
||
BYTE bx1;
|
||
WORD bx2;
|
||
BYTE flag;
|
||
};
|
||
|
||
struct N_SLBL{
|
||
BYTE buffer[30];
|
||
int length;
|
||
};
|
||
|
||
|
||
// IME designer can change this file according to each IME
|
||
|
||
// resource ID
|
||
#define IDI_IME 0x0100
|
||
|
||
#define IDS_STATUSERR 0x0200
|
||
#define IDS_CHICHAR 0x0201
|
||
|
||
|
||
#define IDS_EUDC 0x0202
|
||
#define IDS_USRDIC_FILTER 0x0210
|
||
|
||
|
||
#define IDS_FILE_OPEN_ERR 0x0220
|
||
#define IDS_MEM_LESS_ERR 0x0221
|
||
|
||
|
||
#define IDS_IMENAME 0x0320
|
||
#define IDS_IMEUICLASS 0x0321
|
||
#define IDS_IMECOMPCLASS 0x0322
|
||
#define IDS_IMECANDCLASS 0x0323
|
||
#define IDS_IMESTATUSCLASS 0x0324
|
||
|
||
|
||
#define IDD_DEFAULT_KB 0x0400
|
||
#define IDD_ETEN_KB 0x0401
|
||
#define IDD_IBM_KB 0x0402
|
||
#define IDD_CHING_KB 0x0403
|
||
|
||
#define IDD_QUICK_KEY 0x0500
|
||
#define IDD_PREDICT 0x0501
|
||
|
||
|
||
#define IME_APRS_AUTO 0x0
|
||
#define IME_APRS_FIX 0x1
|
||
|
||
|
||
#define OFFSET_MODE_CONFIG 0
|
||
#define OFFSET_READLAYOUT 4
|
||
|
||
|
||
#define ERR01 "ȱ<>ٴʿ<D9B4><CABF>ļ<EFBFBD>winabc.cwd<77><64>"
|
||
#define ERR02 "<22>ʿ<F2BFAAB4><CABF>ļ<EFBFBD>winabc.cwd<77><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
#define ERR03 "<22><>ȡ<EFBFBD>ʿ<EFBFBD><CABF>ļ<EFBFBD>winabc.cwd<77><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
#define ERR04 "ȱ<>ٻ<EFBFBD><D9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>winabc.ovl<76><6C>"
|
||
#define ERR05 "<22><EFBFBD><F2BFAABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>winabc.ovl<76><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
#define ERR06 "<22><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>winabc.ovl<76><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
#define ERR07 "<22><EFBFBD><F2BFAABC><EFBFBD><EFBFBD>ļ<EFBFBD>tmmr.rem<65><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
#define ERR08 "<22><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>tmmr.rem<65><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
#define ERR09 "д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>tmmr.rem<65><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
#define ERR10 "<22><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ʿ<EFBFBD>user.rem<65><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
#define ERR11 "<22><>ȡ<EFBFBD>û<EFBFBD><C3BB>ʿ<EFBFBD>user.rem<65><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
#define ERR12 "д<><D0B4><EFBFBD>û<EFBFBD><C3BB>ʿ<EFBFBD>user.rem<65><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
#define ERR13 "<22><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
#define ERR14 "<22>ڴ治<DAB4><E6B2BB><EFBFBD><EFBFBD>"
|
||
#define ERR15 "<22><>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD>ݡ<EFBFBD>"
|
||
#define ERR16 "<22><>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD>´ʱ<C2B4><CAB1>롣"
|
||
#define ERR17 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>зǷ<D0B7><C7B7>ַ<EFBFBD><D6B7><EFBFBD>"
|
||
#define ERR18 "<22><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>"
|
||
#define ERR19 "<22>û<EFBFBD><C3BB>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̫<EFBFBD>ࡣ"
|
||
#define ERR20 "ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܡ<EFBFBD>"
|
||
#define NTF21 "<22>û<EFBFBD><C3BB>ʿ<EFBFBD><CABF>Ѿ<EFBFBD><D1BE>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>¡<EFBFBD>"
|
||
#define ERR22 "<22>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>䷢<EFBFBD><E4B7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
|
||
|
||
|
||
|
||
#define ERRMSG_LOAD_0 0x0010
|
||
#define ERRMSG_LOAD_1 0x0020
|
||
#define ERRMSG_LOAD_2 0x0040
|
||
#define ERRMSG_LOAD_3 0x0080
|
||
#define ERRMSG_LOAD_USRDIC 0x0400
|
||
#define ERRMSG_MEM_0 0x1000
|
||
#define ERRMSG_MEM_1 0x2000
|
||
#define ERRMSG_MEM_2 0x4000
|
||
#define ERRMSG_MEM_3 0x8000
|
||
#define ERRMSG_MEM_USRDIC 0x00040000
|
||
|
||
|
||
// state of composition
|
||
|
||
#define CST_INIT 0
|
||
#define CST_INPUT 1
|
||
#define CST_CHOOSE 2
|
||
#define CST_TOGGLE_PHRASEWORD 3 // not in iImeState
|
||
#define CST_ALPHABET 4 // not in iImeState
|
||
#define CST_SOFTKB 99
|
||
|
||
#define CST_ALPHANUMERIC 5 // not in iImeState
|
||
#define CST_INVALID 6 // not in iImeState
|
||
|
||
// IME specific constants
|
||
|
||
#define CANDPERPAGE 9 // 10
|
||
|
||
|
||
#define MAXSTRLEN 32
|
||
#define MAXCAND 256
|
||
|
||
// border for UI
|
||
#define UI_MARGIN 4
|
||
|
||
#define STATUS_DIM_X 20//24
|
||
#define STATUS_DIM_Y 21//24
|
||
|
||
// if UI_MOVE_OFFSET == WINDOW_NOTDRAG, not in drag operation
|
||
#define WINDOW_NOT_DRAG 0xFFFFFFFF
|
||
|
||
// window extra for composition window
|
||
#define UI_MOVE_OFFSET 0
|
||
#define UI_MOVE_XY 4
|
||
|
||
|
||
// the start number of candidate list
|
||
#define CAND_START 1
|
||
|
||
#define IMN_PRIVATE_TOGGLE_UI 0x0001
|
||
#define IMN_PRIVATE_CMENUDESTROYED 0x0002
|
||
#define IMN_PRIVATE_COMPOSITION_SIZE 0x0003
|
||
#define IMN_PRIVATE_UPDATE_PREDICT 0x0004
|
||
#define IMN_PRIVATE_UPDATE_SOFTKBD 0x0006
|
||
#define IMN_PRIVATE_PAGEUP 0x0007
|
||
|
||
// the flag for an opened or start UI
|
||
|
||
/*#define IMN_PRIVATE_UPDATE_SOFTKBD 0x0001
|
||
|
||
#define MSG_ALREADY_OPEN 0x000001
|
||
#define MSG_ALREADY_OPEN2 0x000002
|
||
#define MSG_OPEN_CANDIDATE 0x000010
|
||
#define MSG_OPEN_CANDIDATE2 0x000020
|
||
#define MSG_CLOSE_CANDIDATE 0x000100
|
||
#define MSG_CLOSE_CANDIDATE2 0x000200
|
||
#define MSG_CHANGE_CANDIDATE 0x001000
|
||
#define MSG_CHANGE_CANDIDATE2 0x002000
|
||
#define MSG_ALREADY_START 0x010000
|
||
#define MSG_START_COMPOSITION 0x020000
|
||
#define MSG_END_COMPOSITION 0x040000
|
||
#define MSG_COMPOSITION 0x080000
|
||
#define MSG_IMN_COMPOSITIONPOS 0x100000
|
||
#define MSG_IMN_UPDATE_SOFTKBD 0x200000
|
||
|
||
|
||
#define MSG_GUIDELINE 0x400000
|
||
#define MSG_IN_IMETOASCIIEX 0x800000 */
|
||
|
||
// this constant is depend on TranslateImeMessage
|
||
#define GEN_MSG_MAX 30//6
|
||
|
||
#define MSG_COMPOSITION 0x0000001
|
||
|
||
#define MSG_START_COMPOSITION 0x0000002
|
||
#define MSG_END_COMPOSITION 0x0000004
|
||
#define MSG_ALREADY_START 0x0000008
|
||
#define MSG_CHANGE_CANDIDATE 0x0000010
|
||
#define MSG_OPEN_CANDIDATE 0x0000020
|
||
#define MSG_CLOSE_CANDIDATE 0x0000040
|
||
#define MSG_ALREADY_OPEN 0x0000080
|
||
#define MSG_GUIDELINE 0x0000100
|
||
#define MSG_IMN_COMPOSITIONPOS 0x0000200
|
||
#define MSG_IMN_COMPOSITIONSIZE 0x0000400
|
||
#define MSG_IMN_UPDATE_PREDICT 0x0000800
|
||
#define MSG_IMN_UPDATE_SOFTKBD 0x0002000
|
||
#define MSG_ALREADY_SOFTKBD 0x0004000
|
||
#define MSG_IMN_PAGEUP 0x0008000
|
||
|
||
// original reserve for old array, now we switch to new, no one use yet
|
||
#define MSG_CHANGE_CANDIDATE2 0x1000000
|
||
#define MSG_OPEN_CANDIDATE2 0x2000000
|
||
#define MSG_CLOSE_CANDIDATE2 0x4000000
|
||
#define MSG_ALREADY_OPEN2 0x8000000
|
||
|
||
#define MSG_STATIC_STATE (MSG_ALREADY_START|MSG_ALREADY_OPEN|MSG_ALREADY_SOFTKBD|MSG_ALREADY_OPEN2)
|
||
|
||
#define MSG_IMN_TOGGLE_UI 0x0400000
|
||
#define MSG_IN_IMETOASCIIEX 0x0800000
|
||
|
||
|
||
// the flag for set context
|
||
/*
|
||
#define SC_SHOW_UI 0x0001
|
||
#define SC_HIDE_UI 0x0002
|
||
#define SC_ALREADY_SHOW_STATUS 0x0004
|
||
#define SC_WANT_SHOW_STATUS 0x0008
|
||
#define SC_HIDE_STATUS 0x0010
|
||
*/
|
||
|
||
#define MSG_IMN_TOGGLE_UI 0x0400000
|
||
#define MSG_IN_IMETOASCIIEX 0x0800000
|
||
|
||
#define ISC_SHOW_SOFTKBD 0x02000000
|
||
#define ISC_OPEN_STATUS_WINDOW 0x04000000
|
||
#define ISC_OFF_CARET_UI 0x08000000
|
||
#define ISC_SHOW_UI_ALL (ISC_SHOWUIALL|ISC_SHOW_SOFTKBD|ISC_OPEN_STATUS_WINDOW)
|
||
#define ISC_SETCONTEXT_UI (ISC_SHOWUIALL|ISC_SHOW_SOFTKBD)
|
||
|
||
#define ISC_HIDE_SOFTKBD 0x01000000
|
||
|
||
// the flag for composition string show status
|
||
#define IME_STR_SHOWED 0x0001
|
||
#define IME_STR_ERROR 0x0002
|
||
|
||
// the mode configuration for an IME
|
||
#define MODE_CONFIG_QUICK_KEY 0x0001
|
||
#define MODE_CONFIG_WORD_PREDICT 0x0002
|
||
#define MODE_CONFIG_PREDICT 0x0004
|
||
#define MODE_CONFIG_OFF_CARET_UI 0x0008
|
||
|
||
|
||
// the different layout for Phonetic reading
|
||
#define READ_LAYOUT_DEFAULT 0
|
||
#define READ_LAYOUT_ETEN 1
|
||
#define READ_LAYOUT_IBM 2
|
||
#define READ_LAYOUT_CHINGYEAH 3
|
||
|
||
|
||
// the virtual key value
|
||
#define VK_OEM_SEMICLN '\xba' // ; :
|
||
#define VK_OEM_EQUAL '\xbb' // = +
|
||
#define VK_OEM_SLASH '\xbf' // / ?
|
||
#define VK_OEM_LBRACKET '\xdb' // [ {
|
||
#define VK_OEM_BSLASH '\xdc' // \ |
|
||
#define VK_OEM_RBRACKET '\xdd' // ] }
|
||
#define VK_OEM_QUOTE '\xde' // ' "
|
||
|
||
#define SDA_AIABC_KB 0
|
||
#define SDA_WPS_KB 0x2
|
||
#define SDA_STONE_KB 0x4
|
||
#define SDA_USER_KB 0x8
|
||
|
||
|
||
|
||
|
||
extern const TCHAR szRegAppUser[];
|
||
extern const TCHAR szRegModeConfig[];
|
||
|
||
|
||
|
||
#define MAX_IME_TABLES 6
|
||
#define MAX_IME_CLASS 16
|
||
|
||
#define CMENU_HUIWND 0
|
||
#define CMENU_MENU (CMENU_HUIWND+sizeof(CMENU_HUIWND))
|
||
#define WND_EXTRA_SIZE (CMENU_MENU+sizeof(CMENU_HUIWND))
|
||
|
||
#define WM_USER_DESTROY (WM_USER + 0x0400)
|
||
|
||
// Defines for soft_kbd skd #2
|
||
#define IDM_SKL1 0x0500
|
||
#define IDM_SKL2 0x0501
|
||
#define IDM_SKL3 0x0502
|
||
#define IDM_SKL4 0x0503
|
||
#define IDM_SKL5 0x0504
|
||
#define IDM_SKL6 0x0505
|
||
#define IDM_SKL7 0x0506
|
||
#define IDM_SKL8 0x0507
|
||
#define IDM_SKL9 0x0508
|
||
#define IDM_SKL10 0x0509
|
||
#define IDM_SKL11 0x050a
|
||
#define IDM_SKL12 0x050b
|
||
#define IDM_SKL13 0x050c
|
||
#define NumsSK 13
|
||
|
||
|
||
|
||
typedef DWORD UNALIGNED FAR *LPUNADWORD;
|
||
typedef WORD UNALIGNED FAR *LPUNAWORD;
|
||
|
||
|
||
typedef struct tagImeL { // local structure, per IME structure
|
||
HINSTANCE hInst; // IME DLL instance handle
|
||
WORD wImeStyle; // What kind of display
|
||
HWND TempUIWnd;
|
||
int xCompWi; // width
|
||
int yCompHi; // height
|
||
int Ox;
|
||
int Oy;
|
||
POINT ptZLCand;
|
||
POINT ptZLComp;
|
||
POINT ptDefComp; // default composition window position
|
||
POINT ptDefCand; // default Cand window
|
||
int cxCompBorder; // border width of composition window
|
||
int cyCompBorder; // border height of composition window
|
||
RECT rcCompText; // text position relative to composition window
|
||
BYTE szSetFile[16]; // .SET file name of IME
|
||
// standard table related data
|
||
DWORD fdwTblLoad; // the *.TBL load status
|
||
DWORD fdwErrMsg; // error message flag
|
||
int cRefCount; // reference count
|
||
// size of standard table
|
||
UINT uTblSize[1];
|
||
// filename of tables
|
||
BYTE szTblFile[1][16];
|
||
// the IME tables
|
||
HANDLE hMapTbl[1];
|
||
|
||
UINT uUsrDicSize; // memory size of user create words table
|
||
HANDLE hUsrDicMem; // memory handle for user dictionary
|
||
|
||
// the calculated sequence mask bits
|
||
DWORD dwSeqMask; // the sequence bits for one stoke
|
||
DWORD dwPatternMask; // the pattern bits for one result string
|
||
int nSeqBytes; // how many bytes for nMaxKey sequence chars
|
||
// key related data
|
||
DWORD fdwModeConfig;
|
||
WORD fModeConfig; // quick key/prediction mode
|
||
WORD nReadLayout; // ACER, ETen, IBM, or other - phonetic only
|
||
WORD nSeqBits; // no. of sequence bits
|
||
WORD nMaxKey; // max key of a Chinese word
|
||
WORD nSeqCode; // no. of sequence code
|
||
WORD fChooseChar[4]; // valid char in choose state
|
||
WORD fCompChar[5]; // valid char in input state
|
||
WORD nRevMaxKey;
|
||
|
||
// convert sequence code to composition char
|
||
WORD wSeq2CompTbl[64];
|
||
// convert char to sequence code
|
||
WORD wChar2SeqTbl[0x40];
|
||
TCHAR szUIClassName[MAX_IME_CLASS];
|
||
TCHAR szStatusClassName[MAX_IME_CLASS];
|
||
TCHAR szOffCaretClassName[MAX_IME_CLASS];
|
||
TCHAR szCMenuClassName[MAX_IME_CLASS];
|
||
HMENU hSysMenu;
|
||
HMENU hSKMenu;
|
||
|
||
DWORD dwSKState[NumsSK]; // skd #1
|
||
DWORD dwSKWant;
|
||
BOOL fWinLogon;
|
||
|
||
} IMEL;
|
||
|
||
typedef IMEL *PIMEL;
|
||
typedef IMEL NEAR *NPIMEL;
|
||
typedef IMEL FAR *LPIMEL;
|
||
|
||
|
||
|
||
typedef struct _tagTableFiles { // match with the IMEL
|
||
BYTE szTblFile[MAX_IME_TABLES][16];
|
||
} TABLEFILES;
|
||
|
||
typedef TABLEFILES *PTABLEFILES;
|
||
typedef TABLEFILES NEAR *NPTABLEFILES;
|
||
typedef TABLEFILES FAR *LPTABLEFILES;
|
||
|
||
|
||
typedef struct _tagValidChar { // match with the IMEL
|
||
WORD nMaxKey;
|
||
WORD nSeqCode;
|
||
WORD fChooseChar[4];
|
||
WORD fCompChar[5];
|
||
WORD wSeq2CompTbl[64];
|
||
WORD wChar2SeqTbl[0x40];
|
||
} VALIDCHAR;
|
||
|
||
typedef VALIDCHAR *PVALIDCHAR;
|
||
typedef VALIDCHAR NEAR *NPVALIDCHAR;
|
||
typedef VALIDCHAR FAR *LPVALIDCHAR;
|
||
|
||
|
||
|
||
#define NFULLABC 95
|
||
typedef struct _tagFullABC {
|
||
WORD wFullABC[NFULLABC];
|
||
} FULLABC;
|
||
|
||
typedef FULLABC *PFULLABC;
|
||
typedef FULLABC NEAR *NPFULLABC;
|
||
typedef FULLABC FAR *LPFULLABC;
|
||
|
||
|
||
typedef struct _tagImeG { // global structure, can be share by all IMEs,
|
||
// the seperation (IMEL and IMEG) is only
|
||
// useful in UNI-IME, other IME can use one
|
||
RECT rcWorkArea; // the work area of applications
|
||
|
||
// Select Wide ajust value
|
||
int Ajust;
|
||
int TextLen;
|
||
int unchanged;
|
||
// Chinese char width & height
|
||
int xChiCharWi;
|
||
int yChiCharHi;
|
||
// candidate list of composition
|
||
int xCandWi; // width of candidate list
|
||
int yCandHi; // high of candidate list
|
||
int cxCandBorder; // border width of candidate list
|
||
int cyCandBorder; // border height of candidate list
|
||
RECT rcCandText; // text position relative to candidate window
|
||
|
||
RECT rcPageUp;
|
||
RECT rcPageDown;
|
||
RECT rcHome;
|
||
RECT rcEnd;
|
||
|
||
HBITMAP PageUpBmp;
|
||
HBITMAP PageDownBmp;
|
||
HBITMAP HomeBmp;
|
||
HBITMAP EndBmp;
|
||
|
||
HBITMAP PageUp2Bmp;
|
||
HBITMAP PgDown2Bmp;
|
||
HBITMAP Home2Bmp;
|
||
HBITMAP End2Bmp;
|
||
|
||
|
||
HBITMAP NumbBmp;
|
||
HBITMAP SnumbBmp;
|
||
|
||
HPEN WhitePen;
|
||
HPEN BlackPen;
|
||
HPEN GrayPen;
|
||
HPEN LightGrayPen;
|
||
// status window
|
||
int xStatusWi; // width of status window
|
||
int yStatusHi; // high of status window
|
||
RECT rcStatusText; // text position relative to status window
|
||
RECT rcInputText; // input text relateive to status window
|
||
RECT rcShapeText; // shape text relative to status window
|
||
RECT rcSKText; // SK text relative to status window
|
||
RECT rcCmdText;
|
||
RECT rcPctText;
|
||
RECT rcFixCompText;
|
||
// full shape space (reversed internal code)
|
||
WORD wFullSpace;
|
||
// full shape chars (internal code)
|
||
WORD wFullABC[NFULLABC];
|
||
// error string
|
||
BYTE szStatusErr[8];
|
||
int cbStatusErr;
|
||
|
||
// candidate string start from 0 or 1
|
||
int iCandStart;
|
||
// setting of UI
|
||
int iPara;
|
||
int iPerp;
|
||
int iParaTol;
|
||
int iPerpTol;
|
||
// flag for disp style
|
||
int style;
|
||
BYTE KbType;
|
||
BYTE cp_ajust_flag;
|
||
BYTE auto_mode ;
|
||
BYTE cbx_flag;
|
||
BYTE tune_flag;
|
||
BYTE auto_cvt_flag;
|
||
BYTE SdOpenFlag ;
|
||
int InbxProc;
|
||
int First;
|
||
int Prop;
|
||
int KeepKey;
|
||
TCHAR szIMEUserPath[MAX_PATH];
|
||
} IMEG;
|
||
|
||
typedef IMEG *PIMEG;
|
||
typedef IMEG NEAR *NPIMEG;
|
||
typedef IMEG FAR *LPIMEG;
|
||
|
||
|
||
typedef struct _tagPRIVCONTEXT {// IME private data for each context
|
||
|
||
int iImeState; // the composition state - input, choose, or
|
||
BOOL fdwImeMsg; // what messages should be generated
|
||
DWORD dwCompChar; // wParam of WM_IME_COMPOSITION
|
||
DWORD fdwGcsFlag; // lParam for WM_IME_COMPOSITION
|
||
DWORD fdwInit; // position init
|
||
// SK data
|
||
HWND hSoftKbdWnd; // soft keyboard window
|
||
int nShowSoftKbdCmd;
|
||
|
||
// DWORD dwSKState[NumsSK]; // skd #1
|
||
// DWORD dwSKWant;
|
||
|
||
} PRIVCONTEXT;
|
||
|
||
typedef PRIVCONTEXT *PPRIVCONTEXT;
|
||
typedef PRIVCONTEXT NEAR *NPPRIVCONTEXT;
|
||
typedef PRIVCONTEXT FAR *LPPRIVCONTEXT;
|
||
|
||
|
||
typedef struct _tagUIPRIV { // IME private UI data
|
||
|
||
HWND hCompWnd; // composition window
|
||
int nShowCompCmd;
|
||
HWND hCandWnd; // candidate window for composition
|
||
int nShowCandCmd;
|
||
HWND hSoftKbdWnd; // soft keyboard window
|
||
int nShowSoftKbdCmd;
|
||
|
||
HWND hStatusWnd; // status window
|
||
HIMC hIMC; // the recent selected hIMC
|
||
int nShowStatusCmd;
|
||
DWORD fdwSetContext; // the actions to take at set context time
|
||
HWND hCMenuWnd; // a window owner for context menu
|
||
|
||
} UIPRIV;
|
||
|
||
typedef UIPRIV *PUIPRIV;
|
||
typedef UIPRIV NEAR *NPUIPRIV;
|
||
typedef UIPRIV FAR *LPUIPRIV;
|
||
|
||
typedef struct tagNEARCARET { // for near caret offset calculatation
|
||
int iLogFontFacX;
|
||
int iLogFontFacY;
|
||
int iParaFacX;
|
||
int iPerpFacX;
|
||
int iParaFacY;
|
||
int iPerpFacY;
|
||
} NEARCARET;
|
||
|
||
|
||
/*typedef struct _tagNEARCARET { // for near caret offset calculatation
|
||
int iLogFontFac;
|
||
int iParaFacX;
|
||
int iPerpFacX;
|
||
int iParaFacY;
|
||
int iPerpFacY;
|
||
} NEARCARET;*/
|
||
|
||
typedef NEARCARET *PNEARCARET;
|
||
typedef NEARCARET NEAR *NPNEARCARET;
|
||
typedef NEARCARET FAR *LPNEARCARET;
|
||
|
||
|
||
|
||
int WINAPI LibMain(HANDLE, WORD, WORD, LPSTR); // init.c
|
||
LRESULT CALLBACK UIWndProc(HWND, UINT, WPARAM, LPARAM); // ui.c
|
||
|
||
|
||
void PASCAL AddCodeIntoCand(LPCANDIDATELIST, WORD); // compose.c
|
||
void PASCAL CompWord(WORD, LPINPUTCONTEXT, LPCOMPOSITIONSTRING, LPPRIVCONTEXT,
|
||
LPGUIDELINE); // compose.c
|
||
UINT PASCAL Finalize(LPINPUTCONTEXT, LPCOMPOSITIONSTRING,
|
||
LPPRIVCONTEXT, BOOL); // compose.c
|
||
void PASCAL CompEscapeKey(LPINPUTCONTEXT, LPCOMPOSITIONSTRING,
|
||
LPGUIDELINE, LPPRIVCONTEXT); // compose.c
|
||
|
||
UINT PASCAL PhrasePrediction(LPINPUTCONTEXT, LPCOMPOSITIONSTRING,
|
||
LPPRIVCONTEXT); // chcand.c
|
||
void PASCAL SelectOneCand(LPINPUTCONTEXT, LPCOMPOSITIONSTRING,
|
||
LPPRIVCONTEXT, LPCANDIDATELIST); // chcand.c
|
||
void PASCAL CandEscapeKey(LPINPUTCONTEXT, LPPRIVCONTEXT); // chcand.c
|
||
void PASCAL ChooseCand(WORD, LPINPUTCONTEXT, LPCANDIDATEINFO,
|
||
LPPRIVCONTEXT); // chcand.c
|
||
|
||
void PASCAL SetPrivateFileSetting(LPBYTE, int, DWORD, LPCTSTR); // ddis.c
|
||
|
||
|
||
void PASCAL InitCompStr(LPCOMPOSITIONSTRING); // ddis.c
|
||
BOOL PASCAL ClearCand(LPINPUTCONTEXT); // ddis.c
|
||
|
||
UINT PASCAL TranslateImeMessage(LPTRANSMSGLIST,LPINPUTCONTEXT, LPPRIVCONTEXT); // toascii.c
|
||
|
||
void PASCAL GenerateMessage(HIMC, LPINPUTCONTEXT,
|
||
LPPRIVCONTEXT); // notify.c
|
||
|
||
|
||
void PASCAL LoadUsrDicFile(void); // dic.c
|
||
|
||
|
||
BOOL PASCAL LoadTable(void); // dic.c
|
||
void PASCAL FreeTable(void); // dic.c
|
||
|
||
DWORD PASCAL ReadingToPattern(LPCTSTR, BOOL); // regword.c
|
||
void PASCAL ReadingToSequence(LPCTSTR, LPBYTE, BOOL); // regword.c
|
||
|
||
|
||
void PASCAL DrawDragBorder(HWND, LONG, LONG); // uisubs.c
|
||
void PASCAL DrawFrameBorder(HDC, HWND); // uisubs.c
|
||
|
||
|
||
HWND PASCAL GetCompWnd(HWND); // compui.c
|
||
void PASCAL SetCompPosition(HWND, LPINPUTCONTEXT); // compui.c
|
||
void PASCAL SetCompWindow(HWND); // compui.c
|
||
void PASCAL MoveDefaultCompPosition(HWND); // compui.c
|
||
void PASCAL ShowComp(HWND, int); // compui.c
|
||
void PASCAL StartComp(HWND); // compui.c
|
||
void PASCAL EndComp(HWND); // compui.c
|
||
void PASCAL UpdateCompWindow(HWND); // compui.c
|
||
LRESULT CALLBACK CompWndProc(HWND, UINT, WPARAM, LPARAM); // compui.c
|
||
|
||
HWND PASCAL GetCandWnd(HWND); // candui.c
|
||
BOOL PASCAL CalcCandPos(LPPOINT); // candui.c
|
||
LRESULT PASCAL SetCandPosition(HWND, LPCANDIDATEFORM); // candui.c
|
||
void PASCAL ShowCand(HWND, int); // candui.c
|
||
void PASCAL OpenCand(HWND); // candui.c
|
||
void PASCAL CloseCand(HWND); // candui.c
|
||
void PASCAL UpdateCandWindow2(HWND, HDC); // candui.c
|
||
LRESULT CALLBACK CandWndProc(HWND, UINT, WPARAM, LPARAM); // candui.c
|
||
|
||
|
||
HWND PASCAL GetStatusWnd(HWND); // statusui.c
|
||
LRESULT PASCAL SetStatusWindowPos(HWND); // statusui.c
|
||
void PASCAL ShowStatus(HWND, int); // statusui.c
|
||
void PASCAL OpenStatus(HWND); // statusui.c
|
||
LRESULT CALLBACK StatusWndProc(HWND, UINT, WPARAM, LPARAM); // statusui.c
|
||
|
||
|
||
void PASCAL UpdateCompCur(
|
||
HWND hCompWnd);
|
||
|
||
void PASCAL ReInitIme(
|
||
HWND hWnd ,
|
||
WORD WhatStyle);
|
||
LRESULT PASCAL UIPaint2(
|
||
HWND hUIWnd);
|
||
|
||
|
||
LRESULT PASCAL UIPaint(
|
||
HWND hUIWnd);
|
||
|
||
void PASCAL AdjustStatusBoundary(
|
||
LPPOINT lppt);
|
||
|
||
void PASCAL DestroyUIWindow( // destroy composition window
|
||
HWND hUIWnd);
|
||
|
||
LRESULT CALLBACK ContextMenuWndProc(
|
||
|
||
HWND hCMenuWnd,
|
||
UINT uMsg,
|
||
WPARAM wParam,
|
||
LPARAM lParam);
|
||
|
||
|
||
UINT PASCAL TransAbcMsg(
|
||
LPTRANSMSGLIST lpTransBuf,
|
||
LPPRIVCONTEXT lpImcP,
|
||
LPINPUTCONTEXT lpIMC,
|
||
UINT uVirtKey,
|
||
UINT uScanCode,
|
||
WORD wCharCode);
|
||
|
||
UINT PASCAL TransAbcMsg2(
|
||
LPTRANSMSG lpTransMsg,
|
||
LPPRIVCONTEXT lpImcP);
|
||
|
||
void PASCAL GenerateMessage2(
|
||
HIMC ,
|
||
LPINPUTCONTEXT ,
|
||
LPPRIVCONTEXT );
|
||
|
||
|
||
void PASCAL MoveCompCand(
|
||
HWND hUIWnd);
|
||
|
||
void PASCAL UpdateSoftKbd(
|
||
HWND hUIWnd);
|
||
|
||
void PASCAL DestroyStatusWindow(
|
||
HWND hStatusWnd);
|
||
|
||
void PASCAL ChangeCompositionSize(
|
||
HWND hUIWnd);
|
||
|
||
INT_PTR CALLBACK CvtCtrlProc(HWND hdlg,
|
||
UINT uMessage,
|
||
WPARAM wparam,
|
||
LPARAM lparam);
|
||
|
||
INT_PTR CALLBACK ImeStyleProc(HWND hdlg,
|
||
UINT uMessage,
|
||
WPARAM wparam,
|
||
LPARAM lparam);
|
||
|
||
INT_PTR CALLBACK KbSelectProc(HWND hdlg,
|
||
UINT uMessage,
|
||
WPARAM wparam,
|
||
LPARAM lparam);
|
||
|
||
|
||
LRESULT PASCAL GetCandPos(
|
||
HWND hUIWnd,
|
||
LPCANDIDATEFORM lpCandForm);
|
||
|
||
|
||
|
||
|
||
|
||
/*********************************************************************/
|
||
/* Prototype define of abc95wp.c */
|
||
/*********************************************************************/
|
||
|
||
|
||
UINT WINAPI SetResultToIMC(
|
||
HIMC ghIMC,
|
||
LPSTR outBuffer, //soarce buffer (normal for out_svw)
|
||
WORD outCount); //How many candidates are.
|
||
|
||
|
||
void PASCAL AbcGenerateMessage(
|
||
HIMC hIMC,
|
||
LPINPUTCONTEXT lpIMC,
|
||
LPPRIVCONTEXT lpImcP);
|
||
|
||
int WINAPI MouseInput(HWND hWnd, WPARAM wParam, LPARAM lParam);
|
||
|
||
int WINAPI SoftKeyProc(int flag);
|
||
|
||
int WINAPI WhichRect(POINT point);
|
||
|
||
int WINAPI ConvertKey(WORD wParam);
|
||
|
||
int WINAPI CharProc(WORD ImeChar,WPARAM wParam,LPARAM lParam,
|
||
HIMC hIMC,LPINPUTCONTEXT lpIMC,LPPRIVCONTEXT lpImcP);
|
||
|
||
int WINAPI v_proc(WORD input_char);
|
||
|
||
void WINAPI DispModeEx();
|
||
|
||
void WINAPI DispMode(HIMC);
|
||
|
||
void WINAPI DispSpecChar(int c,int n);
|
||
|
||
void WINAPI show_char(unsigned char *string,int count);
|
||
|
||
void WINAPI disp_jiyi(HANDLE xxx);
|
||
|
||
void WINAPI prompt_disp();
|
||
|
||
int WINAPI cls_prompt();
|
||
|
||
int WINAPI cls_prompt_only();
|
||
|
||
int WINAPI SetCloseCompWinMsg(int ClsFlag);
|
||
|
||
void WINAPI ABCstrnset(LPSTR bufferd,BYTE value,int n);
|
||
|
||
LPSTR WINAPI ABCstrstr(LPSTR str1,LPSTR str2);
|
||
|
||
int WINAPI back_a_space(int x);
|
||
|
||
int WINAPI cs_p(int x);
|
||
|
||
void WINAPI DrawInputCur();
|
||
|
||
void WINAPI UpdateUser();
|
||
|
||
int WINAPI STD_MODE(WORD input_char);
|
||
|
||
int WINAPI call_czh(int mtype);
|
||
|
||
void WINAPI MoveWordIntoCand(
|
||
LPCANDIDATELIST lpCandList,
|
||
LPBYTE srcBuffer,
|
||
BYTE srcAttr,
|
||
WORD perLength );
|
||
|
||
UINT WINAPI SetToIMC(HIMC ghIMC,BYTE *srcBuffer,
|
||
WORD srcCount,WORD perLength);
|
||
|
||
|
||
int WINAPI word_select(int input_char);
|
||
|
||
int WINAPI del_and_reconvert();
|
||
|
||
int WINAPI backword_proc();
|
||
|
||
int WINAPI same_as_backwords();
|
||
|
||
void WINAPI AutoMoveResult();
|
||
|
||
void WINAPI move_result();
|
||
|
||
int WINAPI pindu_ajust();
|
||
|
||
void WINAPI cls_inpt_bf(int hFunc);
|
||
|
||
void WINAPI half_init();
|
||
|
||
int WINAPI sent_chr1(int input_char);
|
||
|
||
BOOL if_biaodian(BYTE x);
|
||
|
||
int WINAPI analize();
|
||
|
||
BOOL bd_proc();
|
||
|
||
int WINAPI GetBDValue(int bd_char);
|
||
|
||
BOOL if_zimu_or_not(BYTE x);
|
||
|
||
int WINAPI if_number_or_not(BYTE c);
|
||
|
||
int WINAPI if_bx_number(BYTE c);
|
||
|
||
int WINAPI out_result(int result_type);
|
||
|
||
void WINAPI fmt_transfer();
|
||
|
||
int WINAPI sent_back_msg();
|
||
|
||
int WINAPI if_jlxw_mode();
|
||
|
||
int WINAPI disp_auto_select();
|
||
|
||
|
||
int WINAPI if_first_key(WORD input_char);
|
||
|
||
//void WINAPI add_ext_lib();
|
||
|
||
int WINAPI temp_rem_proc();
|
||
|
||
int WINAPI if_multi_rem(int c);
|
||
|
||
void WINAPI send_msg(BYTE *bf,int count);
|
||
|
||
int WINAPI send_one_char(int chr);
|
||
|
||
int WINAPI send_one_char0(int chr);
|
||
|
||
void WINAPI cap_full(WORD wParam);
|
||
|
||
int WINAPI read_kb();
|
||
|
||
/* WORD FAR PASCAL TimerFunc(HWND hWnd, WORD wMsg,
|
||
int nIDEvent, DWORD dwTime); */
|
||
|
||
extern WORD last_size;
|
||
|
||
BX_MODE(WORD input_char,WPARAM wParam);
|
||
|
||
void WINAPI bx_proc(WORD input_char,WPARAM wParam);
|
||
|
||
int WINAPI bx_analize(WORD input_char,WPARAM wParam);
|
||
|
||
int WINAPI disp_help_and_result();
|
||
|
||
int WINAPI cmp_bx_word_exactly();
|
||
|
||
int WINAPI cmp_bx_code2();
|
||
|
||
void WINAPI conbine();
|
||
|
||
int WINAPI cmp_subr();
|
||
|
||
void WINAPI cls_bx_disp(int flag);
|
||
|
||
int WINAPI load_one_part_bxtab();
|
||
|
||
int WINAPI disp_bx_result();
|
||
|
||
void WINAPI disp_bx_prompt();
|
||
|
||
void WINAPI send_bx_result();
|
||
|
||
void WINAPI data_init();
|
||
|
||
int WINAPI QuitBefore();
|
||
|
||
int WINAPI CheckAndCreate(BYTE *tmmr_rem, BYTE *user_rem);
|
||
|
||
void WINAPI err_exit(char *err_msg);
|
||
|
||
int WINAPI enter_death(HWND hhW);
|
||
|
||
LONG FAR PASCAL Diaman(HWND hDlg, unsigned xiaoxi,
|
||
WORD wParam, LONG lParam);
|
||
|
||
int WINAPI ok_return(WORD xiaoxi,HWND hDlg);
|
||
|
||
void WINAPI err_exit_proc( char *err_msg);
|
||
|
||
int WINAPI GetText32( HDC hdc, LPCTSTR lpString, int cbString);
|
||
|
||
int WINAPI makep(LPARAM lParam, LPPOINT oldPoint);
|
||
|
||
int WINAPI cwp_proc(int mtype);
|
||
|
||
int WINAPI find_next();
|
||
|
||
int WINAPI normal();
|
||
|
||
int WINAPI normal_1(int flag);
|
||
|
||
int WINAPI recall();
|
||
|
||
int WINAPI user_definition();
|
||
|
||
int WINAPI detail_analyse();
|
||
|
||
int WINAPI slbl(BYTE *s_buffer);
|
||
|
||
int WINAPI getattr(BYTE x,char *p);
|
||
|
||
int WINAPI neg_slbl(WORD value);
|
||
|
||
int WINAPI neg_sc(int i,BYTE x);
|
||
|
||
int WINAPI convert(int flag);
|
||
|
||
int WINAPI copy_input();
|
||
|
||
void WINAPI input_msg_type();
|
||
|
||
int WINAPI pre_nt_w1();
|
||
|
||
int WINAPI pre_nt_w1(int ps);
|
||
|
||
void WINAPI w1_no_tune();
|
||
|
||
int WINAPI sc_gb();
|
||
|
||
int WINAPI sc_gbdy();
|
||
|
||
int WINAPI get_the_one(int i);
|
||
|
||
int WINAPI cmp_bx1(int i);
|
||
|
||
int WINAPI get_the_one2(int i);
|
||
|
||
int WINAPI cmp_bx2(int i);
|
||
|
||
int WINAPI paidui(int cnt);
|
||
|
||
void WINAPI s_tune();
|
||
|
||
int WINAPI fu_sm(BYTE fy);
|
||
|
||
int WINAPI find_one_hi();
|
||
|
||
int WINAPI czcx(WORD *stack);
|
||
|
||
int WINAPI find_multy_hi();
|
||
|
||
int WINAPI find_two_hi();
|
||
|
||
int WINAPI find_three_hi();
|
||
|
||
int WINAPI cmp_2_and_3(WORD *t_stack);
|
||
|
||
void WINAPI find_that();
|
||
|
||
int WINAPI find_hz(WORD x);
|
||
|
||
int WINAPI prepare_search1();
|
||
|
||
int WINAPI search_and_read(BYTE f_ci1,BYTE f_ci2);
|
||
|
||
int WINAPI if_already_in(BYTE f_ci1,BYTE f_ci2);
|
||
|
||
int WINAPI count_basic_pera(BYTE f_ci1,BYTE f_ci2);
|
||
|
||
int WINAPI read_kzk_lib();
|
||
|
||
int WINAPI read_a_page(BYTE file_flag,LONG start_ps, WORD size);
|
||
|
||
int WINAPI abbr_s1();
|
||
|
||
void WINAPI find_new_word();
|
||
|
||
int WINAPI fczs1(BYTE *rem_p,int end,int area_flag);
|
||
|
||
int WINAPI find_long_word2(BYTE *buffer);
|
||
|
||
int WINAPI trs_new_word(int word_addr,BYTE *buffer,int area_flag);
|
||
|
||
void WINAPI pre_cmp(WORD x);
|
||
|
||
int WINAPI cmp_a_slbl_with_bx();
|
||
|
||
int WINAPI cmp_a_slbl();
|
||
|
||
int WINAPI cmp_first_letter();
|
||
|
||
int WINAPI cisu_to_py();
|
||
|
||
int WINAPI get_head(BYTE first_letter);
|
||
|
||
int WINAPI yjbx();
|
||
|
||
int WINAPI abbr_entry(BYTE *s_start,BYTE *s_end ,BYTE ComeFrom);
|
||
|
||
int WINAPI cmp_long_word2(BYTE *buffer);
|
||
|
||
int WINAPI order_result2();
|
||
|
||
int WINAPI fenli_daxie();
|
||
|
||
int WINAPI rzw();
|
||
|
||
int WINAPI abbr();
|
||
|
||
int WINAPI sfx_proc();
|
||
|
||
void WINAPI zdyb();
|
||
|
||
int WINAPI recall_rc();
|
||
|
||
int WINAPI find_long_word3(WORD *stack,int length);
|
||
|
||
void WINAPI trs_new_word3(BYTE length,int addr);
|
||
|
||
int WINAPI new_word();
|
||
|
||
int WINAPI rem_new_word();
|
||
|
||
int WINAPI AddExtLib();
|
||
|
||
void WINAPI write_new_word(int flag);
|
||
|
||
int WINAPI writefile(BYTE *file_n,LONG distance,LPSTR p,int count);
|
||
|
||
int WINAPI read_mulu();
|
||
|
||
int WINAPI look_for_code();
|
||
|
||
int WINAPI if_code_equ(int addr);
|
||
|
||
int WINAPI read_data(int rec_cnt);
|
||
|
||
int WINAPI UpdateProc();
|
||
|
||
int WINAPI rem_pd1(WORD *buffer);
|
||
|
||
int WINAPI push_down_stack1();
|
||
|
||
void WINAPI rem_pd2(WORD *buffer);
|
||
|
||
void WINAPI rem_pd3(WORD *buffer);
|
||
|
||
void WINAPI DealWithSH();
|
||
void WINAPI PopStMenu(HWND hWnd, int x, int y);
|
||
int ReDrawSdaKB(HIMC hIMC, DWORD KbIndex, DWORD ShowOp);
|
||
int InitUserSetting(void);
|
||
void InitCvtPara(void);
|
||
int DoPropertySheet(HWND hwndOwner,HWND hWnd);
|
||
int CountDefaultComp(int x, int y, RECT Area);
|
||
int CommandProc(WPARAM wParam,HWND hWnd);
|
||
void WINAPI CenterWindow(HWND hWnd);
|