📄 saenaru.h
字号:
typedef struct _tagMYCAND{
CANDIDATEINFO ci;
CANDIDATELIST cl;
DWORD offset[MAXCANDSTRNUM];
TCHAR szCand[MAXCANDSTRNUM][MAXCANDSTRSIZE];
} MYCAND, NEAR *PMYCAND, FAR *LPMYCAND;
typedef struct _tagUICHILD{
HWND hWnd;
BOOL bShow;
POINT pt;
} UICHILD, NEAR *PUICHILD, FAR *LPUICHILD;
typedef struct _tagUICHILD2{
HWND hWnd;
BOOL bShow;
RECT rc;
} UICHILD2, NEAR *PUICHILD2, FAR *LPUICHILD2;
typedef struct _tagUIEXTRA{
HIMC hIMC;
UICHILD uiStatus;
UICHILD uiCand;
#if 1
UICHILD uiSoftKbd;
DWORD nShowSoftKbdCmd;
#endif
DWORD dwCompStyle;
HFONT hFont;
BOOL bVertical;
UICHILD uiDefComp;
UICHILD2 uiComp[MAXCOMPWND];
UICHILD uiGuide;
} UIEXTRA, NEAR *PUIEXTRA, FAR *LPUIEXTRA;
typedef struct _tagMYGUIDELINE{
DWORD dwLevel;
DWORD dwIndex;
DWORD dwStrID;
DWORD dwPrivateID;
} MYGUIDELINE, NEAR *PMYGUIDELINE, FAR *LPMYGUIDELINE;
#define MAXICREADSIZE 10+2
#define MAXICCOMPSIZE 2
typedef struct _tagHangulIC {
//WCHAR read[10]; // L{1,3}V{1,3}T{0,3}
WCHAR read[MAXICREADSIZE];
WCHAR comp[MAXICCOMPSIZE];
WCHAR cho;
WCHAR jung;
WCHAR jong;
WCHAR last;
UINT len;
UINT lastvkey;
int laststate;
BOOL syllable;
} HangulIC;
/**********************************************************************/
/* */
/* Externs */
/* */
/**********************************************************************/
#ifndef _NO_EXTERN_
extern HINSTANCE hInst;
extern HKL hMyKL;
extern LPTRANSMSGLIST lpCurTransKey;
extern UINT uNumTransKey;
extern BOOL fOverTransKey;
extern TCHAR szUIClassName[];
extern TCHAR szCompStrClassName[];
extern TCHAR szCandClassName[];
extern TCHAR szStatusClassName[];
extern TCHAR szGuideClassName[];
extern MYGUIDELINE glTable[];
extern TCHAR szDicFileName[];
extern BYTE bComp[];
extern BYTE bCompCtl[];
extern BYTE bCompSht[];
extern BYTE bCompAlt[];
extern BYTE bNoComp[];
extern BYTE bNoCompCtl[];
extern BYTE bNoCompSht[];
extern BYTE bNoCompAlt[];
#if DEBUG
extern DWORD dwLogFlag;
extern DWORD dwDebugFlag;
#endif
extern DWORD dwLayoutFlag;
extern DWORD dwOptionFlag;
extern DWORD dwImeFlag;
extern HangulIC ic;
#endif //_NO_EXTERN_
/**********************************************************************/
/* */
/* Functions */
/* */
/**********************************************************************/
/* saenaru.c */
int PASCAL Init(void);
/* subs.c */
void PASCAL InitCompStr(LPCOMPOSITIONSTRING lpCompStr,DWORD dwClrFlag);
void PASCAL ClearCompStr(LPCOMPOSITIONSTRING lpCompStr,DWORD dwClrFlag);
void PASCAL ClearCandidate(LPCANDIDATEINFO lpCandInfo);
void PASCAL ChangeMode(HIMC hIMC,DWORD dwToMode);
void PASCAL ChangeCompStr(HIMC hIMC,DWORD dwToMode);
HKL PASCAL GetMyHKL (void) ;
BOOL PASCAL IsCompStr(HIMC hIMC);
BOOL PASCAL IsConvertedCompStr(HIMC hIMC);
BOOL PASCAL IsCandidate(LPINPUTCONTEXT lpIMC);
void PASCAL UpdateIndicIcon(HIMC hIMC);
void PASCAL lmemset(LPBYTE,BYTE,UINT);
int PASCAL MylstrcmpW(LPWSTR lp0, LPWSTR lp1);
int PASCAL MylstrcpyW(LPWSTR lp0, LPWSTR lp1);
LPWSTR PASCAL MyCharPrevW(LPWSTR lpStart, LPWSTR lpCur);
LPWSTR PASCAL MyCharNextW(LPWSTR lp);
LPWSTR PASCAL MylstrcpynW(LPWSTR lp0, LPWSTR lp1, int nCount);
HFONT CheckNativeCharset(HDC hDC);
/* toascii.c */
BOOL PASCAL GenerateMessageToTransKey(LPTRANSMSGLIST lpTrabsKey,LPTRANSMSG lpGeneMsg);
BOOL PASCAL GenerateOverFlowMessage(LPTRANSMSGLIST lpTransKey);
/* notify.c */
BOOL PASCAL NotifyUCSetOpen(HIMC hIMC);
BOOL PASCAL NotifyUCConversionMode(HIMC hIMC);
BOOL PASCAL NotifyUCSetCompositionWindow(HIMC hIMC);
/* input.c */
BOOL PASCAL IMEKeydownHandler(HIMC,WPARAM,LPARAM,LPBYTE);
BOOL PASCAL IMEKeyupHandler(HIMC,WPARAM,LPARAM,LPBYTE);
/* ui.c */
BOOL IMERegisterClass(HANDLE hInstance);
LRESULT CALLBACK SAENARUWndProc(HWND,UINT,WPARAM,LPARAM);
LONG PASCAL NotifyCommand(HIMC hUICurIMC, HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);
LONG PASCAL ControlCommand(HIMC hUICurIMC, HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);
void PASCAL DrawUIBorder( LPRECT lprc );
void PASCAL DragUI(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
/* uistate.c */
LRESULT CALLBACK StatusWndProc(HWND,UINT,WPARAM,LPARAM);
void PASCAL PaintStatus(HWND hStatusWnd , HDC hDC, LPPOINT lppt,DWORD dwPushedStatus);
void PASCAL ButtonStatus(HWND hWnd, UINT message,WPARAM wParam,LPARAM lParam);
BOOL PASCAL MyIsIMEMessage(UINT message);
void PASCAL UpdateStatusWindow(LPUIEXTRA lpUIExtra);
/* uicand.c */
LRESULT CALLBACK CandWndProc(HWND,UINT,WPARAM,LPARAM);
void PASCAL PaintCandWindow(HWND hCandWnd);
BOOL PASCAL GetCandPosFromComp(LPINPUTCONTEXT lpIMC, LPUIEXTRA lpUIExtra,LPPOINT lppt);
void PASCAL CreateCandWindow(HWND hUIWnd,LPUIEXTRA lpUIExtra, LPINPUTCONTEXT lpIMC);
void PASCAL ResizeCandWindow(LPUIEXTRA lpUIExtra,LPINPUTCONTEXT lpIMC);
void PASCAL HideCandWindow( LPUIEXTRA lpUIExtra);
void PASCAL MoveCandWindow(HWND hUIWnd, LPINPUTCONTEXT lpIMC, LPUIEXTRA lpUIExtra, BOOL fForceComp);
/* uicomp.c */
LRESULT CALLBACK CompStrWndProc(HWND,UINT,WPARAM,LPARAM);
void PASCAL PaintCompWindow(HWND hCompWnd);
void PASCAL CreateCompWindow(HWND hUIWnd, LPUIEXTRA lpUIExtra,LPINPUTCONTEXT lpIMC);
void PASCAL MoveCompWindow(LPUIEXTRA lpUIExtra,LPINPUTCONTEXT lpIMC);
void PASCAL HideCompWindow(LPUIEXTRA lpUIExtra);
void PASCAL SetFontCompWindow(LPUIEXTRA lpUIExtra);
/* uisoft.c */
void PASCAL ShowSoftKbd(HWND, int);
void PASCAL SetSoftKbdData(HWND);
void PASCAL UpdateSoftKbd(HWND);
void PASCAL SoftKbdDestroyed(HWND);
/* uiguide.c */
LRESULT CALLBACK GuideWndProc(HWND,UINT,WPARAM,LPARAM);
void PASCAL PaintGuide(HWND hGuideWnd , HDC hDC, LPPOINT lppt,DWORD dwPushedGuide);
void PASCAL ButtonGuide(HWND hWnd, UINT message,WPARAM wParam,LPARAM lParam);
void PASCAL UpdateGuideWindow(LPUIEXTRA lpUIExtra);
LRESULT CALLBACK LineWndProc(HWND,UINT,WPARAM,LPARAM);
/* config.c */
INT_PTR CALLBACK AboutDlgProc(HWND hDlg, UINT message , WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK GeneralDlgProc(HWND hDlg, UINT message , WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK DebugOptionDlgProc(HWND hDlg, UINT message , WPARAM wParam, LPARAM lParam);
UINT load_keyboard_map_from_reg(LPCTSTR, UINT, WCHAR *);
/* DIC.C */
BOOL PASCAL IsEat(WORD);
BOOL PASCAL DicKeydownHandler(HIMC,UINT,LPARAM,LPBYTE);
void PASCAL DeleteChar( HIMC hIMC ,UINT uVKey);
void PASCAL FlushText();
void PASCAL RevertText(HIMC hIMC);
void PASCAL AddChar(HIMC,WORD);
WCHAR PASCAL hangul_ic_get(HangulIC*, UINT);
void PASCAL hangul_ic_init(HangulIC*);
BOOL PASCAL ConvHanja(HIMC, int, UINT);
BOOL WINAPI MakeResultString(HIMC,BOOL);
BOOL PASCAL MakeGuideLine(HIMC, DWORD);
BOOL PASCAL GenerateMessage(HIMC,LPINPUTCONTEXT,LPTRANSMSGLIST,LPTRANSMSG);
BOOL PASCAL CheckAttr( LPCOMPOSITIONSTRING lpCompStr);
void PASCAL MakeAttrClause( LPCOMPOSITIONSTRING lpCompStr);
void PASCAL HandleShiftArrow( HIMC hIMC, BOOL fArrow);
/* hangul.c */
void PASCAL hangulKeyHandler(HIMC,WPARAM,LPARAM,LPBYTE);
int PASCAL set_keyboard(UINT);
int PASCAL set_automata(UINT);
/* DIC2.C */
BOOL OneCharZenToHan(WCHAR ,WCHAR* ,WCHAR* );
WORD PASCAL HanToZen(WORD,WORD,DWORD);
WORD PASCAL ZenToHan(WORD);
int PASCAL IsFirst(WORD);
int PASCAL IsSecond(WORD);
WORD PASCAL ConvChar(HIMC,WORD,WORD);
BOOL PASCAL IsTenten(WORD);
WORD PASCAL ConvTenten(WORD);
BOOL PASCAL IsMaru(WORD);
WORD PASCAL ConvMaru(WORD);
WORD PASCAL HiraToKata(WORD);
WORD PASCAL KataToHira(WORD);
void PASCAL lZenToHan(LPMYSTR,LPMYSTR);
void PASCAL lHanToZen(LPMYSTR,LPMYSTR,DWORD);
/* DIC3.C */
WORD PASCAL AddWord(LPSTR,LPSTR);
WORD PASCAL GetWord(LPSTR,LPSTR,WORD,WORD);
WORD PASCAL GetWordCount(LPSTR);
WORD PASCAL GetWordNum(LPSTR);
WORD PASCAL DeleteWord(LPSTR,LPSTR);
/* reg.C */
void SetDwordToSetting(LPCTSTR lpszFlag, DWORD dwFlag);
long PASCAL GetRegMultiStringValue (LPCTSTR,LPCTSTR,LPTSTR);
void SetRegMultiString(LPCTSTR lpszFlag, DWORD dwFlag);
void PASCAL SetGlobalFlags();
void GetRegKeyList(LPCTSTR lpszSubDir);
BOOL GetRegKeyHandle(LPCTSTR lpszSubKey, HKEY *hKey);
void PASCAL ImeLog(DWORD dwFlag, LPTSTR lpStr);
#ifdef DEBUG
//#include "debug.h"
#define DEBUGPRINTF(arg) DebugPrint##arg
#define DEBUGPRINTFW(arg) DebugPrintW##arg
#if !defined (DEBUG_LV)
#define DEBUG_LV 1
#endif
#define DEBUGPRINTFEX(level,arg) if((level) >= DEBUG_LV) DebugPrint##arg
#define MyDebugPrint(x) DebugPrint x
int DebugPrint(LPCTSTR lpszFormat, ...);
#else
#define MyDebugPrint(x)
#define ImeLog(dwFlag, lpStr) FALSE
#define DEBUGPRINTF(arg) /*arg*/
#define DEBUGPRINTFW(arg) /*arg*/
#define DEBUGPRINTFEX(level,arg) /*if((level) >= DEBUG_LV) DebugPrintfToFile##arg*/
#endif
/* tsf.cpp */
#if !defined (NO_TSF)
BOOL PASCAL InitLanguageBar (void) ;
void PASCAL UninitLanguageBar (void) ;
BOOL PASCAL UpdateLanguageBarIfSelected (void) ;
BOOL PASCAL UpdateLanguageBar (void) ;
void PASCAL ActivateLanguageBar (BOOL) ;
BOOL PASCAL IsTSFEnabled (void) ;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -