2 * Copyright (C) 2007 CodeWeavers, Aric Stewart
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
26 typedef struct _tagINPUTCONTEXT
{
37 COMPOSITIONFORM cfCompForm
;
38 CANDIDATEFORM cfCandForm
[4];
47 } INPUTCONTEXT
, *LPINPUTCONTEXT
;
49 typedef struct _tagIMEINFO
{
50 DWORD dwPrivateDataSize
;
52 DWORD fdwConversionCaps
;
53 DWORD fdwSentenceCaps
;
57 } IMEINFO
, *LPIMEINFO
;
59 typedef struct tagCOMPOSITIONSTRING
{
61 DWORD dwCompReadAttrLen
;
62 DWORD dwCompReadAttrOffset
;
63 DWORD dwCompReadClauseLen
;
64 DWORD dwCompReadClauseOffset
;
65 DWORD dwCompReadStrLen
;
66 DWORD dwCompReadStrOffset
;
68 DWORD dwCompAttrOffset
;
69 DWORD dwCompClauseLen
;
70 DWORD dwCompClauseOffset
;
72 DWORD dwCompStrOffset
;
75 DWORD dwResultReadClauseLen
;
76 DWORD dwResultReadClauseOffset
;
77 DWORD dwResultReadStrLen
;
78 DWORD dwResultReadStrOffset
;
79 DWORD dwResultClauseLen
;
80 DWORD dwResultClauseOffset
;
82 DWORD dwResultStrOffset
;
84 DWORD dwPrivateOffset
;
85 } COMPOSITIONSTRING
, *LPCOMPOSITIONSTRING
;
87 typedef struct tagGUIDELINE
{
94 DWORD dwPrivateOffset
;
95 } GUIDELINE
, *LPGUIDELINE
;
97 typedef struct tagCANDIDATEINFO
{
102 DWORD dwPrivateOffset
;
103 } CANDIDATEINFO
, *LPCANDIDATEINFO
;
105 LPINPUTCONTEXT WINAPI
ImmLockIMC(HIMC
);
106 BOOL WINAPI
ImmUnlockIMC(HIMC
);
107 DWORD WINAPI
ImmGetIMCLockCount(HIMC
);
108 HIMCC WINAPI
ImmCreateIMCC(DWORD
);
109 HIMCC WINAPI
ImmDestroyIMCC(HIMCC
);
110 LPVOID WINAPI
ImmLockIMCC(HIMCC
);
111 BOOL WINAPI
ImmUnlockIMCC(HIMCC
);
112 DWORD WINAPI
ImmGetIMCCLockCount(HIMCC
);
113 HIMCC WINAPI
ImmReSizeIMCC(HIMCC
, DWORD
);
114 DWORD WINAPI
ImmGetIMCCSize(HIMCC
);
117 #define IMMGWL_PRIVATE (sizeof(LONG_PTR))
119 /* IME Property bits */
120 #define IME_PROP_END_UNLOAD 0x0001
121 #define IME_PROP_KBD_CHAR_FIRST 0x0002
122 #define IME_PROP_IGNORE_UPKEYS 0x0004
123 #define IME_PROP_NEED_ALTKEY 0x0008
124 #define IME_PROP_NO_KEYS_ON_CLOSE 0x0010
126 /* for NI_CONTEXTUPDATED */
127 #define IMC_SETCONVERSIONMODE 0x0002
128 #define IMC_SETSENTENCEMODE 0x0004
129 #define IMC_SETOPENSTATUS 0x0006
131 /* dwAction for ImmNotifyIME */
132 #define NI_CONTEXTUPDATED 0x0003
133 #define NI_OPENCANDIDATE 0x0010
134 #define NI_CLOSECANDIDATE 0x0011
135 #define NI_SELECTCANDIDATESTR 0x0012
136 #define NI_CHANGECANDIDATELIST 0x0013
137 #define NI_FINALIZECONVERSIONRESULT 0x0014
138 #define NI_COMPOSITIONSTR 0x0015
139 #define NI_SETCANDIDATE_PAGESTART 0x0016
140 #define NI_SETCANDIDATE_PAGESIZE 0x0017
141 #define NI_IMEMENUSELECTED 0x0018
143 BOOL WINAPI
ImmGenerateMessage(HIMC
);
144 LRESULT WINAPI
ImmRequestMessageA(HIMC
, WPARAM
, LPARAM
);
145 LRESULT WINAPI
ImmRequestMessageW(HIMC
, WPARAM
, LPARAM
);
146 #define ImmRequestMessage WINELIB_NAME_AW(ImmRequestMessage)
147 BOOL WINAPI
ImmTranslateMessage(HWND
, UINT
, WPARAM
, LPARAM
);
148 HWND WINAPI
ImmCreateSoftKeyboard(UINT
, UINT
, int, int);
149 BOOL WINAPI
ImmDestroySoftKeyboard(HWND
);
150 BOOL WINAPI
ImmShowSoftKeyboard(HWND
, int);
152 BOOL WINAPI
ImeInquire(LPIMEINFO
, LPWSTR
, LPCWSTR lpszOptions
);
153 BOOL WINAPI
ImeConfigure (HKL
, HWND
, DWORD
, LPVOID
);
154 DWORD WINAPI
ImeConversionList(HIMC
, LPCWSTR
, LPCANDIDATELIST
,DWORD
,UINT
);
155 BOOL WINAPI
ImeDestroy(UINT
);
156 LRESULT WINAPI
ImeEscape(HIMC
, UINT
, LPVOID
);
157 BOOL WINAPI
ImeProcessKey(HIMC
, UINT
, LPARAM
, const LPBYTE
);
158 BOOL WINAPI
ImeSelect(HIMC
, BOOL
);
159 BOOL WINAPI
ImeSetActiveContext(HIMC
, BOOL
);
160 UINT WINAPI
ImeToAsciiEx(UINT
, UINT
, const LPBYTE
, LPDWORD
, UINT
, HIMC
);
161 BOOL WINAPI
NotifyIME(HIMC
, DWORD
, DWORD
, DWORD
);
162 BOOL WINAPI
ImeRegisterWord(LPCWSTR
, DWORD
, LPCWSTR
);
163 BOOL WINAPI
ImeUnregisterWord(LPCWSTR
, DWORD
, LPCWSTR
);
164 UINT WINAPI
ImeGetRegisterWordStyle(UINT
, LPSTYLEBUFW
);
165 UINT WINAPI
ImeEnumRegisterWord(REGISTERWORDENUMPROCW
, LPCWSTR
, DWORD
, LPCWSTR
, LPVOID
);
166 BOOL WINAPI
ImeSetCompositionString(HIMC
, DWORD
, LPCVOID
, DWORD
, LPCVOID
, DWORD
);
167 DWORD WINAPI
ImeGetImeMenuItems(HIMC
, DWORD
, DWORD
, LPIMEMENUITEMINFOW
, LPIMEMENUITEMINFOW
, DWORD
);
173 #endif /* _DDKIMM_H_ */