/* DDK version of imm.h - imm.h for IMM and IME. */ #ifndef __WINE_IMMDDK_H #define __WINE_IMMDDK_H #include "imm.h" #define NULLIMC ((HIMC)0) /* offsets for WndExtra */ #define IMMGWL_IMC 0 #define IMMGWL_PRIVATE (sizeof(LONG)) /* INPUTCONTEXT.fdwInit */ #define INIT_STATUSWNDPOS 0x00000001 #define INIT_CONVERSION 0x00000002 #define INIT_SENTENCE 0x00000004 #define INIT_LOGFONT 0x00000008 #define INIT_COMPFORM 0x00000010 #define INIT_SOFTKBDPOS 0x00000020 /* IMEINFO.fdwProperty (low-order word) */ #define IME_PROP_END_UNLOAD 0x00000001 #define IME_PROP_KBD_CHAR_FIRST 0x00000002 #define IME_PROP_IGNORE_UPKEYS 0x00000004 #define IME_PROP_NEED_ALTKEY 0x00000008 #define IME_PROP_NO_KEYS_ON_CLOSE 0x00000010 /* IMEINFO.fdwProperty (high-order word) */ #define IME_PROP_AT_CARET 0x00010000 #define IME_PROP_SPECIAL_UI 0x00020000 #define IME_PROP_CANDLIST_START_FROM_1 0x00040000 #define IME_PROP_UNICODE 0x00080000 #define IME_PROP_COMPLETE_ON_UNSELECT 0x00100000 /*** IMM and IME Structures ***/ typedef struct tagINPUTCONTEXT { HWND hWnd; BOOL fOpen; POINT ptStatusWndPos; POINT ptSoftKbdPos; DWORD fdwConversion; DWORD fdwSentence; union { LOGFONTA A; LOGFONTW W; } lfFont; COMPOSITIONFORM cfCompForm; CANDIDATEFORM cfCandForm[4]; HIMCC hCompStr; HIMCC hCandInfo; HIMCC hGuideLine; HIMCC hPrivate; DWORD dwNumMsgBuf; HIMCC hMsgBuf; DWORD fdwInit; DWORD dwReserve[3]; } INPUTCONTEXT, * LPINPUTCONTEXT; typedef struct tagCOMPOSITIONSTRING { DWORD dwSize; DWORD dwCompReadAttrLen; DWORD dwCompReadAttrOffset; DWORD dwCompReadClauseLen; DWORD dwCompReadClauseOffset; DWORD dwCompReadStrLen; DWORD dwCompReadStrOffset; DWORD dwCompAttrLen; DWORD dwCompAttrOffset; DWORD dwCompClauseLen; DWORD dwCompClauseOffset; DWORD dwCompStrLen; DWORD dwCompStrOffset; DWORD dwCursorPos; DWORD dwDeltaStart; DWORD dwResultReadClauseLen; DWORD dwResultReadClauseOffset; DWORD dwResultReadStrLen; DWORD dwResultReadStrOffset; DWORD dwResultClauseLen; DWORD dwResultClauseOffset; DWORD dwResultStrLen; DWORD dwResultStrOffset; DWORD dwPrivateSize; DWORD dwPrivateOffset; } COMPOSITIONSTRING, * LPCOMPOSITIONSTRING; typedef struct tagCANDIDATEINFO { DWORD dwSize; DWORD dwCount; DWORD dwOffset[32]; DWORD dwPrivateSize; DWORD dwPrivateOffset; } CANDIDATEINFO, * LPCANDIDATEINFO; typedef struct tagGUIDELINE { DWORD dwSize; DWORD dwLevel; DWORD dwIndex; DWORD dwStrLen; DWORD dwStrOffset; DWORD dwPrivateSize; DWORD dwPrivateOffset; } GUIDELINE, * LPGUIDELINE; /*** IME Management Structures ***/ typedef struct tagIMEINFO { DWORD dwPrivateDataSize; DWORD fdwProperty; DWORD fdwConversionCaps; DWORD fdwSentenceCaps; DWORD fdwUICaps; DWORD fdwSCSCaps; DWORD fdwSelectCaps; } IMEINFO, * LPIMEINFO; /*** IME Communication Structures ***/ typedef struct tagSOFTKBDDATA { UINT uCount; WORD wCode[1][256]; } SOFTKBDDATA, * LPSOFTKBDDATA; /*** IMM DDK APIs ***/ HWND WINAPI ImmCreateSoftKeyboard(UINT uType, HWND hwndOwner, int x, int y); BOOL WINAPI ImmDestroySoftKeyboard(HWND hwndSoftKeyboard); BOOL WINAPI ImmShowSoftKeyboard(HWND hwndSoftKeyboard, int nCmdShow); LPINPUTCONTEXT WINAPI ImmLockIMC(HIMC hIMC); BOOL WINAPI ImmUnlockIMC(HIMC hIMC); DWORD WINAPI ImmGetIMCLockCount(HIMC hIMC); HIMCC WINAPI ImmCreateIMCC(DWORD dwSize); HIMCC WINAPI ImmDestroyIMCC(HIMCC hIMCC); LPVOID WINAPI ImmLockIMCC(HIMCC hIMCC); BOOL WINAPI ImmUnlockIMCC(HIMCC hIMCC); DWORD WINAPI ImmGetIMCCLockCount(HIMCC hIMCC); HIMCC WINAPI ImmReSizeIMCC(HIMCC hIMCC, DWORD dwSize); DWORD WINAPI ImmGetIMCCSize(HIMCC hIMCC); #endif /* __WINE_IMMDDK_H */