| /* | 
 |  * 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_ */ |