oleaut32/tests: Fix double GlobalFree in olepicture 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     local
190 ]
191 interface IEnumInputContext : IUnknown
192 {
193     HRESULT Clone(
194             [out] IEnumInputContext **ppEnum);
195
196     HRESULT Next(
197             [in]  ULONG ulCount,
198             [out] HIMC *rgInputContext,
199             [out] ULONG *pcFetched);
200
201     HRESULT Reset();
202
203     HRESULT Skip(
204             [in]  ULONG ulCount);
205 }
206
207 [
208     object,
209     uuid(08c0e040-62d1-11d1-9326-0060b067b86e),
210     pointer_default(unique),
211     local
212 ]
213 interface IActiveIMMApp : IUnknown
214 {
215     HRESULT AssociateContext(
216             [in]  HWND hWnd,
217             [in]  HIMC hIME,
218             [out] HIMC *phPrev);
219
220     HRESULT ConfigureIMEA(
221             [in]  HKL hKL,
222             [in]  HWND hwnd,
223             [in]  DWORD dwMode,
224             [in]  REGISTERWORDA *pData);
225
226     HRESULT ConfigureIMEW(
227             [in]  HKL hKL,
228             [in]  HWND hWnd,
229             [in]  DWORD dwMode,
230             [in]  REGISTERWORDW *pData);
231
232     HRESULT CreateContext(
233             [out] HIMC *phIMC);
234
235     HRESULT DestroyContext(
236             [in]  HIMC hIME);
237
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);
245
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);
253
254     HRESULT EscapeA(
255             [in]  HKL hKL,
256             [in]  HIMC hIMC,
257             [in]  UINT uEscape,
258             [in, out] LPVOID pData,
259             [out] LRESULT *plResult);
260
261     HRESULT EscapeW(
262             [in]  HKL hKL,
263             [in]  HIMC hIMC,
264             [in]  UINT uEscape,
265             [in, out] LPVOID pData,
266             [out] LRESULT *plResult);
267
268     HRESULT GetCandidateListA(
269             [in]  HIMC hIMC,
270             [in]  DWORD dwIndex,
271             [in]  UINT uBufLen,
272             [out] CANDIDATELIST *pCandList,
273             [out] UINT *puCopied);
274
275     HRESULT GetCandidateListW(
276             [in]  HIMC hIMC,
277             [in]  DWORD dwIndex,
278             [in]  UINT uBufLen,
279             [out] CANDIDATELIST *pCandList,
280             [out] UINT *puCopied);
281
282     HRESULT GetCandidateListCountA(
283             [in]  HIMC hIMC,
284             [out] DWORD *pdwListSize,
285             [out] DWORD *pdwBufLen);
286
287     HRESULT GetCandidateListCountW(
288             [in]  HIMC hIMC,
289             [out] DWORD *pdwListSize,
290             [out] DWORD *pdwBufLen);
291
292     HRESULT GetCandidateWindow(
293             [in]  HIMC hIMC,
294             [in]  DWORD dwIndex,
295             [out] CANDIDATEFORM *pCandidate);
296
297     HRESULT GetCompositionFontA(
298             [in]  HIMC hIMC,
299             [out] LOGFONTA *plf);
300
301     HRESULT GetCompositionFontW(
302             [in]  HIMC hIMC,
303             [out] LOGFONTW *plf);
304
305     HRESULT GetCompositionStringA(
306             [in]  HIMC hIMC,
307             [in]  DWORD dwIndex,
308             [in]  DWORD dwBufLen,
309             [out] LONG *plCopied,
310             [out] LPVOID pBuf);
311
312     HRESULT GetCompositionStringW(
313             [in]  HIMC hIMC,
314             [in]  DWORD dwIndex,
315             [in]  DWORD dwBufLen,
316             [out] LONG *plCopied,
317             [out] LPVOID pBuf);
318
319     HRESULT GetCompositionWindow(
320             [in]  HIMC hIMC,
321             [out] COMPOSITIONFORM *pCompForm);
322
323     HRESULT GetContext(
324             [in]  HWND hwnd,
325             [out] HIMC *phIMC);
326
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);
335
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);
344
345     HRESULT GetConversionStatus(
346             [in] HIMC hIMC,
347             [out] DWORD *pfdwConversion,
348             [out] DWORD *pfdwSentence);
349
350     HRESULT GetDefaultIMEWnd(
351             [in] HWND hWnd,
352             [out] HWND *phDefWnd);
353
354     HRESULT GetDescriptionA(
355             [in]  HKL hKL,
356             [in]  UINT uBufLen,
357             [out] LPSTR szDescription,
358             [out] UINT *puCopied);
359
360     HRESULT GetDescriptionW(
361             [in]  HKL hKL,
362             [in]  UINT uBufLen,
363             [out] LPWSTR szDescription,
364             [out] UINT *puCopied);
365
366     HRESULT GetGuideLineA(
367             [in]  HIMC hIMC,
368             [in]  DWORD dwIndex,
369             [in]  DWORD dwBufLen,
370             [out] LPSTR pBuf,
371             [out] DWORD *pdwResult);
372
373     HRESULT GetGuideLineW(
374             [in]  HIMC hIMC,
375             [in]  DWORD dwIndex,
376             [in]  DWORD dwBufLen,
377             [out] LPWSTR pBuf,
378             [out] DWORD *pdwResult);
379
380     HRESULT GetIMEFileNameA(
381             [in]  HKL hKL,
382             [in]  UINT uBufLen,
383             [out] LPSTR szFileName,
384             [out] UINT *puCopied);
385
386     HRESULT GetIMEFileNameW(
387             [in]  HKL hKL,
388             [in]  UINT uBufLen,
389             [out] LPWSTR szFileName,
390             [out] UINT *puCopied);
391
392     HRESULT GetOpenStatus(
393             [in]  HIMC hIMC);
394
395     HRESULT GetProperty(
396             [in]  HKL hKL,
397             [in]  DWORD fdwIndex,
398             [out] DWORD *pdwProperty);
399
400     HRESULT GetRegisterWordStyleA(
401             [in]  HKL hKL,
402             [in]  UINT nItem,
403             [out] STYLEBUFA *pStyleBuf,
404             [out] UINT *puCopied);
405
406     HRESULT GetRegisterWordStyleW(
407             [in]  HKL hKL,
408             [in]  UINT nItem,
409             [out] STYLEBUFW *pStyleBuf,
410             [out] UINT *puCopied);
411
412     HRESULT GetStatusWindowPos(
413             [in]  HIMC hIMC,
414             [out] POINT *pptPos);
415
416     HRESULT GetVirtualKey(
417             [in]  HWND hWnd,
418             [out] UINT *puVirtualKey);
419
420     HRESULT InstallIMEA(
421             [in]  LPSTR szIMEFileName,
422             [in]  LPSTR szLayoutText,
423             [out] HKL *phKL);
424
425     HRESULT InstallIMEW(
426             [in]  LPWSTR szIMEFileName,
427             [in]  LPWSTR szLayoutText,
428             [out] HKL *phKL);
429
430     HRESULT IsIME(
431             [in]  HKL hKL);
432
433     HRESULT IsUIMessageA(
434             [in]  HWND hWndIME,
435             [in]  UINT msg,
436             [in]  WPARAM wParam,
437             [in]  LPARAM lParam);
438
439     HRESULT IsUIMessageW(
440             [in]  HWND hWndIME,
441             [in]  UINT msg,
442             [in]  WPARAM wParam,
443             [in]  LPARAM lParam);
444
445     HRESULT NotifyIME(
446             [in]  HIMC hIMC,
447             [in]  DWORD dwAction,
448             [in]  DWORD dwIndex,
449             [in]  DWORD dwValue);
450
451     HRESULT RegisterWordA(
452             [in]  HKL hKL,
453             [in]  LPSTR szReading,
454             [in]  DWORD dwStyle,
455             [in]  LPSTR szRegister);
456
457     HRESULT RegisterWordW(
458             [in]  HKL hKL,
459             [in]  LPWSTR szReading,
460             [in]  DWORD dwStyle,
461             [in]  LPWSTR szRegister);
462
463     HRESULT ReleaseContext(
464             [in]  HWND hWnd,
465             [in]  HIMC hIMC);
466
467     HRESULT SetCandidateWindow(
468             [in]  HIMC hIMC,
469             [in]  CANDIDATEFORM *pCandidate);
470
471     HRESULT SetCompositionFontA(
472             [in]  HIMC hIMC,
473             [in]  LOGFONTA *plf);
474
475     HRESULT SetCompositionFontW(
476             [in]  HIMC hIMC,
477             [in]  LOGFONTW *plf);
478
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);
486
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);
494
495     HRESULT SetCompositionWindow(
496             [in]  HIMC hIMC,
497             [in]  COMPOSITIONFORM *pCompForm);
498
499     HRESULT SetConversionStatus(
500             [in]  HIMC hIMC,
501             [in]  DWORD fdwConversion,
502             [in]  DWORD fdwSentence);
503
504     HRESULT SetOpenStatus(
505             [in]  HIMC hIMC,
506             [in]  BOOL fOpen);
507
508     HRESULT SetStatusWindowPos(
509             [in]  HIMC hIMC,
510             [in]  POINT *pptPos);
511
512     HRESULT SimulateHotKey(
513             [in]  HWND hwnd,
514             [in]  DWORD dwHotKeyID);
515
516     HRESULT UnregisterWordA(
517             [in]  HKL hKL,
518             [in]  LPSTR szReading,
519             [in]  DWORD dwStyle,
520             [in]  LPSTR szUnregister);
521
522     HRESULT UnregisterWordW(
523             [in]  HKL hKL,
524             [in]  LPWSTR szReading,
525             [in]  DWORD dwStyle,
526             [in]  LPWSTR szUnregister);
527
528     HRESULT Activate(
529             [in]  BOOL fRestoreLayout);
530
531     HRESULT Deactivate();
532
533     HRESULT OnDefWindowProc(
534             [in]  HWND hWnd,
535             [in]  UINT Msg,
536             [in]  WPARAM wParam,
537             [in]  LPARAM lParam,
538             [out] LRESULT *plResult);
539
540     HRESULT FilterClientWindows(
541             [in]  ATOM *aaClassList,
542             [in]  UINT uSize);
543
544     HRESULT GetCodePageA(
545             [in]  HKL hKL,
546             [out] UINT *uCodePage);
547
548     HRESULT GetLangId(
549             [in]  HKL hKL,
550             [out] LANGID *plid);
551
552     HRESULT AssociateContextEx(
553             [in]  HWND hWnd,
554             [in]  HIMC hIMC,
555             [in]  DWORD dwFlags);
556
557     HRESULT DisableIME(
558             [in]  DWORD idThread);
559
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);
568
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);
577
578     HRESULT EnumInputContext(
579             [in]  DWORD idThread,
580             [out] IEnumInputContext **ppEnum);
581 }
582
583 [
584     uuid(4955dd33-b159-11d0-8fcf-00aa006bcc59)
585 ]
586 coclass CActiveIMM
587 {
588     [default] interface IActiveIMMApp;
589     /* interface IActiveIMMIME; */
590     /* interface IActiveIMMRegistrar; */
591     /* interface IActiveIMMMessagePumpOwner; */
592 }