⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imedefs.h

📁 输入法源代码自由拼音输入法源代码(T9)
💻 H
📖 第 1 页 / 共 2 页
字号:
    RECT        rcCandBTU;
    RECT        rcCandBTE;
    RECT        rcCandBTH;
    RECT        rcCandInf;
    RECT        rcCandIcon;
    int             iCandSelID;
    BOOL         bGetFocus;	
// status window
    int            xStatusWi;      // width of status window
    int            yStatusHi;      // high of status window
    RECT        rcStatusText;   // text position relative to status window
    RECT        rcImeIcon;      // ImeIcon position relative to status window
    RECT        rcImeName;      // ImeName position relative to status window
    //RECT        rcImeOutName;      // ImeName position relative to status window
    //RECT     rcShapeText;    // shape text relative to status window
    //RECT    rcSymbol;       // symbol relative to status window
 
// full shape space (reversed internal code)
//    WORD      wFullSpace;
// full shape chars (internal code)
//    WORD        wFullABC[NFULLABC];
// error string
//    TCHAR     szStatusErr[8];
//    int            cbStatusErr;
// candidate string start from 0 or 1
    int            iCandStart;
// setting of UI
//    int            iPara;
//    int            iPerp;
//    int            iParaTol;
//    int            iPerpTol;
// reverse conversion
//    HKL         hRevKL;         // the HKL of reverse mapping IME
//    DWORD   nRevMaxKey;
} 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
    UINT          uSYHFlg;
    UINT          uDYHFlg;
    UINT          uDSMHCount;
    UINT          uDSMHFlg;
    // input data
    TCHAR        bSeq[COMP_MAX_PYLEN+1];        // sequence code of input char
    DWORD       fdwGB;

} 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    hStatusWnd;         // status window
    int     nShowStatusCmd;
    DWORD   fdwSetContext;      // the actions to take at set context time
    HIMC    hIMC;               // the recent selected hIMC
} 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 NEARCARET      *PNEARCARET;
typedef NEARCARET NEAR *NPNEARCARET;
typedef NEARCARET FAR  *LPNEARCARET;
#define WINCE_SYSTEM_PATH  TEXT("\\windows")

extern HINSTANCE hInst;
extern IMEG      sImeG;
extern IMEL      sImeL;
extern LPIMEL    lpImeL;
extern UINT      uStartComp;
extern UINT      uOpenCand;
extern TCHAR     szUIClassName[];
extern TCHAR     szCompClassName[];
extern TCHAR     szCandClassName[];
extern TCHAR     szStatusClassName[];
extern TCHAR     szCMenuClassName[];
extern TCHAR     szHandCursor[];
extern TCHAR     szChinese[];
extern TCHAR    pszImeName[MAX_PATH];
extern TCHAR    *szImeName;
extern TCHAR      szEnglish[];
extern TCHAR      szDigit[];

extern const POINT ptInputEsc[];
LRESULT CALLBACK UIWndProc(HWND, UINT, WPARAM, LPARAM); // ui.c
LRESULT PASCAL UIPaint(HWND);                           // ui.c

void PASCAL AddCodeIntoCand(LPCANDIDATELIST, WORD *);             // compose.c
void PASCAL CompWord(WORD, LPINPUTCONTEXT, LPCOMPOSITIONSTRING, LPPRIVCONTEXT);                                              // compose.c
UINT PASCAL Finalize(LPINPUTCONTEXT, LPCOMPOSITIONSTRING,
     LPPRIVCONTEXT);                                      // compose.c
void PASCAL CompEscapeKey(LPINPUTCONTEXT, LPCOMPOSITIONSTRING,
      LPPRIVCONTEXT);                               // compose.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 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 DrawDragBorder(HWND, LONG, LONG);                   // uisubs.c
void PASCAL DrawFrameBorder(HDC, HWND);                         // uisubs.c

HWND    PASCAL GetCompWnd(HWND);                                // compui.c
void    PASCAL SetCompPosition(HWND, HIMC, 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
LRESULT CALLBACK CompWndProc(HWND, UINT, WPARAM, LPARAM);       // compui.c
void    PASCAL CompCancel(HIMC, LPINPUTCONTEXT);

HWND    PASCAL GetCandWnd(HWND);                                // candui.c
void    PASCAL CalcCandPos(HIMC, HWND, LPPOINT);                            // candui.c
LRESULT PASCAL SetCandPosition(HWND);                           // candui.c
void    PASCAL ShowCand(HWND, int);                             // candui.c
void    PASCAL OpenCand(HWND);                                  // candui.c
void    PASCAL CloseCand(HWND);                                 // candui.c
void    PASCAL PaintCandWindow(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 DrawConvexRect(HDC, int, int, int, int);
void DrawConvexRectP(HDC, int, int, int, int);
void DrawConcaveRect(HDC, int, int, int, int);
void PASCAL InitStatusUIData(int, int);
void PASCAL InitCandUIData(int, int, int);
BOOL UpdateStatusWindow(HWND);
void PASCAL CandPageDownUP(HWND, UINT);
void PASCAL GenerateImeMessage(HIMC, LPINPUTCONTEXT, DWORD);

/*
 * Flags for TrackPopupMenu
 */
#define TPM_LEFTBUTTON     0x0000L
#define TPM_RIGHTBUTTON  0x0002L
#define TPM_LEFTALIGN       0x0000L
#define TPM_CENTERALIGN  0x0004L
#define TPM_RIGHTALIGN    0x0008L

#define SWP_NOCOPYBITS      0x0100
/*
 * WM_MOUSEACTIVATE Return Codes
 */
#define MA_ACTIVATE         1
#define MA_ACTIVATEANDEAT   2
#define MA_NOACTIVATE       3
#define MA_NOACTIVATEANDEAT 4

#define WM_MOUSEACTIVATE               0x0021
#define RDW_FRAME                             0x0400
#define IMMGWLP_IMC                          0
#define IMMGWLP_PRIVATE                  (sizeof(LONG_PTR))

#define TOTAL_PINYIN_DATA_ITEMS   421 
#define PY_EDITER_PY_ITEMS		     128
#define PY_EDITER_HZ_ITEMS             128

typedef struct tagPinyinDataItem
{
	char   	   	       szPinyin[8];
	unsigned short	nHanziOffset;
	unsigned short	nHanziNumber;
} PINYIN_DATA_ITEM;

typedef struct tagCoHanziPinyinItem
{
	unsigned short nInternalCode;
	PINYIN_DATA_ITEM* pinyinItem;
} CO_HANZI_PINYIN_ITEM;

typedef struct tagCoDigitPinyinItem
{
	char   	   	   szDigit[8];
	PINYIN_DATA_ITEM* pinyinItem;
} CO_DIGIT_PINYIN_ITEM;

int PASCAL PinyinToDigit();

 int PASCAL EnumPinyinByDigit(char* digitString, char pinyin[][8]);

 int PASCAL GetHanZiByPinyin(char* pinyin,char hanzi[][4]);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -