exception.h: Preserve registers when calling RtlUnwind.
[wine.git] / include / dimm.idl
blob07e04b2e22f48df86a71a17b083a881760dbb47b
1 /*
2 * Copyright 2007 Jacek Caban for CodeWeavers
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
19 #ifndef DO_NO_IMPORTS
20 import "unknwn.idl";
21 #endif
23 cpp_quote("#include <imm.h>")
25 cpp_quote("#if 0")
27 typedef WORD LANGID;
29 typedef struct {
30 LPSTR lpReading;
31 LPSTR lpWord;
32 } REGISTERWORDA;
34 typedef struct {
35 LPWSTR lpReading;
36 LPWSTR lpWord;
37 } REGISTERWORDW;
39 #define LF_FACESIZE 32
41 typedef struct {
42 LONG lfHeight;
43 LONG lfWidth;
44 LONG lfEscapement;
45 LONG lfOrientation;
46 LONG lfWeight;
47 BYTE lfItalic;
48 BYTE lfUnderline;
49 BYTE lfStrikeOut;
50 BYTE lfCharSet;
51 BYTE lfOutPrecision;
52 BYTE lfClipPrecision;
53 BYTE lfQuality;
54 BYTE lfPitchAndFamily;
55 CHAR lfFaceName[LF_FACESIZE];
56 } LOGFONTA;
58 typedef struct {
59 LONG lfHeight;
60 LONG lfWidth;
61 LONG lfEscapement;
62 LONG lfOrientation;
63 LONG lfWeight;
64 BYTE lfItalic;
65 BYTE lfUnderline;
66 BYTE lfStrikeOut;
67 BYTE lfCharSet;
68 BYTE lfOutPrecision;
69 BYTE lfClipPrecision;
70 BYTE lfQuality;
71 BYTE lfPitchAndFamily;
72 WCHAR lfFaceName[LF_FACESIZE];
73 } LOGFONTW;
75 typedef DWORD HIMC;
76 typedef DWORD HIMCC;
78 typedef struct {
79 DWORD dwIndex;
80 DWORD dwStyle;
81 POINT ptCurrentPos;
82 RECT rcArea;
83 } CANDIDATEFORM;
85 typedef struct {
86 DWORD dwStyle;
87 POINT ptCurrentPos;
88 RECT rcArea;
89 } COMPOSITIONFORM;
91 typedef struct {
92 DWORD dwSize;
93 DWORD dwStyle;
94 DWORD dwCount;
95 DWORD dwSelection;
96 DWORD dwPageStart;
97 DWORD dwPageSize;
98 DWORD dwOffset[1];
99 } CANDIDATELIST;
101 #define STYLE_DESCRIPTION_SIZE 32
103 typedef struct {
104 DWORD dwStyle;
105 CHAR szDescription[STYLE_DESCRIPTION_SIZE];
106 } STYLEBUFA;
108 typedef struct {
109 DWORD dwStyle;
110 WCHAR szDescription[STYLE_DESCRIPTION_SIZE];
111 } STYLEBUFW;
113 typedef WORD ATOM;
115 #define IMEMENUITEM_STRING_SIZE 80
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;
129 typedef 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;
141 cpp_quote("#endif")
144 object,
145 uuid(08c03412-f96b-11d0-a475-00aa006bcc59),
146 pointer_default(unique)
148 interface IEnumRegisterWordA : IUnknown
150 HRESULT Clone(
151 [out] IEnumRegisterWordA **ppEnum);
153 HRESULT Next(
154 [in] ULONG ulCount,
155 [out] REGISTERWORDA *rgRegisterword,
156 [out] ULONG *pcFetched);
158 HRESULT Reset();
160 HRESULT Skip(
161 [in] ULONG ulCount);
165 object,
166 uuid(4955dd31-b159-11d0-8fcf-00aa006bcc59),
167 pointer_default(unique)
169 interface IEnumRegisterWordW : IUnknown
171 HRESULT Clone(
172 [out] IEnumRegisterWordW **ppEnum);
174 HRESULT Next(
175 [in] ULONG ulCount,
176 [out] REGISTERWORDW *rgRegisterword,
177 [out] ULONG *pcFetched);
179 HRESULT Reset();
181 HRESULT Skip(
182 [in] ULONG ulCount);
186 object,
187 uuid(09b5eab0-f997-11d1-93d4-0060b067b86e),
188 pointer_default(unique),
189 local
191 interface IEnumInputContext : IUnknown
193 HRESULT Clone(
194 [out] IEnumInputContext **ppEnum);
196 HRESULT Next(
197 [in] ULONG ulCount,
198 [out] HIMC *rgInputContext,
199 [out] ULONG *pcFetched);
201 HRESULT Reset();
203 HRESULT Skip(
204 [in] ULONG ulCount);
208 object,
209 uuid(08c0e040-62d1-11d1-9326-0060b067b86e),
210 pointer_default(unique),
211 local
213 interface IActiveIMMApp : IUnknown
215 HRESULT AssociateContext(
216 [in] HWND hWnd,
217 [in] HIMC hIME,
218 [out] HIMC *phPrev);
220 HRESULT ConfigureIMEA(
221 [in] HKL hKL,
222 [in] HWND hwnd,
223 [in] DWORD dwMode,
224 [in] REGISTERWORDA *pData);
226 HRESULT ConfigureIMEW(
227 [in] HKL hKL,
228 [in] HWND hWnd,
229 [in] DWORD dwMode,
230 [in] REGISTERWORDW *pData);
232 HRESULT CreateContext(
233 [out] HIMC *phIMC);
235 HRESULT DestroyContext(
236 [in] HIMC hIME);
238 HRESULT EnumRegisterWordA(
239 [in] HKL hKL,
240 [in] LPSTR szReading,
241 [in] DWORD dwStyle,
242 [in] LPSTR szRegister,
243 [in] LPVOID pData,
244 [out] IEnumRegisterWordA **pEnum);
246 HRESULT EnumRegisterWordW(
247 [in] HKL hKL,
248 [in] LPWSTR szReading,
249 [in] DWORD dwStyle,
250 [in] LPWSTR szRegister,
251 [in] LPVOID pData,
252 [out] IEnumRegisterWordW **pEnum);
254 HRESULT EscapeA(
255 [in] HKL hKL,
256 [in] HIMC hIMC,
257 [in] UINT uEscape,
258 [in, out] LPVOID pData,
259 [out] LRESULT *plResult);
261 HRESULT EscapeW(
262 [in] HKL hKL,
263 [in] HIMC hIMC,
264 [in] UINT uEscape,
265 [in, out] LPVOID pData,
266 [out] LRESULT *plResult);
268 HRESULT GetCandidateListA(
269 [in] HIMC hIMC,
270 [in] DWORD dwIndex,
271 [in] UINT uBufLen,
272 [out] CANDIDATELIST *pCandList,
273 [out] UINT *puCopied);
275 HRESULT GetCandidateListW(
276 [in] HIMC hIMC,
277 [in] DWORD dwIndex,
278 [in] UINT uBufLen,
279 [out] CANDIDATELIST *pCandList,
280 [out] UINT *puCopied);
282 HRESULT GetCandidateListCountA(
283 [in] HIMC hIMC,
284 [out] DWORD *pdwListSize,
285 [out] DWORD *pdwBufLen);
287 HRESULT GetCandidateListCountW(
288 [in] HIMC hIMC,
289 [out] DWORD *pdwListSize,
290 [out] DWORD *pdwBufLen);
292 HRESULT GetCandidateWindow(
293 [in] HIMC hIMC,
294 [in] DWORD dwIndex,
295 [out] CANDIDATEFORM *pCandidate);
297 HRESULT GetCompositionFontA(
298 [in] HIMC hIMC,
299 [out] LOGFONTA *plf);
301 HRESULT GetCompositionFontW(
302 [in] HIMC hIMC,
303 [out] LOGFONTW *plf);
305 HRESULT GetCompositionStringA(
306 [in] HIMC hIMC,
307 [in] DWORD dwIndex,
308 [in] DWORD dwBufLen,
309 [out] LONG *plCopied,
310 [out] LPVOID pBuf);
312 HRESULT GetCompositionStringW(
313 [in] HIMC hIMC,
314 [in] DWORD dwIndex,
315 [in] DWORD dwBufLen,
316 [out] LONG *plCopied,
317 [out] LPVOID pBuf);
319 HRESULT GetCompositionWindow(
320 [in] HIMC hIMC,
321 [out] COMPOSITIONFORM *pCompForm);
323 HRESULT GetContext(
324 [in] HWND hwnd,
325 [out] HIMC *phIMC);
327 HRESULT GetConversionListA(
328 [in] HKL hKL,
329 [in] HIMC hIMC,
330 [in] LPSTR pSrc,
331 [in] UINT uBufLen,
332 [in] UINT uFlag,
333 [out] CANDIDATELIST *pDst,
334 [out] UINT *puCopied);
336 HRESULT GetConversionListW(
337 [in] HKL hKL,
338 [in] HIMC hIMC,
339 [in] LPWSTR pSrc,
340 [in] UINT uBufLen,
341 [in] UINT uFlag,
342 [out] CANDIDATELIST *pDst,
343 [out] UINT *puCopied);
345 HRESULT GetConversionStatus(
346 [in] HIMC hIMC,
347 [out] DWORD *pfdwConversion,
348 [out] DWORD *pfdwSentence);
350 HRESULT GetDefaultIMEWnd(
351 [in] HWND hWnd,
352 [out] HWND *phDefWnd);
354 HRESULT GetDescriptionA(
355 [in] HKL hKL,
356 [in] UINT uBufLen,
357 [out] LPSTR szDescription,
358 [out] UINT *puCopied);
360 HRESULT GetDescriptionW(
361 [in] HKL hKL,
362 [in] UINT uBufLen,
363 [out] LPWSTR szDescription,
364 [out] UINT *puCopied);
366 HRESULT GetGuideLineA(
367 [in] HIMC hIMC,
368 [in] DWORD dwIndex,
369 [in] DWORD dwBufLen,
370 [out] LPSTR pBuf,
371 [out] DWORD *pdwResult);
373 HRESULT GetGuideLineW(
374 [in] HIMC hIMC,
375 [in] DWORD dwIndex,
376 [in] DWORD dwBufLen,
377 [out] LPWSTR pBuf,
378 [out] DWORD *pdwResult);
380 HRESULT GetIMEFileNameA(
381 [in] HKL hKL,
382 [in] UINT uBufLen,
383 [out] LPSTR szFileName,
384 [out] UINT *puCopied);
386 HRESULT GetIMEFileNameW(
387 [in] HKL hKL,
388 [in] UINT uBufLen,
389 [out] LPWSTR szFileName,
390 [out] UINT *puCopied);
392 HRESULT GetOpenStatus(
393 [in] HIMC hIMC);
395 HRESULT GetProperty(
396 [in] HKL hKL,
397 [in] DWORD fdwIndex,
398 [out] DWORD *pdwProperty);
400 HRESULT GetRegisterWordStyleA(
401 [in] HKL hKL,
402 [in] UINT nItem,
403 [out] STYLEBUFA *pStyleBuf,
404 [out] UINT *puCopied);
406 HRESULT GetRegisterWordStyleW(
407 [in] HKL hKL,
408 [in] UINT nItem,
409 [out] STYLEBUFW *pStyleBuf,
410 [out] UINT *puCopied);
412 HRESULT GetStatusWindowPos(
413 [in] HIMC hIMC,
414 [out] POINT *pptPos);
416 HRESULT GetVirtualKey(
417 [in] HWND hWnd,
418 [out] UINT *puVirtualKey);
420 HRESULT InstallIMEA(
421 [in] LPSTR szIMEFileName,
422 [in] LPSTR szLayoutText,
423 [out] HKL *phKL);
425 HRESULT InstallIMEW(
426 [in] LPWSTR szIMEFileName,
427 [in] LPWSTR szLayoutText,
428 [out] HKL *phKL);
430 HRESULT IsIME(
431 [in] HKL hKL);
433 HRESULT IsUIMessageA(
434 [in] HWND hWndIME,
435 [in] UINT msg,
436 [in] WPARAM wParam,
437 [in] LPARAM lParam);
439 HRESULT IsUIMessageW(
440 [in] HWND hWndIME,
441 [in] UINT msg,
442 [in] WPARAM wParam,
443 [in] LPARAM lParam);
445 HRESULT NotifyIME(
446 [in] HIMC hIMC,
447 [in] DWORD dwAction,
448 [in] DWORD dwIndex,
449 [in] DWORD dwValue);
451 HRESULT RegisterWordA(
452 [in] HKL hKL,
453 [in] LPSTR szReading,
454 [in] DWORD dwStyle,
455 [in] LPSTR szRegister);
457 HRESULT RegisterWordW(
458 [in] HKL hKL,
459 [in] LPWSTR szReading,
460 [in] DWORD dwStyle,
461 [in] LPWSTR szRegister);
463 HRESULT ReleaseContext(
464 [in] HWND hWnd,
465 [in] HIMC hIMC);
467 HRESULT SetCandidateWindow(
468 [in] HIMC hIMC,
469 [in] CANDIDATEFORM *pCandidate);
471 HRESULT SetCompositionFontA(
472 [in] HIMC hIMC,
473 [in] LOGFONTA *plf);
475 HRESULT SetCompositionFontW(
476 [in] HIMC hIMC,
477 [in] LOGFONTW *plf);
479 HRESULT SetCompositionStringA(
480 [in] HIMC hIMC,
481 [in] DWORD dwIndex,
482 [in] LPVOID pComp,
483 [in] DWORD dwCompLen,
484 [in] LPVOID pRead,
485 [in] DWORD dwReadLen);
487 HRESULT SetCompositionStringW(
488 [in] HIMC hIMC,
489 [in] DWORD dwIndex,
490 [in] LPVOID pComp,
491 [in] DWORD dwCompLen,
492 [in] LPVOID pRead,
493 [in] DWORD dwReadLen);
495 HRESULT SetCompositionWindow(
496 [in] HIMC hIMC,
497 [in] COMPOSITIONFORM *pCompForm);
499 HRESULT SetConversionStatus(
500 [in] HIMC hIMC,
501 [in] DWORD fdwConversion,
502 [in] DWORD fdwSentence);
504 HRESULT SetOpenStatus(
505 [in] HIMC hIMC,
506 [in] BOOL fOpen);
508 HRESULT SetStatusWindowPos(
509 [in] HIMC hIMC,
510 [in] POINT *pptPos);
512 HRESULT SimulateHotKey(
513 [in] HWND hwnd,
514 [in] DWORD dwHotKeyID);
516 HRESULT UnregisterWordA(
517 [in] HKL hKL,
518 [in] LPSTR szReading,
519 [in] DWORD dwStyle,
520 [in] LPSTR szUnregister);
522 HRESULT UnregisterWordW(
523 [in] HKL hKL,
524 [in] LPWSTR szReading,
525 [in] DWORD dwStyle,
526 [in] LPWSTR szUnregister);
528 HRESULT Activate(
529 [in] BOOL fRestoreLayout);
531 HRESULT Deactivate();
533 HRESULT OnDefWindowProc(
534 [in] HWND hWnd,
535 [in] UINT Msg,
536 [in] WPARAM wParam,
537 [in] LPARAM lParam,
538 [out] LRESULT *plResult);
540 HRESULT FilterClientWindows(
541 [in] ATOM *aaClassList,
542 [in] UINT uSize);
544 HRESULT GetCodePageA(
545 [in] HKL hKL,
546 [out] UINT *uCodePage);
548 HRESULT GetLangId(
549 [in] HKL hKL,
550 [out] LANGID *plid);
552 HRESULT AssociateContextEx(
553 [in] HWND hWnd,
554 [in] HIMC hIMC,
555 [in] DWORD dwFlags);
557 HRESULT DisableIME(
558 [in] DWORD idThread);
560 HRESULT GetImeMenuItemsA(
561 [in] HIMC hIMC,
562 [in] DWORD dwFlags,
563 [in] DWORD dwType,
564 [in] IMEMENUITEMINFOA *pImeParentMenu,
565 [out] IMEMENUITEMINFOA *pImeMenu,
566 [in] DWORD dwSize,
567 [out] DWORD *pdwResult);
569 HRESULT GetImeMenuItemsW(
570 [in] HIMC hIMC,
571 [in] DWORD dwFlags,
572 [in] DWORD dwType,
573 [in] IMEMENUITEMINFOW *pImeParentMenu,
574 [out] IMEMENUITEMINFOW *pImeMenu,
575 [in] DWORD dwSize,
576 [out] DWORD *pdwResult);
578 HRESULT EnumInputContext(
579 [in] DWORD idThread,
580 [out] IEnumInputContext **ppEnum);
584 uuid(4955dd33-b159-11d0-8fcf-00aa006bcc59)
586 coclass CActiveIMM
588 [default] interface IActiveIMMApp;
589 /* interface IActiveIMMIME; */
590 /* interface IActiveIMMRegistrar; */
591 /* interface IActiveIMMMessagePumpOwner; */