483 lines
17 KiB
C
483 lines
17 KiB
C
/*++
|
|
|
|
Copyright (c) 1990-1998 Microsoft Corporation, All Rights Reserved
|
|
|
|
Module Name:
|
|
|
|
FAKEIME.H
|
|
|
|
++*/
|
|
|
|
#include <indicml.h>
|
|
/**********************************************************************/
|
|
/* */
|
|
/* DebugOptions */
|
|
/* */
|
|
/**********************************************************************/
|
|
#define DEBF_THREADID 0x00000001
|
|
#define DEBF_GUIDELINE 0x00000002
|
|
|
|
#define LOGF_ENTRY 0x00000001
|
|
#define LOGF_API 0x00000002
|
|
#define LOGF_APIOUT 0x00000004
|
|
#define LOGF_KEY 0x00000008
|
|
|
|
|
|
/**********************************************************************/
|
|
/* */
|
|
/* Define */
|
|
/* */
|
|
/**********************************************************************/
|
|
|
|
/* for Unicode FAKEIME */
|
|
#ifdef FAKEIMEM
|
|
typedef LPWSTR LPMYSTR;
|
|
typedef WCHAR MYCHAR;
|
|
#define MYTEXT(x) L ## x
|
|
#define Mylstrlen(x) lstrlenW(x)
|
|
#define Mylstrcpy(x, y) MylstrcpyW((x), (y))
|
|
#define Mylstrcmp(x, y) MylstrcmpW((x), (y))
|
|
#define MyCharPrev(x, y) MyCharPrevW((x), (y))
|
|
#define MyCharNext(x) MyCharNextW(x)
|
|
#include <string.h>
|
|
#define Mystrtok wcstok
|
|
#define Mylstrcpyn MylstrcpynW
|
|
#define Mystrchr wcschr
|
|
#define MyTextOut TextOutW
|
|
#define MyGetTextExtentPoint GetTextExtentPointW
|
|
#define LPMYIMEMENUITEMINFO LPIMEMENUITEMINFOW
|
|
#define MyImmRequestMessage ImmRequestMessageW
|
|
#define MyOutputDebugString MyOutputDebugStringW
|
|
#define MyFileName "fakeimem.ime"
|
|
#else
|
|
typedef LPTSTR LPMYSTR;
|
|
typedef TCHAR MYCHAR;
|
|
#define MYTEXT(x) TEXT(x)
|
|
#define Mylstrlen(x) lstrlen(x)
|
|
#ifdef UNICODE
|
|
#define Mylstrcpy(x, y) MylstrcpyW((x), (y))
|
|
#define Mylstrcmp(x, y) MylstrcmpW((x), (y))
|
|
#define MyCharPrev(x, y) MyCharPrevW((x), (y))
|
|
#define MyCharPrev(x, y) MyCharPrevW((x), (y))
|
|
#define MyCharNext(x) MyCharNextW(x)
|
|
#include <string.h>
|
|
#define Mystrtok wcstok
|
|
#define Mystrchr wcschr
|
|
#else
|
|
#define Mylstrcpy(x, y) lstrcpy((x), (y))
|
|
#define Mylstrcmp(x, y) lstrcmp((x), (y))
|
|
#define MyCharPrev(x, y) AnsiPrev((x), (y))
|
|
#define MyCharNext(x) AnsiNext(x)
|
|
#include <mbstring.h>
|
|
#define Mystrtok _mbstrtok
|
|
#define Mystrchr _mbschr
|
|
#endif
|
|
#define Mylstrcpyn lstrcpyn
|
|
#define MyTextOut TextOut
|
|
#define MyGetTextExtentPoint GetTextExtentPoint
|
|
#define LPMYIMEMENUITEMINFO LPIMEMENUITEMINFO
|
|
#define MyImmRequestMessage ImmRequestMessage
|
|
#define MyOutputDebugString OutputDebugString
|
|
#ifdef UNICODE
|
|
#define MyFileName TEXT("fakeimeu.ime")
|
|
#else
|
|
#define MyFileName TEXT("fakeime.ime")
|
|
#endif
|
|
#endif
|
|
|
|
/* for limit of FAKEIME */
|
|
#define MAXCOMPWND 10
|
|
#define MAXCOMPSIZE 128
|
|
#define MAXCLAUSESIZE 16
|
|
#define MAXCANDPAGESIZE 9
|
|
#define MAXCANDSTRSIZE 16
|
|
#define MAXGLCHAR 32
|
|
#define MAXCANDSTRNUM 32
|
|
|
|
|
|
/* for GlobalAlloc */
|
|
#define GHIME (GHND | GMEM_SHARE)
|
|
|
|
/* special messages */
|
|
#define WM_UI_UPDATE (WM_USER+500)
|
|
#define WM_UI_HIDE (WM_USER+501)
|
|
|
|
#define WM_UI_STATEMOVE (WM_USER+601)
|
|
#define WM_UI_DEFCOMPMOVE (WM_USER+602)
|
|
#define WM_UI_CANDMOVE (WM_USER+603)
|
|
#define WM_UI_GUIDEMOVE (WM_USER+604)
|
|
|
|
/* Escape Functions */
|
|
#define IME_ESC_PRI_GETDWORDTEST (IME_ESC_PRIVATE_FIRST + 0)
|
|
|
|
/* special style */
|
|
#define WS_COMPDEFAULT (WS_DISABLED | WS_POPUP)
|
|
#define WS_COMPNODEFAULT (WS_DISABLED | WS_POPUP)
|
|
|
|
/* macro for me! */
|
|
#define IsCTLPushed(x) ((x)[VK_CONTROL] & 0x80)
|
|
#define IsSHFTPushed(x) ((x)[VK_SHIFT] & 0x80)
|
|
#define IsALTPushed(x) ((x)[VK_ALT] & 0x80)
|
|
|
|
/* update context */
|
|
#define UPDATE_MODE 0x01
|
|
#define UPDATE_SYSTEM 0x02
|
|
#define UPDATE_TEXT 0x04
|
|
#define UPDATE_FORCE 0x08
|
|
#define UPDATE_ALL ( UPDATE_MODE | UPDATE_SYSTEM | UPDATE_TEXT )
|
|
|
|
/* advise context */
|
|
#define ADVISE_MODE 0x0001 /* advise about Mode requested */
|
|
#define ADVISE_ISOPEN 0x0002 /* advise about IsOpen requested */
|
|
|
|
/* key state context */
|
|
#define KS_SHIFT 0x01
|
|
#define KS_CONTROL 0x02
|
|
|
|
|
|
|
|
/* ID of guideline table */
|
|
#define MYGL_NODICTIONARY 0
|
|
#define MYGL_TYPINGERROR 1
|
|
#define MYGL_TESTGUIDELINE 2
|
|
|
|
/* Change Mode index */
|
|
#define TO_CMODE_ALPHANUMERIC 0x0001
|
|
#define TO_CMODE_KATAKANA 0x0002
|
|
#define TO_CMODE_HIRAGANA 0x0003
|
|
#define TO_CMODE_FULLSHAPE 0x0008
|
|
#define TO_CMODE_ROMAN 0x0010
|
|
#define TO_CMODE_CHARCODE 0x0020
|
|
#define TO_CMODE_TOOLBAR 0x0100
|
|
|
|
/* WndExtra of child UI windows */
|
|
#define FIGWL_MOUSE 0
|
|
#define FIGWL_SVRWND (FIGWL_MOUSE+sizeof(LONG))
|
|
#define FIGWL_FONT (FIGWL_SVRWND+sizeof(LONG_PTR))
|
|
#define FIGWL_COMPSTARTSTR (FIGWL_FONT+sizeof(LONG_PTR))
|
|
#define FIGWL_COMPSTARTNUM (FIGWL_COMPSTARTSTR+sizeof(LONG))
|
|
#define FIGWL_STATUSBMP (FIGWL_COMPSTARTNUM+sizeof(LONG))
|
|
#define FIGWL_CLOSEBMP (FIGWL_STATUSBMP+sizeof(LONG_PTR))
|
|
#define FIGWL_PUSHSTATUS (FIGWL_CLOSEBMP+sizeof(LONG_PTR))
|
|
#define FIGWL_CHILDWND (FIGWL_PUSHSTATUS+sizeof(LONG))
|
|
#define UIEXTRASIZE (FIGWL_CHILDWND+sizeof(LONG_PTR))
|
|
|
|
/* The flags of FIGWL_MOUSE */
|
|
#define FIM_CAPUTURED 0x01
|
|
#define FIM_MOVED 0x02
|
|
|
|
/* The flags of the button of Status Window */
|
|
#define PUSHED_STATUS_HDR 0x01
|
|
#define PUSHED_STATUS_MODE 0x02
|
|
#define PUSHED_STATUS_ROMAN 0x04
|
|
#define PUSHED_STATUS_CLOSE 0x08
|
|
|
|
/* Status Button Pos */
|
|
#define BTX 20
|
|
#define BTY 20
|
|
#define BTFHIRA 20
|
|
#define BTFKATA 40
|
|
#define BTFALPH 60
|
|
#define BTHKATA 80
|
|
#define BTHALPH 100
|
|
#define BTROMA 120
|
|
#define BTEMPT 140
|
|
|
|
/* Statue Close Button */
|
|
#define STCLBT_X (BTX*2+3)
|
|
#define STCLBT_Y 1
|
|
#define STCLBT_DX 12
|
|
#define STCLBT_DY 12
|
|
|
|
/* define Shift Arrow right-left */
|
|
#define ARR_RIGHT 1
|
|
#define ARR_LEFT 2
|
|
|
|
/* Init or Clear Structure Flag */
|
|
#define CLR_RESULT 1
|
|
#define CLR_UNDET 2
|
|
#define CLR_RESULT_AND_UNDET 3
|
|
|
|
|
|
/* define GET LP for COMPOSITIONSTRING members. */
|
|
#define GETLPCOMPREADATTR(lpcs) (LPBYTE)((LPBYTE)(lpcs) + (lpcs)->dwCompReadAttrOffset)
|
|
#define GETLPCOMPREADCLAUSE(lpcs) (LPDWORD)((LPBYTE)(lpcs) + (lpcs)->dwCompReadClauseOffset)
|
|
#define GETLPCOMPREADSTR(lpcs) (LPMYSTR)((LPBYTE)(lpcs) + (lpcs)->dwCompReadStrOffset)
|
|
#define GETLPCOMPATTR(lpcs) (LPBYTE)((LPBYTE)(lpcs) + (lpcs)->dwCompAttrOffset)
|
|
#define GETLPCOMPCLAUSE(lpcs) (LPDWORD)((LPBYTE)(lpcs) + (lpcs)->dwCompClauseOffset)
|
|
#define GETLPCOMPSTR(lpcs) (LPMYSTR)((LPBYTE)(lpcs) + (lpcs)->dwCompStrOffset)
|
|
#define GETLPRESULTREADCLAUSE(lpcs) (LPDWORD)((LPBYTE)(lpcs) + (lpcs)->dwResultReadClauseOffset)
|
|
#define GETLPRESULTREADSTR(lpcs) (LPMYSTR)((LPBYTE)(lpcs) + (lpcs)->dwResultReadStrOffset)
|
|
#define GETLPRESULTCLAUSE(lpcs) (LPDWORD)((LPBYTE)(lpcs) + (lpcs)->dwResultClauseOffset)
|
|
#define GETLPRESULTSTR(lpcs) (LPMYSTR)((LPBYTE)(lpcs) + (lpcs)->dwResultStrOffset)
|
|
|
|
|
|
#define SetClause(lpdw,num) {*((LPDWORD)(lpdw)) = 0;*((LPDWORD)(lpdw)+1) = num;}
|
|
|
|
#define GCS_COMPALL ( GCS_COMPSTR | GCS_COMPATTR | GCS_COMPREADSTR | GCS_COMPREADATTR | GCS_COMPCLAUSE | GCS_COMPREADCLAUSE)
|
|
#define GCS_RESULTALL ( GCS_RESULTSTR | GCS_RESULTREADSTR | GCS_RESULTCLAUSE | GCS_RESULTREADCLAUSE)
|
|
|
|
|
|
// ImeMenu Define
|
|
#define NUM_ROOT_MENU_L 3
|
|
#define NUM_ROOT_MENU_R 3
|
|
#define NUM_SUB_MENU_L 2
|
|
#define NUM_SUB_MENU_R 2
|
|
|
|
#define IDIM_ROOT_ML_1 0x10
|
|
#define IDIM_ROOT_ML_2 0x11
|
|
#define IDIM_ROOT_ML_3 0x12
|
|
#define IDIM_SUB_ML_1 0x20
|
|
#define IDIM_SUB_ML_2 0x21
|
|
#define IDIM_ROOT_MR_1 0x30
|
|
#define IDIM_ROOT_MR_2 0x31
|
|
#define IDIM_ROOT_MR_3 0x32
|
|
#define IDIM_SUB_MR_1 0x40
|
|
#define IDIM_SUB_MR_2 0x41
|
|
|
|
#define NATIVE_CHARSET SHIFTJIS_CHARSET
|
|
|
|
/**********************************************************************/
|
|
/* */
|
|
/* Structures */
|
|
/* */
|
|
/**********************************************************************/
|
|
typedef struct _tagMYCOMPSTR{
|
|
COMPOSITIONSTRING cs;
|
|
MYCHAR szCompReadStr[MAXCOMPSIZE];
|
|
BYTE bCompReadAttr[MAXCOMPSIZE];
|
|
DWORD dwCompReadClause[MAXCLAUSESIZE];
|
|
MYCHAR szCompStr[MAXCOMPSIZE];
|
|
BYTE bCompAttr[MAXCOMPSIZE];
|
|
DWORD dwCompClause[MAXCLAUSESIZE];
|
|
char szTypeInfo[MAXCOMPSIZE];
|
|
MYCHAR szResultReadStr[MAXCOMPSIZE];
|
|
DWORD dwResultReadClause[MAXCOMPSIZE];
|
|
MYCHAR szResultStr[MAXCOMPSIZE];
|
|
DWORD dwResultClause[MAXCOMPSIZE];
|
|
} MYCOMPSTR, NEAR *PMYCOMPSTR, FAR *LPMYCOMPSTR;
|
|
|
|
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;
|
|
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;
|
|
|
|
/**********************************************************************/
|
|
/* */
|
|
/* Externs */
|
|
/* */
|
|
/**********************************************************************/
|
|
#ifndef _NO_EXTERN_
|
|
extern HINSTANCE hInst;
|
|
extern HKL hMyKL;
|
|
extern LPTRANSMSGLIST lpCurTransKey;
|
|
extern UINT uNumTransKey;
|
|
extern BOOL fOverTransKey;
|
|
#ifdef FAKEIMEM
|
|
extern WCHAR wszUIClassName[];
|
|
#endif
|
|
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[];
|
|
extern DWORD dwLogFlag;
|
|
extern DWORD dwDebugFlag;
|
|
#endif //_NO_EXTERN_
|
|
|
|
/**********************************************************************/
|
|
/* */
|
|
/* Functions */
|
|
/* */
|
|
/**********************************************************************/
|
|
/* fakeime.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);
|
|
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);
|
|
#if defined(FAKEIMEM) || defined(UNICODE)
|
|
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);
|
|
#endif
|
|
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 FAKEIMEWndProc(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);
|
|
|
|
/* 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 RegWordDlgProc(HWND hDlg, UINT message , WPARAM wParam, LPARAM lParam);
|
|
INT_PTR CALLBACK SelectDictionaryDlgProc(HWND hDlg, UINT message , WPARAM wParam, LPARAM lParam);
|
|
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);
|
|
|
|
/* 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);
|
|
BOOL PASCAL ConvKanji(HIMC);
|
|
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);
|
|
|
|
/* DIC2.C */
|
|
#if defined(FAKEIMEM) || defined(UNICODE)
|
|
BOOL OneCharZenToHan(WCHAR ,WCHAR* ,WCHAR* );
|
|
WORD PASCAL HanToZen(WORD,WORD,DWORD);
|
|
#else
|
|
WORD PASCAL HanToZen(WORD,DWORD);
|
|
#endif
|
|
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);
|
|
|
|
/* FDEBUG.C */
|
|
#ifdef DEBUG
|
|
#define MyDebugPrint(x) DebugPrint x
|
|
int DebugPrint(LPCTSTR lpszFormat, ...);
|
|
void SetDwordToSetting(LPCTSTR lpszFlag, DWORD dwFlag);
|
|
void PASCAL SetGlobalFlags();
|
|
void PASCAL ImeLog(DWORD dwFlag, LPTSTR lpStr);
|
|
#ifdef FAKEIMEM
|
|
void PASCAL MyOutputDebugStringW(LPWSTR lpw);
|
|
#endif
|
|
#else
|
|
#define MyDebugPrint(x)
|
|
#define SetDwordToSetting() FALSE
|
|
//#define SetDwordToSetting(lpszFlag, dwFlag) FALSE
|
|
#define SetGlobalFlags() FALSE
|
|
//#define ImeLog() FALSE
|
|
#define ImeLog(dwFlag, lpStr) FALSE
|
|
#ifdef FAKEIMEM
|
|
#define MyOutputDebugStringW() FALSE
|
|
//#define MyOutputDebugStringW(lpw) FALSE
|
|
#endif
|
|
#endif
|