1 | /*
|
---|
2 | * Copyright (C) 2007 CodeWeavers, Aric Stewart
|
---|
3 | *
|
---|
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.
|
---|
8 | *
|
---|
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.
|
---|
13 | *
|
---|
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
|
---|
17 | */
|
---|
18 |
|
---|
19 | /*
|
---|
20 | * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
|
---|
21 | * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
|
---|
22 | * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
|
---|
23 | * a choice of LGPL license versions is made available with the language indicating
|
---|
24 | * that LGPLv2 or any later version may be used, or where a choice of which version
|
---|
25 | * of the LGPL is applied is otherwise unspecified.
|
---|
26 | */
|
---|
27 |
|
---|
28 | #ifndef _DDKIMM_H_
|
---|
29 | #define _DDKIMM_H_
|
---|
30 |
|
---|
31 | #ifdef __cplusplus
|
---|
32 | extern "C" {
|
---|
33 | #endif
|
---|
34 |
|
---|
35 | typedef struct _tagINPUTCONTEXT {
|
---|
36 | HWND hWnd;
|
---|
37 | BOOL fOpen;
|
---|
38 | POINT ptStatusWndPos;
|
---|
39 | POINT ptSoftKbdPos;
|
---|
40 | DWORD fdwConversion;
|
---|
41 | DWORD fdwSentence;
|
---|
42 | union {
|
---|
43 | LOGFONTA A;
|
---|
44 | LOGFONTW W;
|
---|
45 | } lfFont;
|
---|
46 | COMPOSITIONFORM cfCompForm;
|
---|
47 | CANDIDATEFORM cfCandForm[4];
|
---|
48 | HIMCC hCompStr;
|
---|
49 | HIMCC hCandInfo;
|
---|
50 | HIMCC hGuideLine;
|
---|
51 | HIMCC hPrivate;
|
---|
52 | DWORD dwNumMsgBuf;
|
---|
53 | HIMCC hMsgBuf;
|
---|
54 | DWORD fdwInit;
|
---|
55 | DWORD dwReserve[3];
|
---|
56 | } INPUTCONTEXT, *LPINPUTCONTEXT;
|
---|
57 |
|
---|
58 | typedef struct _tagIMEINFO {
|
---|
59 | DWORD dwPrivateDataSize;
|
---|
60 | DWORD fdwProperty;
|
---|
61 | DWORD fdwConversionCaps;
|
---|
62 | DWORD fdwSentenceCaps;
|
---|
63 | DWORD fdwUICaps;
|
---|
64 | DWORD fdwSCSCaps;
|
---|
65 | DWORD fdwSelectCaps;
|
---|
66 | } IMEINFO, *LPIMEINFO;
|
---|
67 |
|
---|
68 | typedef struct tagCOMPOSITIONSTRING {
|
---|
69 | DWORD dwSize;
|
---|
70 | DWORD dwCompReadAttrLen;
|
---|
71 | DWORD dwCompReadAttrOffset;
|
---|
72 | DWORD dwCompReadClauseLen;
|
---|
73 | DWORD dwCompReadClauseOffset;
|
---|
74 | DWORD dwCompReadStrLen;
|
---|
75 | DWORD dwCompReadStrOffset;
|
---|
76 | DWORD dwCompAttrLen;
|
---|
77 | DWORD dwCompAttrOffset;
|
---|
78 | DWORD dwCompClauseLen;
|
---|
79 | DWORD dwCompClauseOffset;
|
---|
80 | DWORD dwCompStrLen;
|
---|
81 | DWORD dwCompStrOffset;
|
---|
82 | DWORD dwCursorPos;
|
---|
83 | DWORD dwDeltaStart;
|
---|
84 | DWORD dwResultReadClauseLen;
|
---|
85 | DWORD dwResultReadClauseOffset;
|
---|
86 | DWORD dwResultReadStrLen;
|
---|
87 | DWORD dwResultReadStrOffset;
|
---|
88 | DWORD dwResultClauseLen;
|
---|
89 | DWORD dwResultClauseOffset;
|
---|
90 | DWORD dwResultStrLen;
|
---|
91 | DWORD dwResultStrOffset;
|
---|
92 | DWORD dwPrivateSize;
|
---|
93 | DWORD dwPrivateOffset;
|
---|
94 | } COMPOSITIONSTRING, *LPCOMPOSITIONSTRING;
|
---|
95 |
|
---|
96 | typedef struct tagGUIDELINE {
|
---|
97 | DWORD dwSize;
|
---|
98 | DWORD dwLevel;
|
---|
99 | DWORD dwIndex;
|
---|
100 | DWORD dwStrLen;
|
---|
101 | DWORD dwStrOffset;
|
---|
102 | DWORD dwPrivateSize;
|
---|
103 | DWORD dwPrivateOffset;
|
---|
104 | } GUIDELINE, *LPGUIDELINE;
|
---|
105 |
|
---|
106 | typedef struct tagCANDIDATEINFO {
|
---|
107 | DWORD dwSize;
|
---|
108 | DWORD dwCount;
|
---|
109 | DWORD dwOffset[32];
|
---|
110 | DWORD dwPrivateSize;
|
---|
111 | DWORD dwPrivateOffset;
|
---|
112 | } CANDIDATEINFO, *LPCANDIDATEINFO;
|
---|
113 |
|
---|
114 | LPINPUTCONTEXT WINAPI ImmLockIMC(HIMC);
|
---|
115 | BOOL WINAPI ImmUnlockIMC(HIMC);
|
---|
116 | DWORD WINAPI ImmGetIMCLockCount(HIMC);
|
---|
117 | HIMCC WINAPI ImmCreateIMCC(DWORD);
|
---|
118 | HIMCC WINAPI ImmDestroyIMCC(HIMCC);
|
---|
119 | LPVOID WINAPI ImmLockIMCC(HIMCC);
|
---|
120 | BOOL WINAPI ImmUnlockIMCC(HIMCC);
|
---|
121 | DWORD WINAPI ImmGetIMCCLockCount(HIMCC);
|
---|
122 | HIMCC WINAPI ImmReSizeIMCC(HIMCC, DWORD);
|
---|
123 | DWORD WINAPI ImmGetIMCCSize(HIMCC);
|
---|
124 |
|
---|
125 | #define IMMGWL_IMC 0
|
---|
126 | #define IMMGWL_PRIVATE (sizeof(LONG_PTR))
|
---|
127 |
|
---|
128 | /* IME Property bits */
|
---|
129 | #define IME_PROP_END_UNLOAD 0x0001
|
---|
130 | #define IME_PROP_KBD_CHAR_FIRST 0x0002
|
---|
131 | #define IME_PROP_IGNORE_UPKEYS 0x0004
|
---|
132 | #define IME_PROP_NEED_ALTKEY 0x0008
|
---|
133 | #define IME_PROP_NO_KEYS_ON_CLOSE 0x0010
|
---|
134 |
|
---|
135 | /* for NI_CONTEXTUPDATED */
|
---|
136 | #define IMC_SETCONVERSIONMODE 0x0002
|
---|
137 | #define IMC_SETSENTENCEMODE 0x0004
|
---|
138 | #define IMC_SETOPENSTATUS 0x0006
|
---|
139 |
|
---|
140 | /* dwAction for ImmNotifyIME */
|
---|
141 | #define NI_CONTEXTUPDATED 0x0003
|
---|
142 | #define NI_OPENCANDIDATE 0x0010
|
---|
143 | #define NI_CLOSECANDIDATE 0x0011
|
---|
144 | #define NI_SELECTCANDIDATESTR 0x0012
|
---|
145 | #define NI_CHANGECANDIDATELIST 0x0013
|
---|
146 | #define NI_FINALIZECONVERSIONRESULT 0x0014
|
---|
147 | #define NI_COMPOSITIONSTR 0x0015
|
---|
148 | #define NI_SETCANDIDATE_PAGESTART 0x0016
|
---|
149 | #define NI_SETCANDIDATE_PAGESIZE 0x0017
|
---|
150 | #define NI_IMEMENUSELECTED 0x0018
|
---|
151 |
|
---|
152 | BOOL WINAPI ImmGenerateMessage(HIMC);
|
---|
153 | LRESULT WINAPI ImmRequestMessageA(HIMC, WPARAM, LPARAM);
|
---|
154 | LRESULT WINAPI ImmRequestMessageW(HIMC, WPARAM, LPARAM);
|
---|
155 | #define ImmRequestMessage WINELIB_NAME_AW(ImmRequestMessage);
|
---|
156 | BOOL WINAPI ImmTranslateMessage(HWND, UINT, WPARAM, LPARAM);
|
---|
157 | HWND WINAPI ImmCreateSoftKeyboard(UINT, UINT, int, int);
|
---|
158 | BOOL WINAPI ImmDestroySoftKeyboard(HWND);
|
---|
159 | BOOL WINAPI ImmShowSoftKeyboard(HWND, int);
|
---|
160 |
|
---|
161 | BOOL WINAPI ImeInquire(LPIMEINFO, LPWSTR, LPCWSTR lpszOptions);
|
---|
162 | BOOL WINAPI ImeConfigure (HKL, HWND, DWORD, LPVOID);
|
---|
163 | DWORD WINAPI ImeConversionList(HIMC, LPCWSTR, LPCANDIDATELIST,DWORD,UINT);
|
---|
164 | BOOL WINAPI ImeDestroy(UINT);
|
---|
165 | LRESULT WINAPI ImeEscape(HIMC, UINT, LPVOID);
|
---|
166 | BOOL WINAPI ImeProcessKey(HIMC, UINT, LPARAM, const LPBYTE);
|
---|
167 | BOOL WINAPI ImeSelect(HIMC, BOOL);
|
---|
168 | BOOL WINAPI ImeSetActiveContext(HIMC, BOOL);
|
---|
169 | UINT WINAPI ImeToAsciiEx(UINT, UINT, const LPBYTE, LPDWORD, UINT, HIMC);
|
---|
170 | BOOL WINAPI NotifyIME(HIMC, DWORD, DWORD, DWORD);
|
---|
171 | BOOL WINAPI ImeRegisterWord(LPCWSTR, DWORD, LPCWSTR);
|
---|
172 | BOOL WINAPI ImeUnregisterWord(LPCWSTR, DWORD, LPCWSTR);
|
---|
173 | UINT WINAPI ImeGetRegisterWordStyle(UINT, LPSTYLEBUFW);
|
---|
174 | UINT WINAPI ImeEnumRegisterWord(REGISTERWORDENUMPROCW, LPCWSTR, DWORD, LPCWSTR, LPVOID);
|
---|
175 | BOOL WINAPI ImeSetCompositionString(HIMC, DWORD, LPCVOID, DWORD, LPCVOID, DWORD);
|
---|
176 | DWORD WINAPI ImeGetImeMenuItems(HIMC, DWORD, DWORD, LPIMEMENUITEMINFOW, LPIMEMENUITEMINFOW, DWORD);
|
---|
177 |
|
---|
178 | #ifdef __cplusplus
|
---|
179 | } /* extern "C" */
|
---|
180 | #endif
|
---|
181 |
|
---|
182 | #endif /* _DDKIMM_H_ */
|
---|