/****************************************************************************** * * File Name: wansung.h * * - Global Header file for IME of Chicago-H. * * Author: Beomseok Oh (BeomOh) * * Copyright (C) Microsoft Corp 1993-1994. All rights reserved. * ******************************************************************************/ #ifndef _INC_WANSUNG #define _INC_WANSUNG // #defined if WANSUNG.H has been included. #ifdef __cplusplus extern "C" { // Assume C declarations for C++. #endif // __cplusplus #include #include #include #include #include #define MDB_LOG 0x0000 #define MDB_ERROR 0x0001 #define MDB_SUPPRESS 0x8000 #define MDB_FUNCLOG (MDB_SUPPRESS | MDB_LOG) #ifdef DEBUG void _cdecl _MyDebugOut(UINT, LPCSTR, ...); #define MyDebugOut _MyDebugOut #define FUNCTIONLOG(sz) MyDebugOut(MDB_FUNCLOG, sz"().") #define TRAP(cond) { if (cond) _asm int 3 } #else #define MyDebugOut 1 ? (void)0 : (void) #define FUNCTIONLOG(sz) #define TRAP(cond) #endif // DEBUG #define HANDLE_DUMMYMSG(message) case (message): return 0 #define CFILL 1 // Fill code for Consonant #define VFILL 2 // Fill code for Vowel enum { NUL, CHO, JUNG, JONG }; // Type of States. // Constant definitions #define HANGEUL_LPARAM 0xFFF10001L #define HANJA_LPARAM 0xFFF20001L #define VKBACK_LPARAM 0x000E0001L // For Dialog Box #define IDD_2BEOL 100 #define IDD_3BEOL1 101 #define IDD_3BEOL2 102 #define IDD_COMPDEL 103 #define IDD_UHCCHAR 104 // For Track Popup Menu #define IDM_ABOUT 200 #define IDM_CONFIG 201 #define IDS_ABOUT 202 #define IDS_CONFIG 203 // For Property Sheet #define IDS_PROGRAM 300 #define DLG_GENERAL 301 // For User Interface #define COMP_WINDOW 0 #define STATE_WINDOW 1 #define CAND_WINDOW 2 #define STATEXSIZE 67 #define STATEYSIZE 23 #define COMPSIZE 22 #define CANDXSIZE 320 #define CANDYSIZE 30 #define GAPX 10 #define GAPY 0 // Data structure definitions typedef struct tagUIINSTANCE { HWND rghWnd[3]; } UIINSTANCE; typedef UIINSTANCE NEAR *PUIINSTANCE; typedef UIINSTANCE FAR *LPUIINSTANCE; typedef struct tagJOHABCODE // For components of Johab code { WORD jong :5; WORD jung :5; WORD cho :5; WORD flag :1; } JOHABCODE; typedef struct tagHIGH_LOW // For high byte and low byte { BYTE low, high; } HIGH_LOW; typedef union tagJOHAB // For Johab character code { JOHABCODE h; WORD w; } JOHAB; typedef union tagWANSUNG // For Wansung character code { HIGH_LOW e; WORD w; } WANSUNG; typedef struct tagIMESTRUCT32 { WORD fnc; // function code WORD wParam; // word parameter WORD wCount; // word counter WORD dchSource; // offset to Source from top of memory object WORD dchDest; // offset to Desrination from top of memory object DWORD lParam1; DWORD lParam2; DWORD lParam3; } IMESTRUCT32; typedef IMESTRUCT32 *PIMESTRUCT32; typedef IMESTRUCT32 NEAR *NPIMESTRUCT32; typedef IMESTRUCT32 FAR *LPIMESTRUCT32; #define lpSource(lpks) (LPTSTR)((LPSTR)(lpks)+(lpks)->dchSource) #define lpDest(lpks) (LPTSTR)((LPSTR)(lpks)+(lpks)->dchDest) // ESCAPE.C int EscAutomata(HIMC, LPIMESTRUCT32, BOOL); int EscGetOpen(HIMC, LPIMESTRUCT32); int EscHanjaMode(HIMC, LPIMESTRUCT32, BOOL); int EscSetOpen(HIMC, LPIMESTRUCT32); int EscMoveIMEWindow(HIMC, LPIMESTRUCT32); // HATMT.C BOOL HangeulAutomata(BYTE, LPDWORD, LPCOMPOSITIONSTRING); BOOL MakeInterim(LPCOMPOSITIONSTRING); void MakeFinal(BOOL, LPDWORD, BOOL, LPCOMPOSITIONSTRING); void MakeFinalMsgBuf(HIMC, WPARAM); void Banja2Junja(BYTE, LPDWORD, LPCOMPOSITIONSTRING); BOOL CheckMCho(BYTE); BOOL CheckMJung(BYTE); BOOL CheckMJong(BYTE); #ifndef JOHAB_IME WORD Johab2Wansung(WORD); WORD Wansung2Johab(WORD); #endif #ifdef XWANSUNG_IME //PTHREADINFO PtiCurrent(VOID); BOOL IsPossibleToUseUHC(); BOOL UseXWansung(void); #endif void Code2Automata(void); void UpdateOpenCloseState(HIMC); int SearchHanjaIndex(WORD); // HKEYTBL.C extern JOHAB JohabChar; extern WANSUNG WansungChar; extern UINT uCurrentInputMethod; extern BOOL fCurrentCompDel; extern BOOL fComplete; #ifdef XWANSUNG_IME extern BOOL fCurrentUseXW; #endif extern BYTE bState; extern BYTE Cho1, Cho2, mCho; extern BYTE Jung1, Jung2, mJung; extern BYTE Jong1, Jong2, mJong; extern const TCHAR szIMEKey[]; #ifdef XWANSUNG_IME extern const TCHAR szUseXW[]; #endif extern const TCHAR szInputMethod[]; extern const TCHAR szCompDel[]; extern const TCHAR szStatePos[]; extern const TCHAR szCandPos[]; extern const BYTE Cho2Jong[21]; extern const BYTE Jong2Cho[30]; extern const BYTE rgbMChoTbl[][3]; extern const BYTE rgbMJungTbl[][3]; extern const BYTE rgbMJongTbl[][3]; extern const BYTE bHTable[3][256][4]; #ifndef JOHAB_IME extern const WORD wKSCompCode[51]; extern const WORD wKSCompCode2[30]; #ifdef XWANSUNG_IME extern const WORD iTailFirst[]; extern const WORD iTailFirstX[]; extern const BYTE iLeadMap[]; extern const BYTE iLeadMapX[]; extern const BYTE iTailOff[]; extern const BYTE iTailOffX[]; extern const BYTE bTailTable[]; #else extern const WORD wKSCharCode[2350]; #endif #endif extern const WORD wHanjaMap[491]; extern const WORD wHanjaIndex[492]; extern const WORD wHanja[]; // IMEUI.C extern const TCHAR szUIClassName[], szStateWndName[], szCompWndName[], szCandWndName[]; extern HBITMAP hBMClient, hBMComp, hBMCand, hBMCandNum, hBMCandArr[2]; extern HBITMAP hBMEng, hBMHan, hBMBan, hBMJun, hBMChi[2]; extern HCURSOR hIMECursor; extern HFONT hFontFix; extern RECT rcScreen; extern POINT ptDefPos[3]; extern POINT ptState; extern POINT ptComp; extern POINT ptCand; BOOL InitializeResource(HANDLE); BOOL RegisterUIClass(HANDLE); BOOL UnregisterUIClass(HANDLE); void DrawBitmap(HDC, long, long, HBITMAP); void ShowWindowBorder(RECT); void ShowHideUIWnd(HIMC, LPUIINSTANCE, BOOL, LPARAM); LRESULT CALLBACK UIWndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK StateWndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK CompWndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK CandWndProc(HWND, UINT, WPARAM, LPARAM); LRESULT DoIMEControl(HWND, WPARAM, LPARAM); LRESULT DoIMENotify(HWND, WPARAM, LPARAM); BOOL State_OnSetCursor(HWND, HWND, UINT, UINT); void State_OnMouseMove(HWND, int, int, UINT); void State_OnLButtonDown(HWND, BOOL, int, int, UINT); void State_OnLButtonUp(HWND, int, int, UINT); void State_OnRButtonDown(HWND, BOOL, int, int, UINT); void State_OnRButtonUp(HWND, int, int, UINT); HBITMAP MyCreateMappedBitmap(HINSTANCE, LPTSTR); void GetSysColorsAndMappedBitmap(void); void State_OnPaint(HWND); void State_OnCommand(HWND, int, HWND, UINT); void State_OnMyMenu(HWND); void State_OnMyConfig(HWND); void State_OnMyAbout(HWND); BOOL Comp_OnSetCursor(HWND, HWND, UINT, UINT); void Comp_OnMouseMove(HWND, int, int, UINT); void Comp_OnLButtonDown(HWND, BOOL, int, int, UINT); void Comp_OnLButtonUp(HWND, int, int, UINT); void Comp_OnRButtonDown(HWND, BOOL, int, int, UINT); void Comp_OnRButtonUp(HWND, int, int, UINT); void Comp_OnPaint(HWND); BOOL Cand_OnSetCursor(HWND, HWND, UINT, UINT); void Cand_OnMouseMove(HWND, int, int, UINT); void Cand_OnLButtonDown(HWND, BOOL, int, int, UINT); void Cand_OnLButtonUp(HWND, int, int, UINT); void Cand_OnRButtonDown(HWND, BOOL, int, int, UINT); void Cand_OnRButtonUp(HWND, int, int, UINT); void Cand_OnPaint(HWND); // MAIN.C extern HINSTANCE hInst; extern int iTotalNumMsg; BOOL GenerateCandidateList(HIMC); void AddPage(LPPROPSHEETHEADER, UINT, DLGPROC); BOOL CALLBACK GeneralDlgProc(HWND, UINT, WPARAM, LPARAM); #ifdef __cplusplus } // End of extern "C" {. #endif // __cplusplus #endif // _INC_WANSUNG