📄 imedefs.h
字号:
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 + -