• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1cpp_quote("/**")
2cpp_quote(" * This file is part of the mingw-w64 runtime package.")
3cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.")
4cpp_quote(" */")
5cpp_quote("")
6
7#ifndef LF_FACESIZE
8#define LF_FACESIZE 32
9#endif
10#ifndef STYLE_DESCRIPTION_SIZE
11#define STYLE_DESCRIPTION_SIZE 32
12#endif
13#ifndef IMEMENUITEM_STRING_SIZE
14#define IMEMENUITEM_STRING_SIZE 80
15#endif
16
17#ifndef DO_NO_IMPORTS
18import "unknwn.idl";
19#endif
20
21interface IEnumRegisterWordA;
22interface IEnumRegisterWordW;
23
24cpp_quote("#include <winapifamily.h>")
25cpp_quote("")
26cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
27
28[uuid (4955dd30-B159-11d0-8fcf-00aa006bcc59), lcid (0x0000), version (0.1)]
29library ActiveIMM {
30  importlib ("stdole2.tlb");
31  cpp_quote("#include <imm.h>")
32
33cpp_quote("#if 0")
34  typedef WORD LANGID;
35  typedef struct {
36    LPSTR lpReading;
37    LPSTR lpWord;
38  } REGISTERWORDA;
39
40  typedef struct {
41    LPWSTR lpReading;
42    LPWSTR lpWord;
43  } REGISTERWORDW;
44
45  typedef struct {
46    LONG lfHeight;
47    LONG lfWidth;
48    LONG lfEscapement;
49    LONG lfOrientation;
50    LONG lfWeight;
51    BYTE lfItalic;
52    BYTE lfUnderline;
53    BYTE lfStrikeOut;
54    BYTE lfCharSet;
55    BYTE lfOutPrecision;
56    BYTE lfClipPrecision;
57    BYTE lfQuality;
58    BYTE lfPitchAndFamily;
59    CHAR lfFaceName[LF_FACESIZE];
60  } LOGFONTA;
61
62  typedef struct {
63    LONG lfHeight;
64    LONG lfWidth;
65    LONG lfEscapement;
66    LONG lfOrientation;
67    LONG lfWeight;
68    BYTE lfItalic;
69    BYTE lfUnderline;
70    BYTE lfStrikeOut;
71    BYTE lfCharSet;
72    BYTE lfOutPrecision;
73    BYTE lfClipPrecision;
74    BYTE lfQuality;
75    BYTE lfPitchAndFamily;
76    WCHAR lfFaceName[LF_FACESIZE];
77  } LOGFONTW;
78
79  typedef DWORD HIMC;
80  typedef DWORD HIMCC;
81
82  typedef struct {
83    DWORD dwIndex;
84    DWORD dwStyle;
85    POINT ptCurrentPos;
86    RECT rcArea;
87  } CANDIDATEFORM;
88
89  typedef struct {
90    DWORD dwStyle;
91    POINT ptCurrentPos;
92    RECT rcArea;
93  } COMPOSITIONFORM;
94
95  typedef struct {
96    DWORD dwSize;
97    DWORD dwStyle;
98    DWORD dwCount;
99    DWORD dwSelection;
100    DWORD dwPageStart;
101    DWORD dwPageSize;
102    DWORD dwOffset[1];
103  } CANDIDATELIST;
104
105  typedef struct {
106    DWORD dwStyle;
107    CHAR szDescription[STYLE_DESCRIPTION_SIZE];
108  } STYLEBUFA;
109
110  typedef struct {
111    DWORD dwStyle;
112    WCHAR szDescription[STYLE_DESCRIPTION_SIZE];
113  } STYLEBUFW;
114
115  typedef WORD ATOM;
116
117  typedef struct {
118    UINT cbSize;
119    UINT fType;
120    UINT fState;
121    UINT wID;
122    HBITMAP hbmpChecked;
123    HBITMAP hbmpUnchecked;
124    DWORD dwItemData;
125    CHAR szString[IMEMENUITEM_STRING_SIZE];
126    HBITMAP hbmpItem;
127  } IMEMENUITEMINFOA;
128
129typedef struct {
130    UINT cbSize;
131    UINT fType;
132    UINT fState;
133    UINT wID;
134    HBITMAP hbmpChecked;
135    HBITMAP hbmpUnchecked;
136    DWORD dwItemData;
137    WCHAR szString[IMEMENUITEM_STRING_SIZE];
138    HBITMAP hbmpItem;
139  } IMEMENUITEMINFOW;
140cpp_quote("#endif")
141
142  cpp_quote("#ifndef _DDKIMM_H_")
143
144  typedef struct {
145    HWND hWnd;
146    BOOL fOpen;
147    POINT ptStatusWndPos;
148    POINT ptSoftKbdPos;
149    DWORD fdwConversion;
150    DWORD fdwSentence;
151    union {
152      LOGFONTA A;
153      LOGFONTW W;
154    } lfFont;
155    COMPOSITIONFORM cfCompForm;
156    CANDIDATEFORM cfCandForm[4];
157    HIMCC hCompStr;
158    HIMCC hCandInfo;
159    HIMCC hGuideLine;
160    HIMCC hPrivate;
161    DWORD dwNumMsgBuf;
162    HIMCC hMsgBuf;
163    DWORD fdwInit;
164    DWORD dwReserve[3];
165  } INPUTCONTEXT;
166
167  typedef struct {
168    DWORD dwPrivateDataSize;
169    DWORD fdwProperty;
170    DWORD fdwConversionCaps;
171    DWORD fdwSentenceCaps;
172    DWORD fdwUICaps;
173    DWORD fdwSCSCaps;
174    DWORD fdwSelectCaps;
175  } IMEINFO;
176  cpp_quote("#endif")
177
178  [object, uuid (09b5eab0-f997-11d1-93d4-0060b067b86e), pointer_default (unique)]
179  interface IEnumInputContext : IUnknown {
180    HRESULT Clone ([out] IEnumInputContext **ppEnum);
181    HRESULT Next ([in] ULONG ulCount,[out] HIMC *rgInputContext,[out] ULONG *pcFetched);
182    HRESULT Reset ();
183    HRESULT Skip ([in] ULONG ulCount);
184  };
185
186  [object, uuid (b3458082-bd00-11d1-939b-0060b067b86e), pointer_default (unique)]
187  interface IActiveIMMRegistrar : IUnknown {
188    HRESULT RegisterIME ([in] REFCLSID rclsid,[in] LANGID lgid,[in] LPCWSTR pszIconFile,[in] LPCWSTR pszDesc);
189    HRESULT UnregisterIME ([in] REFCLSID rclsid);
190  };
191
192  [object, uuid (b5cf2cfa-8aeb-11d1-9364-0060b067b86e), pointer_default (unique)]
193  interface IActiveIMMMessagePumpOwner : IUnknown {
194    HRESULT Start ();
195    HRESULT End ();
196    HRESULT OnTranslateMessage ([in] const MSG *pMsg);
197    HRESULT Pause ([out] DWORD *pdwCookie);
198    HRESULT Resume ([in] DWORD dwCookie);
199  }
200
201  [object, uuid (08c0e040-62d1-11d1-9326-0060b067b86e), pointer_default (unique)]
202  interface IActiveIMMApp : IUnknown {
203    HRESULT AssociateContext ([in] HWND hWnd,[in] HIMC hIME,[out] HIMC *phPrev);
204    HRESULT ConfigureIMEA ([in] HKL hKL,[in] HWND hWnd,[in] DWORD dwMode,[in] REGISTERWORDA *pData);
205    HRESULT ConfigureIMEW ([in] HKL hKL,[in] HWND hWnd,[in] DWORD dwMode,[in] REGISTERWORDW *pData);
206    HRESULT CreateContext ([out] HIMC *phIMC);
207    HRESULT DestroyContext ([in] HIMC hIME);
208    HRESULT EnumRegisterWordA ([in] HKL hKL,[in] LPSTR szReading,[in] DWORD dwStyle,[in] LPSTR szRegister,[in] LPVOID pData,[out] IEnumRegisterWordA **pEnum);
209    HRESULT EnumRegisterWordW ([in] HKL hKL,[in] LPWSTR szReading,[in] DWORD dwStyle,[in] LPWSTR szRegister,[in] LPVOID pData,[out] IEnumRegisterWordW **pEnum);
210    HRESULT EscapeA ([in] HKL hKL,[in] HIMC hIMC,[in] UINT uEscape,[in, out] LPVOID pData,[out] LRESULT *plResult);
211    HRESULT EscapeW ([in] HKL hKL,[in] HIMC hIMC,[in] UINT uEscape,[in, out] LPVOID pData,[out] LRESULT *plResult);
212    HRESULT GetCandidateListA ([in] HIMC hIMC,[in] DWORD dwIndex,[in] UINT uBufLen,[out] CANDIDATELIST *pCandList,[out] UINT *puCopied);
213    HRESULT GetCandidateListW ([in] HIMC hIMC,[in] DWORD dwIndex,[in] UINT uBufLen,[out] CANDIDATELIST *pCandList,[out] UINT *puCopied);
214    HRESULT GetCandidateListCountA ([in] HIMC hIMC,[out] DWORD *pdwListSize,[out] DWORD *pdwBufLen);
215    HRESULT GetCandidateListCountW ([in] HIMC hIMC,[out] DWORD *pdwListSize,[out] DWORD *pdwBufLen);
216    HRESULT GetCandidateWindow ([in] HIMC hIMC,[in] DWORD dwIndex,[out] CANDIDATEFORM *pCandidate);
217    HRESULT GetCompositionFontA ([in] HIMC hIMC,[out] LOGFONTA *plf);
218    HRESULT GetCompositionFontW ([in] HIMC hIMC,[out] LOGFONTW *plf);
219    HRESULT GetCompositionStringA ([in] HIMC hIMC,[in] DWORD dwIndex,[in] DWORD dwBufLen,[out] LONG *plCopied,[out] LPVOID pBuf);
220    HRESULT GetCompositionStringW ([in] HIMC hIMC,[in] DWORD dwIndex,[in] DWORD dwBufLen,[out] LONG *plCopied,[out] LPVOID pBuf);
221    HRESULT GetCompositionWindow ([in] HIMC hIMC,[out] COMPOSITIONFORM *pCompForm);
222    HRESULT GetContext ([in] HWND hWnd,[out] HIMC *phIMC);
223    HRESULT GetConversionListA ([in] HKL hKL,[in] HIMC hIMC,[in] LPSTR pSrc,[in] UINT uBufLen,[in] UINT uFlag,[out] CANDIDATELIST *pDst,[out] UINT *puCopied);
224    HRESULT GetConversionListW ([in] HKL hKL,[in] HIMC hIMC,[in] LPWSTR pSrc,[in] UINT uBufLen,[in] UINT uFlag,[out] CANDIDATELIST *pDst,[out] UINT *puCopied);
225    HRESULT GetConversionStatus ([in] HIMC hIMC,[out] DWORD *pfdwConversion,[out] DWORD *pfdwSentence);
226    HRESULT GetDefaultIMEWnd ([in] HWND hWnd,[out] HWND *phDefWnd);
227    HRESULT GetDescriptionA ([in] HKL hKL,[in] UINT uBufLen,[out] LPSTR szDescription,[out] UINT *puCopied);
228    HRESULT GetDescriptionW ([in] HKL hKL,[in] UINT uBufLen,[out] LPWSTR szDescription,[out] UINT *puCopied);
229    HRESULT GetGuideLineA ([in] HIMC hIMC,[in] DWORD dwIndex,[in] DWORD dwBufLen,[out] LPSTR pBuf,[out] DWORD *pdwResult);
230    HRESULT GetGuideLineW ([in] HIMC hIMC,[in] DWORD dwIndex,[in] DWORD dwBufLen,[out] LPWSTR pBuf,[out] DWORD *pdwResult);
231    HRESULT GetIMEFileNameA ([in] HKL hKL,[in] UINT uBufLen,[out] LPSTR szFileName,[out] UINT *puCopied);
232    HRESULT GetIMEFileNameW ([in] HKL hKL,[in] UINT uBufLen,[out] LPWSTR szFileName,[out] UINT *puCopied);
233    HRESULT GetOpenStatus ([in] HIMC hIMC);
234    HRESULT GetProperty ([in] HKL hKL,[in] DWORD fdwIndex,[out] DWORD *pdwProperty);
235    HRESULT GetRegisterWordStyleA ([in] HKL hKL,[in] UINT nItem,[out] STYLEBUFA *pStyleBuf,[out] UINT *puCopied);
236    HRESULT GetRegisterWordStyleW ([in] HKL hKL,[in] UINT nItem,[out] STYLEBUFW *pStyleBuf,[out] UINT *puCopied);
237    HRESULT GetStatusWindowPos ([in] HIMC hIMC,[out] POINT *pptPos);
238    HRESULT GetVirtualKey ([in] HWND hWnd,[out] UINT *puVirtualKey);
239    HRESULT InstallIMEA ([in] LPSTR szIMEFileName,[in] LPSTR szLayoutText,[out] HKL *phKL);
240    HRESULT InstallIMEW ([in] LPWSTR szIMEFileName,[in] LPWSTR szLayoutText,[out] HKL *phKL);
241    HRESULT IsIME ([in] HKL hKL);
242    HRESULT IsUIMessageA ([in] HWND hWndIME,[in] UINT msg,[in] WPARAM wParam,[in] LPARAM lParam);
243    HRESULT IsUIMessageW ([in] HWND hWndIME,[in] UINT msg,[in] WPARAM wParam,[in] LPARAM lParam);
244    HRESULT NotifyIME ([in] HIMC hIMC,[in] DWORD dwAction,[in] DWORD dwIndex,[in] DWORD dwValue);
245    HRESULT RegisterWordA ([in] HKL hKL,[in] LPSTR szReading,[in] DWORD dwStyle,[in] LPSTR szRegister);
246    HRESULT RegisterWordW ([in] HKL hKL,[in] LPWSTR szReading,[in] DWORD dwStyle,[in] LPWSTR szRegister);
247    HRESULT ReleaseContext ([in] HWND hWnd,[in] HIMC hIMC);
248    HRESULT SetCandidateWindow ([in] HIMC hIMC,[in] CANDIDATEFORM *pCandidate);
249    HRESULT SetCompositionFontA ([in] HIMC hIMC,[in] LOGFONTA *plf);
250    HRESULT SetCompositionFontW ([in] HIMC hIMC,[in] LOGFONTW *plf);
251    HRESULT SetCompositionStringA ([in] HIMC hIMC,[in] DWORD dwIndex,[in] LPVOID pComp,[in] DWORD dwCompLen,[in] LPVOID pRead,[in] DWORD dwReadLen);
252    HRESULT SetCompositionStringW ([in] HIMC hIMC,[in] DWORD dwIndex,[in] LPVOID pComp,[in] DWORD dwCompLen,[in] LPVOID pRead,[in] DWORD dwReadLen);
253    HRESULT SetCompositionWindow ([in] HIMC hIMC,[in] COMPOSITIONFORM *pCompForm);
254    HRESULT SetConversionStatus ([in] HIMC hIMC,[in] DWORD fdwConversion,[in] DWORD fdwSentence);
255    HRESULT SetOpenStatus ([in] HIMC hIMC,[in] BOOL fOpen);
256    HRESULT SetStatusWindowPos ([in] HIMC hIMC,[in] POINT *pptPos);
257    HRESULT SimulateHotKey ([in] HWND hWnd,[in] DWORD dwHotKeyID);
258    HRESULT UnregisterWordA ([in] HKL hKL,[in] LPSTR szReading,[in] DWORD dwStyle,[in] LPSTR szUnregister);
259    HRESULT UnregisterWordW ([in] HKL hKL,[in] LPWSTR szReading,[in] DWORD dwStyle,[in] LPWSTR szUnregister);
260    HRESULT Activate ([in] BOOL fRestoreLayout);
261    HRESULT Deactivate ();
262    HRESULT OnDefWindowProc ([in] HWND hWnd,[in] UINT Msg,[in] WPARAM wParam,[in] LPARAM lParam,[out] LRESULT *plResult);
263    HRESULT FilterClientWindows ([in] ATOM *aaClassList,[in] UINT uSize);
264    HRESULT GetCodePageA ([in] HKL hKL,[out] UINT *uCodePage);
265    HRESULT GetLangId ([in] HKL hKL,[out] LANGID *plid);
266    HRESULT AssociateContextEx ([in] HWND hWnd,[in] HIMC hIMC,[in] DWORD dwFlags);
267    HRESULT DisableIME ([in] DWORD idThread);
268    HRESULT GetImeMenuItemsA ([in] HIMC hIMC,[in] DWORD dwFlags,[in] DWORD dwType,[in] IMEMENUITEMINFOA *pImeParentMenu,[out] IMEMENUITEMINFOA *pImeMenu,[in] DWORD dwSize,[out] DWORD *pdwResult);
269    HRESULT GetImeMenuItemsW ([in] HIMC hIMC,[in] DWORD dwFlags,[in] DWORD dwType,[in] IMEMENUITEMINFOW *pImeParentMenu,[out] IMEMENUITEMINFOW *pImeMenu,[in] DWORD dwSize,[out] DWORD *pdwResult);
270    HRESULT EnumInputContext ([in] DWORD idThread,[out] IEnumInputContext **ppEnum);
271  };
272
273  [object, uuid (08c03411-F96B-11d0-A475-00aa006bcc59), pointer_default (unique)]
274  interface IActiveIMMIME : IUnknown {
275    HRESULT AssociateContext ([in] HWND hWnd,[in] HIMC hIME,[out] HIMC *phPrev);
276    HRESULT ConfigureIMEA ([in] HKL hKL,[in] HWND hWnd,[in] DWORD dwMode,[in] REGISTERWORDA *pData);
277    HRESULT ConfigureIMEW ([in] HKL hKL,[in] HWND hWnd,[in] DWORD dwMode,[in] REGISTERWORDW *pData);
278    HRESULT CreateContext ([out] HIMC *phIMC);
279    HRESULT DestroyContext ([in] HIMC hIME);
280    HRESULT EnumRegisterWordA ([in] HKL hKL,[in] LPSTR szReading,[in] DWORD dwStyle,[in] LPSTR szRegister,[in] LPVOID pData,[out] IEnumRegisterWordA **pEnum);
281    HRESULT EnumRegisterWordW ([in] HKL hKL,[in] LPWSTR szReading,[in] DWORD dwStyle,[in] LPWSTR szRegister,[in] LPVOID pData,[out] IEnumRegisterWordW **pEnum);
282    HRESULT EscapeA ([in] HKL hKL,[in] HIMC hIMC,[in] UINT uEscape,[in, out] LPVOID pData,[out] LRESULT *plResult);
283    HRESULT EscapeW ([in] HKL hKL,[in] HIMC hIMC,[in] UINT uEscape,[in, out] LPVOID pData,[out] LRESULT *plResult);
284    HRESULT GetCandidateListA ([in] HIMC hIMC,[in] DWORD dwIndex,[in] UINT uBufLen,[out] CANDIDATELIST *pCandList,[out] UINT *puCopied);
285    HRESULT GetCandidateListW ([in] HIMC hIMC,[in] DWORD dwIndex,[in] UINT uBufLen,[out] CANDIDATELIST *pCandList,[out] UINT *puCopied);
286    HRESULT GetCandidateListCountA ([in] HIMC hIMC,[out] DWORD *pdwListSize,[out] DWORD *pdwBufLen);
287    HRESULT GetCandidateListCountW ([in] HIMC hIMC,[out] DWORD *pdwListSize,[out] DWORD *pdwBufLen);
288    HRESULT GetCandidateWindow ([in] HIMC hIMC,[in] DWORD dwIndex,[out] CANDIDATEFORM *pCandidate);
289    HRESULT GetCompositionFontA ([in] HIMC hIMC,[out] LOGFONTA *plf);
290    HRESULT GetCompositionFontW ([in] HIMC hIMC,[out] LOGFONTW *plf);
291    HRESULT GetCompositionStringA ([in] HIMC hIMC,[in] DWORD dwIndex,[in] DWORD dwBufLen,[out] LONG *plCopied,[out] LPVOID pBuf);
292    HRESULT GetCompositionStringW ([in] HIMC hIMC,[in] DWORD dwIndex,[in] DWORD dwBufLen,[out] LONG *plCopied,[out] LPVOID pBuf);
293    HRESULT GetCompositionWindow ([in] HIMC hIMC,[out] COMPOSITIONFORM *pCompForm);
294    HRESULT GetContext ([in] HWND hWnd,[out] HIMC *phIMC);
295    HRESULT GetConversionListA ([in] HKL hKL,[in] HIMC hIMC,[in] LPSTR pSrc,[in] UINT uBufLen,[in] UINT uFlag,[out] CANDIDATELIST *pDst,[out] UINT *puCopied);
296    HRESULT GetConversionListW ([in] HKL hKL,[in] HIMC hIMC,[in] LPWSTR pSrc,[in] UINT uBufLen,[in] UINT uFlag,[out] CANDIDATELIST *pDst,[out] UINT *puCopied);
297    HRESULT GetConversionStatus ([in] HIMC hIMC,[out] DWORD *pfdwConversion,[out] DWORD *pfdwSentence);
298    HRESULT GetDefaultIMEWnd ([in] HWND hWnd,[out] HWND *phDefWnd);
299    HRESULT GetDescriptionA ([in] HKL hKL,[in] UINT uBufLen,[out] LPSTR szDescription,[out] UINT *puCopied);
300    HRESULT GetDescriptionW ([in] HKL hKL,[in] UINT uBufLen,[out] LPWSTR szDescription,[out] UINT *puCopied);
301    HRESULT GetGuideLineA ([in] HIMC hIMC,[in] DWORD dwIndex,[in] DWORD dwBufLen,[out] LPSTR pBuf,[out] DWORD *pdwResult);
302    HRESULT GetGuideLineW ([in] HIMC hIMC,[in] DWORD dwIndex,[in] DWORD dwBufLen,[out] LPWSTR pBuf,[out] DWORD *pdwResult);
303    HRESULT GetIMEFileNameA ([in] HKL hKL,[in] UINT uBufLen,[out] LPSTR szFileName,[out] UINT *puCopied);
304    HRESULT GetIMEFileNameW ([in] HKL hKL,[in] UINT uBufLen,[out] LPWSTR szFileName,[out] UINT *puCopied);
305    HRESULT GetOpenStatus ([in] HIMC hIMC);
306    HRESULT GetProperty ([in] HKL hKL,[in] DWORD fdwIndex,[out] DWORD *pdwProperty);
307    HRESULT GetRegisterWordStyleA ([in] HKL hKL,[in] UINT nItem,[out] STYLEBUFA *pStyleBuf,[out] UINT *puCopied);
308    HRESULT GetRegisterWordStyleW ([in] HKL hKL,[in] UINT nItem,[out] STYLEBUFW *pStyleBuf,[out] UINT *puCopied);
309    HRESULT GetStatusWindowPos ([in] HIMC hIMC,[out] POINT *pptPos);
310    HRESULT GetVirtualKey ([in] HWND hWnd,[out] UINT *puVirtualKey);
311    HRESULT InstallIMEA ([in] LPSTR szIMEFileName,[in] LPSTR szLayoutText,[out] HKL *phKL);
312    HRESULT InstallIMEW ([in] LPWSTR szIMEFileName,[in] LPWSTR szLayoutText,[out] HKL *phKL);
313    HRESULT IsIME ([in] HKL hKL);
314    HRESULT IsUIMessageA ([in] HWND hWndIME,[in] UINT msg,[in] WPARAM wParam,[in] LPARAM lParam);
315    HRESULT IsUIMessageW ([in] HWND hWndIME,[in] UINT msg,[in] WPARAM wParam,[in] LPARAM lParam);
316    HRESULT NotifyIME ([in] HIMC hIMC,[in] DWORD dwAction,[in] DWORD dwIndex,[in] DWORD dwValue);
317    HRESULT RegisterWordA ([in] HKL hKL,[in] LPSTR szReading,[in] DWORD dwStyle,[in] LPSTR szRegister);
318    HRESULT RegisterWordW ([in] HKL hKL,[in] LPWSTR szReading,[in] DWORD dwStyle,[in] LPWSTR szRegister);
319    HRESULT ReleaseContext ([in] HWND hWnd,[in] HIMC hIMC);
320    HRESULT SetCandidateWindow ([in] HIMC hIMC,[in] CANDIDATEFORM *pCandidate);
321    HRESULT SetCompositionFontA ([in] HIMC hIMC,[in] LOGFONTA *plf);
322    HRESULT SetCompositionFontW ([in] HIMC hIMC,[in] LOGFONTW *plf);
323    HRESULT SetCompositionStringA ([in] HIMC hIMC,[in] DWORD dwIndex,[in] LPVOID pComp,[in] DWORD dwCompLen,[in] LPVOID pRead,[in] DWORD dwReadLen);
324    HRESULT SetCompositionStringW ([in] HIMC hIMC,[in] DWORD dwIndex,[in] LPVOID pComp,[in] DWORD dwCompLen,[in] LPVOID pRead,[in] DWORD dwReadLen);
325    HRESULT SetCompositionWindow ([in] HIMC hIMC,[in] COMPOSITIONFORM *pCompForm);
326    HRESULT SetConversionStatus ([in] HIMC hIMC,[in] DWORD fdwConversion,[in] DWORD fdwSentence);
327    HRESULT SetOpenStatus ([in] HIMC hIMC,[in] BOOL fOpen);
328    HRESULT SetStatusWindowPos ([in] HIMC hIMC,[in] POINT *pptPos);
329    HRESULT SimulateHotKey ([in] HWND hWnd,[in] DWORD dwHotKeyID);
330    HRESULT UnregisterWordA ([in] HKL hKL,[in] LPSTR szReading,[in] DWORD dwStyle,[in] LPSTR szUnregister);
331    HRESULT UnregisterWordW ([in] HKL hKL,[in] LPWSTR szReading,[in] DWORD dwStyle,[in] LPWSTR szUnregister);
332    HRESULT GenerateMessage ([in] HIMC hIMC);
333    HRESULT LockIMC ([in] HIMC hIMC,[out] INPUTCONTEXT **ppIMC);
334    HRESULT UnlockIMC ([in] HIMC hIMC);
335    HRESULT GetIMCLockCount ([in] HIMC hIMC,[out] DWORD *pdwLockCount);
336    HRESULT CreateIMCC ([in] DWORD dwSize,[out] HIMCC *phIMCC);
337    HRESULT DestroyIMCC ([in] HIMCC hIMCC);
338    HRESULT LockIMCC ([in] HIMCC hIMCC,[out] void **ppv);
339    HRESULT UnlockIMCC ([in] HIMCC hIMCC);
340    HRESULT ReSizeIMCC ([in] HIMCC hIMCC,[in] DWORD dwSize,[out] HIMCC *phIMCC);
341    HRESULT GetIMCCSize ([in] HIMCC hIMCC,[out] DWORD *pdwSize);
342    HRESULT GetIMCCLockCount ([in] HIMCC hIMCC,[out] DWORD *pdwLockCount);
343    HRESULT GetHotKey ([in] DWORD dwHotKeyID,[out] UINT *puModifiers,[out] UINT *puVKey,[out] HKL *phKL);
344    HRESULT SetHotKey ([in] DWORD dwHotKeyID,[in] UINT uModifiers,[in] UINT uVKey,[in] HKL hKL);
345    HRESULT CreateSoftKeyboard ([in] UINT uType,[in] HWND hOwner,[in] int x,[in] int y,[out] HWND *phSoftKbdWnd);
346    HRESULT DestroySoftKeyboard ([in] HWND hSoftKbdWnd);
347    HRESULT ShowSoftKeyboard ([in] HWND hSoftKbdWnd,[in] int nCmdShow);
348    HRESULT GetCodePageA ([in] HKL hKL,[out] UINT *uCodePage);
349    HRESULT GetLangId ([in] HKL hKL,[out] LANGID *plid);
350    HRESULT KeybdEvent ([in] LANGID lgidIME,[in] BYTE bVk,[in] BYTE bScan,[in] DWORD dwFlags,[in] DWORD dwExtraInfo);
351    HRESULT LockModal ();
352    HRESULT UnlockModal ();
353    HRESULT AssociateContextEx ([in] HWND hWnd,[in] HIMC hIMC,[in] DWORD dwFlags);
354    HRESULT DisableIME ([in] DWORD idThread);
355    HRESULT GetImeMenuItemsA ([in] HIMC hIMC,[in] DWORD dwFlags,[in] DWORD dwType,[in] IMEMENUITEMINFOA *pImeParentMenu,[out] IMEMENUITEMINFOA *pImeMenu,[in] DWORD dwSize,[out] DWORD *pdwResult);
356    HRESULT GetImeMenuItemsW ([in] HIMC hIMC,[in] DWORD dwFlags,[in] DWORD dwType,[in] IMEMENUITEMINFOW *pImeParentMenu,[out] IMEMENUITEMINFOW *pImeMenu,[in] DWORD dwSize,[out] DWORD *pdwResult);
357    HRESULT EnumInputContext ([in] DWORD idThread,[out] IEnumInputContext **ppEnum);
358    HRESULT RequestMessageA ([in] HIMC hIMC,[in] WPARAM wParam,[in] LPARAM lParam,[out] LRESULT *plResult);
359    HRESULT RequestMessageW ([in] HIMC hIMC,[in] WPARAM wParam,[in] LPARAM lParam,[out] LRESULT *plResult);
360    HRESULT SendIMCA ([in] HWND hWnd,[in] UINT uMsg,[in] WPARAM wParam,[in] LPARAM lParam,[out] LRESULT *plResult);
361    HRESULT SendIMCW ([in] HWND hWnd,[in] UINT uMsg,[in] WPARAM wParam,[in] LPARAM lParam,[out] LRESULT *plResult);
362    HRESULT IsSleeping ();
363  };
364
365  [object, uuid (6fe20962-D077-11d0-8fe7-00aa006bcc59), pointer_default (unique)]
366  interface IActiveIME : IUnknown {
367    HRESULT Inquire ([in] DWORD dwSystemInfoFlags,[out] IMEINFO *pIMEInfo,[out] LPWSTR szWndClass,[out] DWORD *pdwPrivate);
368    HRESULT ConversionList ([in] HIMC hIMC,[in] LPWSTR szSource,[in] UINT uFlag,[in] UINT uBufLen,[out] CANDIDATELIST *pDest,[out] UINT *puCopied);
369    HRESULT Configure ([in] HKL hKL,[in] HWND hWnd,[in] DWORD dwMode,[in] REGISTERWORDW *pRegisterWord);
370    HRESULT Destroy ([in] UINT uReserved);
371    HRESULT Escape ([in] HIMC hIMC,[in] UINT uEscape,[in, out] void *pData,[out] LRESULT *plResult);
372    HRESULT SetActiveContext ([in] HIMC hIMC,[in] BOOL fFlag);
373    HRESULT ProcessKey ([in] HIMC hIMC,[in] UINT uVirKey,[in] DWORD lParam,[in] BYTE *pbKeyState);
374    HRESULT Notify ([in] HIMC hIMC,[in] DWORD dwAction,[in] DWORD dwIndex,[in] DWORD dwValue);
375    HRESULT Select ([in] HIMC hIMC,[in] BOOL fSelect);
376    HRESULT SetCompositionString ([in] HIMC hIMC,[in] DWORD dwIndex,[in] void *pComp,[in] DWORD dwCompLen,[in] void *pRead,[in] DWORD dwReadLen);
377    HRESULT ToAsciiEx ([in] UINT uVirKey,[in] UINT uScanCode,[in] BYTE *pbKeyState,[in] UINT fuState,[in] HIMC hIMC,[out] DWORD *pdwTransBuf,[out] UINT *puSize);
378    HRESULT RegisterWord ([in] LPWSTR szReading,[in] DWORD dwStyle,[in] LPWSTR szString);
379    HRESULT UnregisterWord ([in] LPWSTR szReading,[in] DWORD dwStyle,[in] LPWSTR szString);
380    HRESULT GetRegisterWordStyle ([in] UINT nItem,[out] STYLEBUFW *pStyleBuf,[out] UINT *puBufSize);
381    HRESULT EnumRegisterWord ([in] LPWSTR szReading,[in] DWORD dwStyle,[in] LPWSTR szRegister,[in] LPVOID pData,[out] IEnumRegisterWordW **ppEnum);
382    HRESULT GetCodePageA ([out] UINT *uCodePage);
383    HRESULT GetLangId ([out] LANGID *plid);
384  };
385
386  [object, uuid (e1c4bf0e-2d53-11d2-93e1-0060b067b86e), pointer_default (unique)]
387  interface IActiveIME2 : IActiveIME {
388    HRESULT Sleep ();
389    HRESULT Unsleep ([in] BOOL fDead);
390  };
391
392  [object, uuid (08c03412-F96B-11d0-A475-00aa006bcc59), pointer_default (unique)]
393  interface IEnumRegisterWordA : IUnknown {
394    HRESULT Clone ([out] IEnumRegisterWordA **ppEnum);
395    HRESULT Next ([in] ULONG ulCount,[out] REGISTERWORDA *rgRegisterWord,[out] ULONG *pcFetched);
396    HRESULT Reset ();
397    HRESULT Skip ([in] ULONG ulCount);
398  };
399
400  [object, uuid (4955dd31-B159-11d0-8fcf-00aa006bcc59), pointer_default (unique)]
401  interface IEnumRegisterWordW : IUnknown {
402    HRESULT Clone ([out] IEnumRegisterWordW **ppEnum);
403    HRESULT Next ([in] ULONG ulCount,[out] REGISTERWORDW *rgRegisterWord,[out] ULONG *pcFetched);
404    HRESULT Reset ();
405    HRESULT Skip ([in] ULONG ulCount);
406  };
407
408  [uuid (4955dd33-B159-11d0-8fcf-00aa006bcc59)]
409  coclass CActiveIMM {
410    [default] interface IActiveIMMApp;
411    interface IActiveIMMIME;
412    interface IActiveIMMRegistrar;
413    interface IActiveIMMMessagePumpOwner;
414  };
415}
416cpp_quote("#endif")
417