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 | #ifndef _DDKIMM_H_
|
---|
20 | #define _DDKIMM_H_
|
---|
21 |
|
---|
22 | #ifdef __cplusplus
|
---|
23 | extern "C" {
|
---|
24 | #endif
|
---|
25 |
|
---|
26 | typedef struct _tagINPUTCONTEXT {
|
---|
27 | HWND hWnd;
|
---|
28 | BOOL fOpen;
|
---|
29 | POINT ptStatusWndPos;
|
---|
30 | POINT ptSoftKbdPos;
|
---|
31 | DWORD fdwConversion;
|
---|
32 | DWORD fdwSentence;
|
---|
33 | union {
|
---|
34 | LOGFONTA A;
|
---|
35 | LOGFONTW W;
|
---|
36 | } lfFont;
|
---|
37 | COMPOSITIONFORM cfCompForm;
|
---|
38 | CANDIDATEFORM cfCandForm[4];
|
---|
39 | HIMCC hCompStr;
|
---|
40 | HIMCC hCandInfo;
|
---|
41 | HIMCC hGuideLine;
|
---|
42 | HIMCC hPrivate;
|
---|
43 | DWORD dwNumMsgBuf;
|
---|
44 | HIMCC hMsgBuf;
|
---|
45 | DWORD fdwInit;
|
---|
46 | DWORD dwReserve[3];
|
---|
47 | } INPUTCONTEXT, *LPINPUTCONTEXT;
|
---|
48 |
|
---|
49 | typedef struct _tagIMEINFO {
|
---|
50 | DWORD dwPrivateDataSize;
|
---|
51 | DWORD fdwProperty;
|
---|
52 | DWORD fdwConversionCaps;
|
---|
53 | DWORD fdwSentenceCaps;
|
---|
54 | DWORD fdwUICaps;
|
---|
55 | DWORD fdwSCSCaps;
|
---|
56 | DWORD fdwSelectCaps;
|
---|
57 | } IMEINFO, *LPIMEINFO;
|
---|
58 |
|
---|
59 | typedef struct tagCOMPOSITIONSTRING {
|
---|
60 | DWORD dwSize;
|
---|
61 | DWORD dwCompReadAttrLen;
|
---|
62 | DWORD dwCompReadAttrOffset;
|
---|
63 | DWORD dwCompReadClauseLen;
|
---|
64 | DWORD dwCompReadClauseOffset;
|
---|
65 | DWORD dwCompReadStrLen;
|
---|
66 | DWORD dwCompReadStrOffset;
|
---|
67 | DWORD dwCompAttrLen;
|
---|
68 | DWORD dwCompAttrOffset;
|
---|
69 | DWORD dwCompClauseLen;
|
---|
70 | DWORD dwCompClauseOffset;
|
---|
71 | DWORD dwCompStrLen;
|
---|
72 | DWORD dwCompStrOffset;
|
---|
73 | DWORD dwCursorPos;
|
---|
74 | DWORD dwDeltaStart;
|
---|
75 | DWORD dwResultReadClauseLen;
|
---|
76 | DWORD dwResultReadClauseOffset;
|
---|
77 | DWORD dwResultReadStrLen;
|
---|
78 | DWORD dwResultReadStrOffset;
|
---|
79 | DWORD dwResultClauseLen;
|
---|
80 | DWORD dwResultClauseOffset;
|
---|
81 | DWORD dwResultStrLen;
|
---|
82 | DWORD dwResultStrOffset;
|
---|
83 | DWORD dwPrivateSize;
|
---|
84 | DWORD dwPrivateOffset;
|
---|
85 | } COMPOSITIONSTRING, *LPCOMPOSITIONSTRING;
|
---|
86 |
|
---|
87 | typedef struct tagGUIDELINE {
|
---|
88 | DWORD dwSize;
|
---|
89 | DWORD dwLevel;
|
---|
90 | DWORD dwIndex;
|
---|
91 | DWORD dwStrLen;
|
---|
92 | DWORD dwStrOffset;
|
---|
93 | DWORD dwPrivateSize;
|
---|
94 | DWORD dwPrivateOffset;
|
---|
95 | } GUIDELINE, *LPGUIDELINE;
|
---|
96 |
|
---|
97 | typedef struct tagCANDIDATEINFO {
|
---|
98 | DWORD dwSize;
|
---|
99 | DWORD dwCount;
|
---|
100 | DWORD dwOffset[32];
|
---|
101 | DWORD dwPrivateSize;
|
---|
102 | DWORD dwPrivateOffset;
|
---|
103 | } CANDIDATEINFO, *LPCANDIDATEINFO;
|
---|
104 |
|
---|
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);
|
---|
115 |
|
---|
116 | #define IMMGWL_IMC 0
|
---|
117 | #define IMMGWL_PRIVATE (sizeof(LONG_PTR))
|
---|
118 |
|
---|
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
|
---|
125 |
|
---|
126 | /* for NI_CONTEXTUPDATED */
|
---|
127 | #define IMC_SETCONVERSIONMODE 0x0002
|
---|
128 | #define IMC_SETSENTENCEMODE 0x0004
|
---|
129 | #define IMC_SETOPENSTATUS 0x0006
|
---|
130 |
|
---|
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
|
---|
142 |
|
---|
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);
|
---|
151 |
|
---|
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);
|
---|
168 |
|
---|
169 | #ifdef __cplusplus
|
---|
170 | } /* extern "C" */
|
---|
171 | #endif
|
---|
172 |
|
---|
173 | #endif /* _DDKIMM_H_ */
|
---|