.pragma list(push, 0)

ifndef __LIBC_INC
include libc.inc
endif
ifndef _WINDEF_
include windef.inc
endif

ifndef _IMM_
define _IMM_

if (WINVER GE 0x40A)
HIMC		typedef HANDLE
HIMCC		typedef HANDLE
else
HIMC		typedef DWORD
HIMCC		typedef DWORD
endif

LPHKL		typedef ptr HKL
LPUINT		typedef ptr UINT


COMPOSITIONFORM		STRUC
dwStyle			dd ?
ptCurrentPos		POINT <>
rcArea			RECT <>
COMPOSITIONFORM		ENDS
PCOMPOSITIONFORM	typedef ptr COMPOSITIONFORM
NPCOMPOSITIONFORM	typedef ptr COMPOSITIONFORM
LPCOMPOSITIONFORM	typedef ptr COMPOSITIONFORM


CANDIDATEFORM		STRUC
dwIndex			dd ?
dwStyle			dd ?
ptCurrentPos		POINT <>
rcArea			RECT <>
CANDIDATEFORM		ENDS
PCANDIDATEFORM		typedef ptr CANDIDATEFORM
NPCANDIDATEFORM		typedef ptr CANDIDATEFORM
LPCANDIDATEFORM		typedef ptr CANDIDATEFORM


CANDIDATELIST		STRUC
dwSize			dd ?
dwStyle			dd ?
dwCount			dd ?
dwSelection		dd ?
dwPageStart		dd ?
dwPageSize		dd ?
dwOffset		dd ?
CANDIDATELIST		ENDS
PCANDIDATELIST		typedef ptr CANDIDATELIST
NPCANDIDATELIST		typedef ptr CANDIDATELIST
LPCANDIDATELIST		typedef ptr CANDIDATELIST

REGISTERWORDA		STRUC
lpReading		LPSTR ?
lpWord			LPSTR ?
REGISTERWORDA		ENDS
PREGISTERWORDA		typedef ptr REGISTERWORDA
NPREGISTERWORDA		typedef ptr REGISTERWORDA
LPREGISTERWORDA		typedef ptr REGISTERWORDA
REGISTERWORDW		STRUC
lpReading		LPWSTR ?
lpWord			LPWSTR ?
REGISTERWORDW		ENDS
PREGISTERWORDW		typedef ptr REGISTERWORDW
NPREGISTERWORDW		typedef ptr REGISTERWORDW
LPREGISTERWORDW		typedef ptr REGISTERWORDW
ifdef _UNICODE
REGISTERWORD		typedef REGISTERWORDW
PREGISTERWORD		typedef PREGISTERWORDW
NPREGISTERWORD		typedef NPREGISTERWORDW
LPREGISTERWORD		typedef LPREGISTERWORDW
else
REGISTERWORD		typedef REGISTERWORDA
PREGISTERWORD		typedef PREGISTERWORDA
NPREGISTERWORD		typedef NPREGISTERWORDA
LPREGISTERWORD		typedef LPREGISTERWORDA
endif


if(WINVER GE 0x040A)
RECONVERTSTRING		STRUC
dwSize			dd ?
dwVersion		dd ?
dwStrLen		dd ?
dwStrOffset		dd ?
dwCompStrLen		dd ?
dwCompStrOffset		dd ?
dwTargetStrLen		dd ?
dwTargetStrOffset	dd ?
RECONVERTSTRING		ENDS
PRECONVERTSTRING	typedef ptr RECONVERTSTRING
NPRECONVERTSTRING	typedef ptr RECONVERTSTRING
LPRECONVERTSTRING	typedef ptr RECONVERTSTRING
endif

define STYLE_DESCRIPTION_SIZE 32

STYLEBUFA		STRUC
dwStyle			dd ?
szDescription		db STYLE_DESCRIPTION_SIZE dup(?)
STYLEBUFA		ENDS
PSTYLEBUFA		typedef ptr STYLEBUFA
NPSTYLEBUFA		typedef ptr STYLEBUFA
LPSTYLEBUFA		typedef ptr STYLEBUFA
STYLEBUFW		STRUC
dwStyle			dd ?
szDescription		dw STYLE_DESCRIPTION_SIZE dup(?)
STYLEBUFW		ENDS
PSTYLEBUFW		typedef ptr STYLEBUFW
NPSTYLEBUFW		typedef ptr STYLEBUFW
LPSTYLEBUFW		typedef ptr STYLEBUFW
ifdef _UNICODE
STYLEBUF		typedef STYLEBUFW
PSTYLEBUF		typedef PSTYLEBUFW
NPSTYLEBUF		typedef NPSTYLEBUFW
LPSTYLEBUF		typedef LPSTYLEBUFW
else
STYLEBUF		typedef STYLEBUFA
PSTYLEBUF		typedef PSTYLEBUFA
NPSTYLEBUF		typedef NPSTYLEBUFA
LPSTYLEBUF		typedef LPSTYLEBUFA
endif


if(WINVER GE 0x040A)

define IMEMENUITEM_STRING_SIZE 80

IMEMENUITEMINFOA	STRUC
cbSize			UINT ?
fType			UINT ?
fState			UINT ?
wID			UINT ?
hbmpChecked		HBITMAP ?
hbmpUnchecked		HBITMAP ?
dwItemData		dd ?
szString		db IMEMENUITEM_STRING_SIZE dup(?)
hbmpItem		HBITMAP ?
IMEMENUITEMINFOA	ENDS
PIMEMENUITEMINFOA	typedef ptr IMEMENUITEMINFOA
NPIMEMENUITEMINFOA	typedef ptr IMEMENUITEMINFOA
LPIMEMENUITEMINFOA	typedef ptr IMEMENUITEMINFOA
IMEMENUITEMINFOW	STRUC
cbSize			UINT ?
fType			UINT ?
fState			UINT ?
wID			UINT ?
hbmpChecked		HBITMAP ?
hbmpUnchecked		HBITMAP ?
dwItemData		dd ?
szString		dw IMEMENUITEM_STRING_SIZE dup(?)
hbmpItem		HBITMAP ?
IMEMENUITEMINFOW	ENDS
PIMEMENUITEMINFOW	typedef ptr IMEMENUITEMINFOW
NPIMEMENUITEMINFOW	typedef ptr IMEMENUITEMINFOW
LPIMEMENUITEMINFOW	typedef ptr IMEMENUITEMINFOW
ifdef _UNICODE
IMEMENUITEMINFO		typedef IMEMENUITEMINFOW
PIMEMENUITEMINFO	typedef PIMEMENUITEMINFOW
NPIMEMENUITEMINFO	typedef NPIMEMENUITEMINFOW
LPIMEMENUITEMINFO	typedef LPIMEMENUITEMINFOW
else
IMEMENUITEMINFO		typedef IMEMENUITEMINFOA
PIMEMENUITEMINFO	typedef PIMEMENUITEMINFOA
NPIMEMENUITEMINFO	typedef NPIMEMENUITEMINFOA
LPIMEMENUITEMINFO	typedef LPIMEMENUITEMINFOA
endif
endif


ImmInstallIMEA proto WINAPI :LPCSTR, :LPCSTR
ImmInstallIMEW proto WINAPI :LPCWSTR, :LPCWSTR
ifdef _UNICODE
define ImmInstallIME <ImmInstallIMEW>
else
define ImmInstallIME <ImmInstallIMEA>
endif

ImmGetDefaultIMEWnd proto WINAPI :HWND
ImmGetDescriptionA proto WINAPI :HKL, :LPSTR, :UINT
ImmGetDescriptionW proto WINAPI :HKL, :LPWSTR, :UINT
ifdef _UNICODE
define ImmGetDescription <ImmGetDescriptionW>
else
define ImmGetDescription <ImmGetDescriptionA>
endif

ImmGetIMEFileNameA proto WINAPI :HKL, :LPSTR, :UINT
ImmGetIMEFileNameW proto WINAPI :HKL, :LPWSTR, :UINT
ifdef _UNICODE
define ImmGetIMEFileName <ImmGetIMEFileNameW>
else
define ImmGetIMEFileName <ImmGetIMEFileNameA>
endif

ImmGetProperty proto WINAPI :HKL, :DWORD
ImmIsIME proto WINAPI :HKL
ImmSimulateHotKey proto WINAPI :HWND, :DWORD
ImmCreateContext proto WINAPI
ImmDestroyContext proto WINAPI :HIMC
ImmGetContext proto WINAPI :HWND
ImmReleaseContext proto WINAPI :HWND, :HIMC
ImmAssociateContext proto WINAPI :HWND, :HIMC
if(WINVER GE 0x040A)
ImmAssociateContextEx proto WINAPI :HWND, :HIMC, :DWORD
endif
ImmGetCompositionStringA proto WINAPI :HIMC, :DWORD, :ptr, :DWORD
ImmGetCompositionStringW proto WINAPI :HIMC, :DWORD, :ptr, :DWORD
ifdef _UNICODE
define ImmGetCompositionString <ImmGetCompositionStringW>
else
define ImmGetCompositionString <ImmGetCompositionStringA>
endif

ImmSetCompositionStringA proto WINAPI :HIMC, :DWORD, :ptr, :DWORD, :ptr, :DWORD
ImmSetCompositionStringW proto WINAPI :HIMC, :DWORD, :ptr, :DWORD, :ptr, :DWORD
ifdef _UNICODE
define ImmSetCompositionString <ImmSetCompositionStringW>
else
define ImmSetCompositionString <ImmSetCompositionStringA>
endif

ImmGetCandidateListCountA proto WINAPI :HIMC, :LPDWORD
ImmGetCandidateListCountW proto WINAPI :HIMC, :LPDWORD
ifdef _UNICODE
define ImmGetCandidateListCount <ImmGetCandidateistCountW>
else
define ImmGetCandidateListCount <ImmGetCandidateistCountA>
endif

ImmGetCandidateListA proto WINAPI :HIMC, :DWORD, :LPCANDIDATELIST, :DWORD
ImmGetCandidateListW proto WINAPI :HIMC, :DWORD, :LPCANDIDATELIST, :DWORD
ifdef _UNICODE
define ImmGetCandidateList <ImmGetCandidateistW>
else
define ImmGetCandidateList <ImmGetCandidateistA>
endif

ImmGetGuideLineA proto WINAPI :HIMC, :DWORD, :LPSTR, :DWORD
ImmGetGuideLineW proto WINAPI :HIMC, :DWORD, :LPWSTR, :DWORD
ifdef _UNICODE
define ImmGetGuideLine <ImmGetGuideineW>
else
define ImmGetGuideLine <ImmGetGuideineA>
endif

ImmGetConversionStatus proto WINAPI :HIMC, :LPDWORD, :LPDWORD
ImmSetConversionStatus proto WINAPI :HIMC, :DWORD, :DWORD
ImmSetOpenStatus proto WINAPI :HIMC, :BOOL

ifdef _WINGDI_
ifndef NOGDI
ImmGetCompositionFontA proto WINAPI :HIMC, :LPLOGFONTA
ImmGetCompositionFontW proto WINAPI :HIMC, :LPLOGFONTW
ifdef _UNICODE
define ImmGetCompositionFont <ImmGetCompositionFontW>
else
define ImmGetCompositionFont <ImmGetCompositionFontA>
endif

ImmSetCompositionFontA proto WINAPI :HIMC, :LPLOGFONTA
ImmSetCompositionFontW proto WINAPI :HIMC, :LPLOGFONTW
ifdef _UNICODE
define ImmSetCompositionFont <ImmSetCompositionFontW>
else
define ImmSetCompositionFont <ImmSetCompositionFontA>
endif
endif
endif

ImmConfigureIMEA proto WINAPI :HKL, :HWND, :DWORD, :ptr
ImmConfigureIMEW proto WINAPI :HKL, :HWND, :DWORD, :ptr
ifdef _UNICODE
define ImmConfigureIME <ImmConfigureIMEW>
else
define ImmConfigureIME <ImmConfigureIMEA>
endif

ImmEscapeA proto WINAPI :HKL, :HIMC, :UINT, :ptr
ImmEscapeW proto WINAPI :HKL, :HIMC, :UINT, :ptr
ifdef _UNICODE
define ImmEscape <ImmEscapeW>
else
define ImmEscape <ImmEscapeA>
endif

ImmGetConversionListA proto WINAPI :HKL, :HIMC, :LPCSTR, :LPCANDIDATELIST, :DWORD, :UINT
ImmGetConversionListW proto WINAPI :HKL, :HIMC, :LPCWSTR,:LPCANDIDATELIST, :DWORD, :UINT
ifdef _UNICODE
define ImmGetConversionList <ImmGetConversionListW>
else
define ImmGetConversionList <ImmGetConversionListA>
endif

ImmNotifyIME proto WINAPI :HIMC, :DWORD, :DWORD, :DWORD
ImmGetStatusWindowPos proto WINAPI :HIMC, :LPPOINT
ImmSetStatusWindowPos proto WINAPI :HIMC, :LPPOINT
ImmGetCompositionWindow proto WINAPI :HIMC, :LPCOMPOSITIONFORM
ImmSetCompositionWindow proto WINAPI :HIMC, :LPCOMPOSITIONFORM
ImmGetCandidateWindow proto WINAPI :HIMC, :DWORD, :LPCANDIDATEFORM
ImmSetCandidateWindow proto WINAPI :HIMC, :LPCANDIDATEFORM

ImmIsUIMessageA proto WINAPI :HWND, :UINT, :WPARAM, :LPARAM
ImmIsUIMessageW proto WINAPI :HWND, :UINT, :WPARAM, :LPARAM
ifdef _UNICODE
define ImmIsUIMessage <ImmIsUIMessageW>
else
define ImmIsUIMessage <ImmIsUIMessageA>
endif

CALLBACK(REGISTERWORDENUMPROCA, :LPCSTR, :DWORD, :LPCSTR, :ptr)
CALLBACK(REGISTERWORDENUMPROCW, :LPCWSTR, :DWORD, :LPCWSTR, :ptr)
ifdef _UNICODE
define REGISTERWORDENUMPROC <REGISTERWORDENUMPROCW>
else
define REGISTERWORDENUMPROC <REGISTERWORDENUMPROCA>
endif

ImmRegisterWordA proto WINAPI :HKL, :LPCSTR, :DWORD, :LPCSTR
ImmRegisterWordW proto WINAPI :HKL, :LPCWSTR, :DWORD, :LPCWSTR
ifdef _UNICODE
define ImmRegisterWord <ImmRegisterWordW>
else
define ImmRegisterWord <ImmRegisterWordA>
endif

ImmUnregisterWordA proto WINAPI :HKL, :LPCSTR, :DWORD, :LPCSTR
ImmUnregisterWordW proto WINAPI :HKL, :LPCWSTR, :DWORD, :LPCWSTR
ifdef _UNICODE
define ImmUnregisterWord <ImmUnregisterWordW>
else
define ImmUnregisterWord <ImmUnregisterWordA>
endif

ImmGetRegisterWordStyleA proto WINAPI :HKL, :UINT, :LPSTYLEBUFA
ImmGetRegisterWordStyleW proto WINAPI :HKL, :UINT, :LPSTYLEBUFW
ifdef _UNICODE
define ImmGetRegisterWordStyle <ImmGetRegisterWordStyleW>
else
define ImmGetRegisterWordStyle <ImmGetRegisterWordStyleA>
endif

ImmEnumRegisterWordA proto WINAPI :HKL, :REGISTERWORDENUMPROCA, :LPCSTR, :DWORD, :LPCSTR, :ptr
ImmEnumRegisterWordW proto WINAPI :HKL, :REGISTERWORDENUMPROCW, :LPCWSTR, :DWORD, :LPCWSTR, :ptr
ifdef _UNICODE
define ImmEnumRegisterWord <ImmEnumRegisterWordW>
else
define ImmEnumRegisterWord <ImmEnumRegisterWordA>
endif

if(WINVER GE 0x040A)
ImmGetImeMenuItemsA proto WINAPI :HIMC, :DWORD, :DWORD, :LPIMEMENUITEMINFOA, :LPIMEMENUITEMINFOA, :DWORD
ImmGetImeMenuItemsW proto WINAPI :HIMC, :DWORD, :DWORD, :LPIMEMENUITEMINFOW, :LPIMEMENUITEMINFOW, :DWORD
ifdef _UNICODE
define ImmGetImeMenuItems <ImmGetImeMenuItemsW>
else
define ImmGetImeMenuItems <ImmGetImeMenuItemsA>
endif

endif

IMC_GETCANDIDATEPOS	equ 0x0007
IMC_SETCANDIDATEPOS	equ 0x0008
IMC_GETCOMPOSITIONFONT	equ 0x0009
IMC_SETCOMPOSITIONFONT	equ 0x000A
IMC_GETCOMPOSITIONWINDOW equ 0x000B
IMC_SETCOMPOSITIONWINDOW equ 0x000C
IMC_GETSTATUSWINDOWPOS	equ 0x000F
IMC_SETSTATUSWINDOWPOS	equ 0x0010
IMC_CLOSESTATUSWINDOW	equ 0x0021
IMC_OPENSTATUSWINDOW	equ 0x0022


NI_OPENCANDIDATE	equ 0x0010
NI_CLOSECANDIDATE	equ 0x0011
NI_SELECTCANDIDATESTR	equ 0x0012
NI_CHANGECANDIDATELIST	equ 0x0013
NI_FINALIZECONVERSIONRESULT equ 0x0014
NI_COMPOSITIONSTR	equ 0x0015
NI_SETCANDIDATE_PAGESTART equ 0x0016
NI_SETCANDIDATE_PAGESIZE equ 0x0017
NI_IMEMENUSELECTED	equ 0x0018

ISC_SHOWUICANDIDATEWINDOW equ 0x00000001
ISC_SHOWUICOMPOSITIONWINDOW equ 0x80000000
ISC_SHOWUIGUIDELINE	equ 0x40000000
ISC_SHOWUIALLCANDIDATEWINDOW equ 0x0000000F
ISC_SHOWUIALL		equ 0xC000000F


CPS_COMPLETE		equ 0x0001
CPS_CONVERT		equ 0x0002
CPS_REVERT		equ 0x0003
CPS_CANCEL		equ 0x0004


MOD_ALT			equ 0x0001
MOD_CONTROL		equ 0x0002
MOD_SHIFT		equ 0x0004

MOD_LEFT		equ 0x8000
MOD_RIGHT		equ 0x4000

MOD_ON_KEYUP		equ 0x0800
MOD_IGNORE_ALL_MODIFIER equ 0x0400


IME_CHOTKEY_IME_NONIME_TOGGLE equ 0x10
IME_CHOTKEY_SHAPE_TOGGLE equ 0x11
IME_CHOTKEY_SYMBOL_TOGGLE equ 0x12

IME_JHOTKEY_CLOSE_OPEN	equ 0x30

IME_KHOTKEY_SHAPE_TOGGLE equ 0x50
IME_KHOTKEY_HANJACONVERT equ 0x51
IME_KHOTKEY_ENGLISH	equ 0x52

IME_THOTKEY_IME_NONIME_TOGGLE equ 0x70
IME_THOTKEY_SHAPE_TOGGLE equ 0x71
IME_THOTKEY_SYMBOL_TOGGLE equ 0x72

IME_HOTKEY_DSWITCH_FIRST equ 0x100
IME_HOTKEY_DSWITCH_LAST equ 0x11F

IME_HOTKEY_PRIVATE_FIRST equ 0x200
IME_ITHOTKEY_RESEND_RESULTSTR equ 0x200
IME_ITHOTKEY_PREVIOUS_COMPOSITION equ 0x201
IME_ITHOTKEY_UISTYLE_TOGGLE equ 0x202
IME_ITHOTKEY_RECONVERTSTRING equ 0x203
IME_HOTKEY_PRIVATE_LAST equ 0x21F



GCS_COMPREADSTR		equ 0x0001
GCS_COMPREADATTR	equ 0x0002
GCS_COMPREADCLAUSE	equ 0x0004
GCS_COMPSTR		equ 0x0008
GCS_COMPATTR		equ 0x0010
GCS_COMPCLAUSE		equ 0x0020
GCS_CURSORPOS		equ 0x0080
GCS_DELTASTART		equ 0x0100
GCS_RESULTREADSTR	equ 0x0200
GCS_RESULTREADCLAUSE	equ 0x0400
GCS_RESULTSTR		equ 0x0800
GCS_RESULTCLAUSE	equ 0x1000

CS_INSERTCHAR		equ 0x2000
CS_NOMOVECARET		equ 0x4000


IMEVER_0310		equ 0x0003000A
IMEVER_0400		equ 0x00040000


IME_PROP_AT_CARET	equ 0x00010000
IME_PROP_SPECIAL_UI	equ 0x00020000
IME_PROP_CANDLIST_START_FROM_1 equ 0x00040000
IME_PROP_UNICODE	equ 0x00080000
IME_PROP_COMPLETE_ON_UNSELECT equ 0x00100000

UI_CAP_2700		equ 0x00000001
UI_CAP_ROT90		equ 0x00000002
UI_CAP_ROTANY		equ 0x00000004

SCS_CAP_COMPSTR		equ 0x00000001
SCS_CAP_MAKEREAD	equ 0x00000002
SCS_CAP_SETRECONVERTSTRING equ 0x00000004

SELECT_CAP_CONVERSION	equ 0x00000001
SELECT_CAP_SENTENCE	equ 0x00000002

GGL_LEVEL		equ 0x00000001
GGL_INDEX		equ 0x00000002
GGL_STRING		equ 0x00000003
GGL_PRIVATE		equ 0x00000004


GL_LEVEL_NOGUIDELINE	equ 0x00000000
GL_LEVEL_FATAL		equ 0x00000001
GL_LEVEL_ERROR		equ 0x00000002
GL_LEVEL_WARNING	equ 0x00000003
GL_LEVEL_INFORMATION	equ 0x00000004


GL_ID_UNKNOWN		equ 0x00000000
GL_ID_NOMODULE		equ 0x00000001
GL_ID_NODICTIONARY	equ 0x00000010
GL_ID_CANNOTSAVE	equ 0x00000011
GL_ID_NOCONVERT		equ 0x00000020
GL_ID_TYPINGERROR	equ 0x00000021
GL_ID_TOOMANYSTROKE	equ 0x00000022
GL_ID_READINGCONFLICT	equ 0x00000023
GL_ID_INPUTREADING	equ 0x00000024
GL_ID_INPUTRADICAL	equ 0x00000025
GL_ID_INPUTCODE		equ 0x00000026
GL_ID_INPUTSYMBOL	equ 0x00000027
GL_ID_CHOOSECANDIDATE	equ 0x00000028
GL_ID_REVERSECONVERSION equ 0x00000029
GL_ID_PRIVATE_FIRST	equ 0x00008000
GL_ID_PRIVATE_LAST	equ 0x0000FFFF


IGP_GETIMEVERSION	equ (-4)
IGP_PROPERTY		equ 0x00000004
IGP_CONVERSION		equ 0x00000008
IGP_SENTENCE		equ 0x0000000c
IGP_UI			equ 0x00000010
IGP_SETCOMPSTR		equ 0x00000014
IGP_SELECT		equ 0x00000018

SCS_SETSTR		equ (GCS_COMPREADSTR OR GCS_COMPSTR)
SCS_CHANGEATTR		equ (GCS_COMPREADATTR OR GCS_COMPATTR)
SCS_CHANGECLAUSE	equ (GCS_COMPREADCLAUSE OR GCS_COMPCAUSE)
SCS_SETRECONVERTSTRING	equ 0x00010000
SCS_QUERYRECONVERTSTRING equ 0x00020000


ATTR_INPUT		equ 0x00
ATTR_TARGET_CONVERTED	equ 0x01
ATTR_CONVERTED		equ 0x02
ATTR_TARGET_NOTCONVERTED equ 0x03
ATTR_INPUT_ERROR	equ 0x04
ATTR_FIXEDCONVERTED	equ 0x05


CFS_DEFAULT		equ 0x0000
CFS_RECT		equ 0x0001
CFS_POINT		equ 0x0002
CFS_FORCE_POSITION	equ 0x0020
CFS_CANDIDATEPOS	equ 0x0040
CFS_EXCLUDE		equ 0x0080


GCL_CONVERSION		equ 0x0001
GCL_REVERSECONVERSION	equ 0x0002
GCL_REVERSE_LENGTH	equ 0x0003


IME_CMODE_ALPHANUMERIC	equ 0x0000
IME_CMODE_NATIVE	equ 0x0001
IME_CMODE_CHINESE	equ IME_CMODE_NATIVE
IME_CMODE_HANGEUL	equ IME_CMODE_NATIVE
IME_CMODE_HANGUL	equ IME_CMODE_NATIVE
IME_CMODE_JAPANESE	equ IME_CMODE_NATIVE
IME_CMODE_KATAKANA	equ 0x0002
IME_CMODE_LANGUAGE	equ 0x0003
IME_CMODE_FULLSHAPE	equ 0x0008
IME_CMODE_ROMAN		equ 0x0010
IME_CMODE_CHARCODE	equ 0x0020
IME_CMODE_HANJACONVERT	equ 0x0040
IME_CMODE_SOFTKBD	equ 0x0080
IME_CMODE_NOCONVERSION	equ 0x0100
IME_CMODE_EUDC		equ 0x0200
IME_CMODE_SYMBOL	equ 0x0400
IME_CMODE_FIXED		equ 0x0800

IME_SMODE_NONE		equ 0x0000
IME_SMODE_PLAURALCLAUSE equ 0x0001
IME_SMODE_SINGLECONVERT equ 0x0002
IME_SMODE_AUTOMATIC	equ 0x0004
IME_SMODE_PHRASEPREDICT equ 0x0008
IME_SMODE_CONVERSATION	equ 0x0010

IME_CAND_UNKNOWN	equ 0x0000
IME_CAND_READ		equ 0x0001
IME_CAND_CODE		equ 0x0002
IME_CAND_MEANING	equ 0x0003
IME_CAND_RADICAL	equ 0x0004
IME_CAND_STROKE		equ 0x0005


IMN_CLOSESTATUSWINDOW	equ 0x0001
IMN_OPENSTATUSWINDOW	equ 0x0002
IMN_CHANGECANDIDATE	equ 0x0003
IMN_CLOSECANDIDATE	equ 0x0004
IMN_OPENCANDIDATE	equ 0x0005
IMN_SETCONVERSIONMODE	equ 0x0006
IMN_SETSENTENCEMODE	equ 0x0007
IMN_SETOPENSTATUS	equ 0x0008
IMN_SETCANDIDATEPOS	equ 0x0009
IMN_SETCOMPOSITIONFONT	equ 0x000A
IMN_SETCOMPOSITIONWINDOW equ 0x000B
IMN_SETSTATUSWINDOWPOS	equ 0x000C
IMN_GUIDELINE		equ 0x000D
IMN_PRIVATE		equ 0x000E

if(WINVER GE 0x040A)
IMR_COMPOSITIONWINDOW	equ 0x0001
IMR_CANDIDATEWINDOW	equ 0x0002
IMR_COMPOSITIONFONT	equ 0x0003
IMR_RECONVERTSTRING	equ 0x0004
IMR_CONFIRMRECONVERTSTRING equ 0x0005
endif

IMM_ERROR_NODATA	equ (-1)
IMM_ERROR_GENERAL	equ (-2)


IME_CONFIG_GENERAL	equ 1
IME_CONFIG_REGISTERWORD equ 2
IME_CONFIG_SELECTDICTIONARY equ 3


IME_ESC_QUERY_SUPPORT	equ 0x0003
IME_ESC_RESERVED_FIRST	equ 0x0004
IME_ESC_RESERVED_LAST	equ 0x07FF
IME_ESC_PRIVATE_FIRST	equ 0x0800
IME_ESC_PRIVATE_LAST	equ 0x0FFF
IME_ESC_SEQUENCE_TO_INTERNAL equ 0x1001
IME_ESC_GET_EUDC_DICTIONARY equ 0x1003
IME_ESC_SET_EUDC_DICTIONARY equ 0x1004
IME_ESC_MAX_KEY		equ 0x1005
IME_ESC_IME_NAME	equ 0x1006
IME_ESC_SYNC_HOTKEY	equ 0x1007
IME_ESC_HANJA_MODE	equ 0x1008
IME_ESC_AUTOMATA	equ 0x1009
IME_ESC_PRIVATE_HOTKEY	equ 0x100a
IME_ESC_GETHELPFILENAME equ 0x100b

IME_REGWORD_STYLE_EUDC	equ 0x00000001
IME_REGWORD_STYLE_USER_FIRST equ 0x80000000
IME_REGWORD_STYLE_USER_LAST equ 0xFFFFFFFF


if(WINVER GE 0x040A)
IACE_CHILDREN		equ 0x0001
IACE_DEFAULT		equ 0x0010
IACE_IGNORENOCONTEXT	equ 0x0020

IGIMIF_RIGHTMENU	equ 0x0001

IGIMII_CMODE		equ 0x0001
IGIMII_SMODE		equ 0x0002
IGIMII_CONFIGURE	equ 0x0004
IGIMII_TOOLS		equ 0x0008
IGIMII_HELP		equ 0x0010
IGIMII_OTHER		equ 0x0020
IGIMII_INPUTTOOLS	equ 0x0040

IMFT_RADIOCHECK		equ 0x00001
IMFT_SEPARATOR		equ 0x00002
IMFT_SUBMENU		equ 0x00004

IMFS_GRAYED		equ MFS_GRAYED
IMFS_DISABLED		equ MFS_DISABED
IMFS_CHECKED		equ MFS_CHECKED
IMFS_HILITE		equ MFS_HILITE
IMFS_ENABLED		equ MFS_ENABED
IMFS_UNCHECKED		equ MFS_UNCHECKED
IMFS_UNHILITE		equ MFS_UNHILITE
IMFS_DEFAULT		equ MFS_DEFAULT
endif

define SOFTKEYBOARD_TYPE_T1 0x0001
define SOFTKEYBOARD_TYPE_C1 0x0002

endif
.pragma list(pop)

