| /* | |
| * Copyright (C) 2007 CodeWeavers, Aric Stewart | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | |
| */ | |
| #ifndef _DDKIMM_H_ | |
| #define _DDKIMM_H_ | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| 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 _tagIMEINFO { | |
| DWORD dwPrivateDataSize; | |
| DWORD fdwProperty; | |
| DWORD fdwConversionCaps; | |
| DWORD fdwSentenceCaps; | |
| DWORD fdwUICaps; | |
| DWORD fdwSCSCaps; | |
| DWORD fdwSelectCaps; | |
| } IMEINFO, *LPIMEINFO; | |
| 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 tagGUIDELINE { | |
| DWORD dwSize; | |
| DWORD dwLevel; | |
| DWORD dwIndex; | |
| DWORD dwStrLen; | |
| DWORD dwStrOffset; | |
| DWORD dwPrivateSize; | |
| DWORD dwPrivateOffset; | |
| } GUIDELINE, *LPGUIDELINE; | |
| typedef struct tagCANDIDATEINFO { | |
| DWORD dwSize; | |
| DWORD dwCount; | |
| DWORD dwOffset[32]; | |
| DWORD dwPrivateSize; | |
| DWORD dwPrivateOffset; | |
| } CANDIDATEINFO, *LPCANDIDATEINFO; | |
| LPINPUTCONTEXT WINAPI ImmLockIMC(HIMC); | |
| BOOL WINAPI ImmUnlockIMC(HIMC); | |
| DWORD WINAPI ImmGetIMCLockCount(HIMC); | |
| HIMCC WINAPI ImmCreateIMCC(DWORD); | |
| HIMCC WINAPI ImmDestroyIMCC(HIMCC); | |
| LPVOID WINAPI ImmLockIMCC(HIMCC); | |
| BOOL WINAPI ImmUnlockIMCC(HIMCC); | |
| DWORD WINAPI ImmGetIMCCLockCount(HIMCC); | |
| HIMCC WINAPI ImmReSizeIMCC(HIMCC, DWORD); | |
| DWORD WINAPI ImmGetIMCCSize(HIMCC); | |
| #define IMMGWL_IMC 0 | |
| #define IMMGWL_PRIVATE (sizeof(LONG_PTR)) | |
| /* IME Property bits */ | |
| #define IME_PROP_END_UNLOAD 0x0001 | |
| #define IME_PROP_KBD_CHAR_FIRST 0x0002 | |
| #define IME_PROP_IGNORE_UPKEYS 0x0004 | |
| #define IME_PROP_NEED_ALTKEY 0x0008 | |
| #define IME_PROP_NO_KEYS_ON_CLOSE 0x0010 | |
| /* for NI_CONTEXTUPDATED */ | |
| #define IMC_SETCONVERSIONMODE 0x0002 | |
| #define IMC_SETSENTENCEMODE 0x0004 | |
| #define IMC_SETOPENSTATUS 0x0006 | |
| /* dwAction for ImmNotifyIME */ | |
| #define NI_CONTEXTUPDATED 0x0003 | |
| #define NI_OPENCANDIDATE 0x0010 | |
| #define NI_CLOSECANDIDATE 0x0011 | |
| #define NI_SELECTCANDIDATESTR 0x0012 | |
| #define NI_CHANGECANDIDATELIST 0x0013 | |
| #define NI_FINALIZECONVERSIONRESULT 0x0014 | |
| #define NI_COMPOSITIONSTR 0x0015 | |
| #define NI_SETCANDIDATE_PAGESTART 0x0016 | |
| #define NI_SETCANDIDATE_PAGESIZE 0x0017 | |
| #define NI_IMEMENUSELECTED 0x0018 | |
| BOOL WINAPI ImmGenerateMessage(HIMC); | |
| LRESULT WINAPI ImmRequestMessageA(HIMC, WPARAM, LPARAM); | |
| LRESULT WINAPI ImmRequestMessageW(HIMC, WPARAM, LPARAM); | |
| #define ImmRequestMessage WINELIB_NAME_AW(ImmRequestMessage); | |
| BOOL WINAPI ImmTranslateMessage(HWND, UINT, WPARAM, LPARAM); | |
| HWND WINAPI ImmCreateSoftKeyboard(UINT, UINT, int, int); | |
| BOOL WINAPI ImmDestroySoftKeyboard(HWND); | |
| BOOL WINAPI ImmShowSoftKeyboard(HWND, int); | |
| BOOL WINAPI ImeInquire(LPIMEINFO, LPWSTR, LPCWSTR lpszOptions); | |
| BOOL WINAPI ImeConfigure (HKL, HWND, DWORD, LPVOID); | |
| DWORD WINAPI ImeConversionList(HIMC, LPCWSTR, LPCANDIDATELIST,DWORD,UINT); | |
| BOOL WINAPI ImeDestroy(UINT); | |
| LRESULT WINAPI ImeEscape(HIMC, UINT, LPVOID); | |
| BOOL WINAPI ImeProcessKey(HIMC, UINT, LPARAM, CONST LPBYTE); | |
| BOOL WINAPI ImeSelect(HIMC, BOOL); | |
| BOOL WINAPI ImeSetActiveContext(HIMC, BOOL); | |
| UINT WINAPI ImeToAsciiEx(UINT, UINT, CONST LPBYTE, LPDWORD, UINT, HIMC); | |
| BOOL WINAPI NotifyIME(HIMC, DWORD, DWORD, DWORD); | |
| BOOL WINAPI ImeRegisterWord(LPCWSTR, DWORD, LPCWSTR); | |
| BOOL WINAPI ImeUnregisterWord(LPCWSTR, DWORD, LPCWSTR); | |
| UINT WINAPI ImeGetRegisterWordStyle(UINT, LPSTYLEBUFW); | |
| UINT WINAPI ImeEnumRegisterWord(REGISTERWORDENUMPROCW, LPCWSTR, DWORD, LPCWSTR, LPVOID); | |
| BOOL WINAPI ImeSetCompositionString(HIMC, DWORD, LPCVOID, DWORD, LPCVOID, DWORD); | |
| DWORD WINAPI ImeGetImeMenuItems(HIMC, DWORD, DWORD, LPIMEMENUITEMINFOW, LPIMEMENUITEMINFOW, DWORD); | |
| #ifdef __cplusplus | |
| } /* extern "C" */ | |
| #endif | |
| #endif /* _DDKIMM_H_ */ |