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