shlwapi: Added SHCreateStreamOnFileEx tests.
[wine] / include / 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 WORD LANGID;
28
29 typedef struct {
30     LPSTR lpReading;
31     LPSTR lpWord;
32 } REGISTERWORDA;
33
34 typedef struct {
35     LPWSTR lpReading;
36     LPWSTR lpWord;
37 } REGISTERWORDW;
38
39 #define LF_FACESIZE         32
40
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;
57
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;
74
75 typedef DWORD HIMC;
76 typedef DWORD HIMCC;
77
78 typedef struct {
79     DWORD dwIndex;
80     DWORD dwStyle;
81     POINT ptCurrentPos;
82     RECT  rcArea;
83 } CANDIDATEFORM;
84
85 typedef struct {
86     DWORD dwStyle;
87     POINT ptCurrentPos;
88     RECT  rcArea;
89 } COMPOSITIONFORM;
90
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;
100
101 #define STYLE_DESCRIPTION_SIZE  32
102
103 typedef struct {
104     DWORD dwStyle;
105     CHAR  szDescription[STYLE_DESCRIPTION_SIZE];
106 } STYLEBUFA;
107
108 typedef struct {
109     DWORD dwStyle;
110     WCHAR szDescription[STYLE_DESCRIPTION_SIZE];
111 } STYLEBUFW;
112
113 typedef WORD ATOM;
114
115 #define IMEMENUITEM_STRING_SIZE 80
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
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;
140
141 cpp_quote("#endif")
142
143 [
144     object,
145     uuid(08c03412-f96b-11d0-a475-00aa006bcc59),
146     pointer_default(unique)
147 ]
148 interface IEnumRegisterWordA : IUnknown
149 {
150     HRESULT Clone(
151             [out] IEnumRegisterWordA **ppEnum);
152
153     HRESULT Next(
154             [in]  ULONG ulCount,
155             [out] REGISTERWORDA *rgRegisterword,
156             [out] ULONG *pcFetched);
157
158     HRESULT Reset();
159
160     HRESULT Skip(
161             [in]  ULONG ulCount);
162 }
163
164 [
165     object,
166     uuid(4955dd31-b159-11d0-8fcf-00aa006bcc59),
167     pointer_default(unique)
168 ]
169 interface IEnumRegisterWordW : IUnknown
170 {
171     HRESULT Clone(
172             [out] IEnumRegisterWordW **ppEnum);
173
174     HRESULT Next(
175             [in]  ULONG ulCount,
176             [out] REGISTERWORDW *rgRegisterword,
177             [out] ULONG *pcFetched);
178
179     HRESULT Reset();
180
181     HRESULT Skip(
182             [in]  ULONG ulCount);
183 }
184
185 [
186     object,
187     uuid(09b5eab0-f997-11d1-93d4-0060b067b86e),
188     pointer_default(unique)
189 ]
190 interface IEnumInputContext : IUnknown
191 {
192     HRESULT Clone(
193             [out] IEnumInputContext **ppEnum);
194
195     HRESULT Next(
196             [in]  ULONG ulCount,
197             [out] HIMC *rgInputContext,
198             [out] ULONG *pcFetched);
199
200     HRESULT Reset();
201
202     HRESULT Skip(
203             [in]  ULONG ulCount);
204 }
205
206 [
207     object,
208     uuid(08c0e040-62d1-11d1-9326-0060b067b86e),
209     pointer_default(unique)
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 }