Added support for PBS_MARQUEE style.
[wine] / include / mlang.h
1 /*** Autogenerated by WIDL 0.1 from mlang.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
4
5 #ifndef __WIDL_MLANG_H
6 #define __WIDL_MLANG_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <unknwn.h>
11 #ifndef __IStream_FWD_DEFINED__
12 #define __IStream_FWD_DEFINED__
13 typedef struct IStream IStream;
14 #endif
15
16 #ifndef __WINE_WINNT_H
17 typedef WORD LANGID;
18
19 #endif
20 #ifndef __IMLangCodePages_FWD_DEFINED__
21 #define __IMLangCodePages_FWD_DEFINED__
22 typedef struct IMLangCodePages IMLangCodePages;
23 #endif
24
25 /*****************************************************************************
26  * IMLangCodePages interface
27  */
28 #ifndef __IMLangCodePages_INTERFACE_DEFINED__
29 #define __IMLangCodePages_INTERFACE_DEFINED__
30
31 #if defined(__cplusplus) && !defined(CINTERFACE)
32 struct IMLangCodePages : public IUnknown
33 {
34     virtual HRESULT STDMETHODCALLTYPE GetCharCodePages(
35         WCHAR chSrc,
36         DWORD* pdwCodePages) = 0;
37
38     virtual HRESULT STDMETHODCALLTYPE GetStrCodePages(
39         const WCHAR* pszSrc,
40         long cchSrc,
41         DWORD dwPriorityCodePages,
42         DWORD* pdwCodePages,
43         long* pcchCodePages) = 0;
44
45     virtual HRESULT STDMETHODCALLTYPE CodePageToCodePages(
46         UINT uCodePage,
47         DWORD* pdwCodePages) = 0;
48
49     virtual HRESULT STDMETHODCALLTYPE CodePagesToCodePage(
50         DWORD dwCodePages,
51         UINT uDefaultCodePage,
52         UINT* puCodePage) = 0;
53
54 };
55 #else
56 typedef struct IMLangCodePagesVtbl IMLangCodePagesVtbl;
57 struct IMLangCodePages {
58     const IMLangCodePagesVtbl* lpVtbl;
59 };
60 struct IMLangCodePagesVtbl {
61     ICOM_MSVTABLE_COMPAT_FIELDS
62
63     /*** IUnknown methods ***/
64     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
65         IMLangCodePages* This,
66         REFIID riid,
67         void** ppvObject);
68
69     ULONG (STDMETHODCALLTYPE *AddRef)(
70         IMLangCodePages* This);
71
72     ULONG (STDMETHODCALLTYPE *Release)(
73         IMLangCodePages* This);
74
75     /*** IMLangCodePages methods ***/
76     HRESULT (STDMETHODCALLTYPE *GetCharCodePages)(
77         IMLangCodePages* This,
78         WCHAR chSrc,
79         DWORD* pdwCodePages);
80
81     HRESULT (STDMETHODCALLTYPE *GetStrCodePages)(
82         IMLangCodePages* This,
83         const WCHAR* pszSrc,
84         long cchSrc,
85         DWORD dwPriorityCodePages,
86         DWORD* pdwCodePages,
87         long* pcchCodePages);
88
89     HRESULT (STDMETHODCALLTYPE *CodePageToCodePages)(
90         IMLangCodePages* This,
91         UINT uCodePage,
92         DWORD* pdwCodePages);
93
94     HRESULT (STDMETHODCALLTYPE *CodePagesToCodePage)(
95         IMLangCodePages* This,
96         DWORD dwCodePages,
97         UINT uDefaultCodePage,
98         UINT* puCodePage);
99
100 };
101
102 /*** IUnknown methods ***/
103 #define IMLangCodePages_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
104 #define IMLangCodePages_AddRef(p) (p)->lpVtbl->AddRef(p)
105 #define IMLangCodePages_Release(p) (p)->lpVtbl->Release(p)
106 /*** IMLangCodePages methods ***/
107 #define IMLangCodePages_GetCharCodePages(p,a,b) (p)->lpVtbl->GetCharCodePages(p,a,b)
108 #define IMLangCodePages_GetStrCodePages(p,a,b,c,d,e) (p)->lpVtbl->GetStrCodePages(p,a,b,c,d,e)
109 #define IMLangCodePages_CodePageToCodePages(p,a,b) (p)->lpVtbl->CodePageToCodePages(p,a,b)
110 #define IMLangCodePages_CodePagesToCodePage(p,a,b,c) (p)->lpVtbl->CodePagesToCodePage(p,a,b,c)
111
112 #endif
113
114 #define IMLangCodePages_METHODS \
115     ICOM_MSVTABLE_COMPAT_FIELDS \
116     /*** IUnknown methods ***/ \
117     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
118     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
119     STDMETHOD_(ULONG,Release)(THIS) PURE; \
120     /*** IMLangCodePages methods ***/ \
121     STDMETHOD_(HRESULT,GetCharCodePages)(THIS_ WCHAR chSrc, DWORD* pdwCodePages) PURE; \
122     STDMETHOD_(HRESULT,GetStrCodePages)(THIS_ const WCHAR* pszSrc, long cchSrc, DWORD dwPriorityCodePages, DWORD* pdwCodePages, long* pcchCodePages) PURE; \
123     STDMETHOD_(HRESULT,CodePageToCodePages)(THIS_ UINT uCodePage, DWORD* pdwCodePages) PURE; \
124     STDMETHOD_(HRESULT,CodePagesToCodePage)(THIS_ DWORD dwCodePages, UINT uDefaultCodePage, UINT* puCodePage) PURE;
125
126 HRESULT CALLBACK IMLangCodePages_GetCharCodePages_Proxy(
127     IMLangCodePages* This,
128     WCHAR chSrc,
129     DWORD* pdwCodePages);
130 void __RPC_STUB IMLangCodePages_GetCharCodePages_Stub(
131     struct IRpcStubBuffer* This,
132     struct IRpcChannelBuffer* pRpcChannelBuffer,
133     PRPC_MESSAGE pRpcMessage,
134     DWORD* pdwStubPhase);
135 HRESULT CALLBACK IMLangCodePages_GetStrCodePages_Proxy(
136     IMLangCodePages* This,
137     const WCHAR* pszSrc,
138     long cchSrc,
139     DWORD dwPriorityCodePages,
140     DWORD* pdwCodePages,
141     long* pcchCodePages);
142 void __RPC_STUB IMLangCodePages_GetStrCodePages_Stub(
143     struct IRpcStubBuffer* This,
144     struct IRpcChannelBuffer* pRpcChannelBuffer,
145     PRPC_MESSAGE pRpcMessage,
146     DWORD* pdwStubPhase);
147 HRESULT CALLBACK IMLangCodePages_CodePageToCodePages_Proxy(
148     IMLangCodePages* This,
149     UINT uCodePage,
150     DWORD* pdwCodePages);
151 void __RPC_STUB IMLangCodePages_CodePageToCodePages_Stub(
152     struct IRpcStubBuffer* This,
153     struct IRpcChannelBuffer* pRpcChannelBuffer,
154     PRPC_MESSAGE pRpcMessage,
155     DWORD* pdwStubPhase);
156 HRESULT CALLBACK IMLangCodePages_CodePagesToCodePage_Proxy(
157     IMLangCodePages* This,
158     DWORD dwCodePages,
159     UINT uDefaultCodePage,
160     UINT* puCodePage);
161 void __RPC_STUB IMLangCodePages_CodePagesToCodePage_Stub(
162     struct IRpcStubBuffer* This,
163     struct IRpcChannelBuffer* pRpcChannelBuffer,
164     PRPC_MESSAGE pRpcMessage,
165     DWORD* pdwStubPhase);
166
167 #endif  /* __IMLangCodePages_INTERFACE_DEFINED__ */
168
169 #ifndef __IMLangFontLink_FWD_DEFINED__
170 #define __IMLangFontLink_FWD_DEFINED__
171 typedef struct IMLangFontLink IMLangFontLink;
172 #endif
173
174 /*****************************************************************************
175  * IMLangFontLink interface
176  */
177 #ifndef __IMLangFontLink_INTERFACE_DEFINED__
178 #define __IMLangFontLink_INTERFACE_DEFINED__
179
180 #if defined(__cplusplus) && !defined(CINTERFACE)
181 struct IMLangFontLink : public IMLangCodePages
182 {
183     virtual HRESULT STDMETHODCALLTYPE GetFontCodePages(
184         HDC hDC,
185         HFONT hFont,
186         DWORD* pdwCodePages) = 0;
187
188     virtual HRESULT STDMETHODCALLTYPE MapFont(
189         HDC hDC,
190         DWORD dwCodePages,
191         HFONT hSrcFont,
192         HFONT* phDestFont) = 0;
193
194     virtual HRESULT STDMETHODCALLTYPE ReleaseFont(
195         HFONT hFont) = 0;
196
197     virtual HRESULT STDMETHODCALLTYPE ResetFontMapping(
198         ) = 0;
199
200 };
201 #else
202 typedef struct IMLangFontLinkVtbl IMLangFontLinkVtbl;
203 struct IMLangFontLink {
204     const IMLangFontLinkVtbl* lpVtbl;
205 };
206 struct IMLangFontLinkVtbl {
207     ICOM_MSVTABLE_COMPAT_FIELDS
208
209     /*** IUnknown methods ***/
210     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
211         IMLangFontLink* This,
212         REFIID riid,
213         void** ppvObject);
214
215     ULONG (STDMETHODCALLTYPE *AddRef)(
216         IMLangFontLink* This);
217
218     ULONG (STDMETHODCALLTYPE *Release)(
219         IMLangFontLink* This);
220
221     /*** IMLangCodePages methods ***/
222     HRESULT (STDMETHODCALLTYPE *GetCharCodePages)(
223         IMLangFontLink* This,
224         WCHAR chSrc,
225         DWORD* pdwCodePages);
226
227     HRESULT (STDMETHODCALLTYPE *GetStrCodePages)(
228         IMLangFontLink* This,
229         const WCHAR* pszSrc,
230         long cchSrc,
231         DWORD dwPriorityCodePages,
232         DWORD* pdwCodePages,
233         long* pcchCodePages);
234
235     HRESULT (STDMETHODCALLTYPE *CodePageToCodePages)(
236         IMLangFontLink* This,
237         UINT uCodePage,
238         DWORD* pdwCodePages);
239
240     HRESULT (STDMETHODCALLTYPE *CodePagesToCodePage)(
241         IMLangFontLink* This,
242         DWORD dwCodePages,
243         UINT uDefaultCodePage,
244         UINT* puCodePage);
245
246     /*** IMLangFontLink methods ***/
247     HRESULT (STDMETHODCALLTYPE *GetFontCodePages)(
248         IMLangFontLink* This,
249         HDC hDC,
250         HFONT hFont,
251         DWORD* pdwCodePages);
252
253     HRESULT (STDMETHODCALLTYPE *MapFont)(
254         IMLangFontLink* This,
255         HDC hDC,
256         DWORD dwCodePages,
257         HFONT hSrcFont,
258         HFONT* phDestFont);
259
260     HRESULT (STDMETHODCALLTYPE *ReleaseFont)(
261         IMLangFontLink* This,
262         HFONT hFont);
263
264     HRESULT (STDMETHODCALLTYPE *ResetFontMapping)(
265         IMLangFontLink* This);
266
267 };
268
269 /*** IUnknown methods ***/
270 #define IMLangFontLink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
271 #define IMLangFontLink_AddRef(p) (p)->lpVtbl->AddRef(p)
272 #define IMLangFontLink_Release(p) (p)->lpVtbl->Release(p)
273 /*** IMLangCodePages methods ***/
274 #define IMLangFontLink_GetCharCodePages(p,a,b) (p)->lpVtbl->GetCharCodePages(p,a,b)
275 #define IMLangFontLink_GetStrCodePages(p,a,b,c,d,e) (p)->lpVtbl->GetStrCodePages(p,a,b,c,d,e)
276 #define IMLangFontLink_CodePageToCodePages(p,a,b) (p)->lpVtbl->CodePageToCodePages(p,a,b)
277 #define IMLangFontLink_CodePagesToCodePage(p,a,b,c) (p)->lpVtbl->CodePagesToCodePage(p,a,b,c)
278 /*** IMLangFontLink methods ***/
279 #define IMLangFontLink_GetFontCodePages(p,a,b,c) (p)->lpVtbl->GetFontCodePages(p,a,b,c)
280 #define IMLangFontLink_MapFont(p,a,b,c,d) (p)->lpVtbl->MapFont(p,a,b,c,d)
281 #define IMLangFontLink_ReleaseFont(p,a) (p)->lpVtbl->ReleaseFont(p,a)
282 #define IMLangFontLink_ResetFontMapping(p) (p)->lpVtbl->ResetFontMapping(p)
283
284 #endif
285
286 #define IMLangFontLink_METHODS \
287     ICOM_MSVTABLE_COMPAT_FIELDS \
288     /*** IUnknown methods ***/ \
289     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
290     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
291     STDMETHOD_(ULONG,Release)(THIS) PURE; \
292     /*** IMLangCodePages methods ***/ \
293     STDMETHOD_(HRESULT,GetCharCodePages)(THIS_ WCHAR chSrc, DWORD* pdwCodePages) PURE; \
294     STDMETHOD_(HRESULT,GetStrCodePages)(THIS_ const WCHAR* pszSrc, long cchSrc, DWORD dwPriorityCodePages, DWORD* pdwCodePages, long* pcchCodePages) PURE; \
295     STDMETHOD_(HRESULT,CodePageToCodePages)(THIS_ UINT uCodePage, DWORD* pdwCodePages) PURE; \
296     STDMETHOD_(HRESULT,CodePagesToCodePage)(THIS_ DWORD dwCodePages, UINT uDefaultCodePage, UINT* puCodePage) PURE; \
297     /*** IMLangFontLink methods ***/ \
298     STDMETHOD_(HRESULT,GetFontCodePages)(THIS_ HDC hDC, HFONT hFont, DWORD* pdwCodePages) PURE; \
299     STDMETHOD_(HRESULT,MapFont)(THIS_ HDC hDC, DWORD dwCodePages, HFONT hSrcFont, HFONT* phDestFont) PURE; \
300     STDMETHOD_(HRESULT,ReleaseFont)(THIS_ HFONT hFont) PURE; \
301     STDMETHOD_(HRESULT,ResetFontMapping)(THIS) PURE;
302
303 HRESULT CALLBACK IMLangFontLink_GetFontCodePages_Proxy(
304     IMLangFontLink* This,
305     HDC hDC,
306     HFONT hFont,
307     DWORD* pdwCodePages);
308 void __RPC_STUB IMLangFontLink_GetFontCodePages_Stub(
309     struct IRpcStubBuffer* This,
310     struct IRpcChannelBuffer* pRpcChannelBuffer,
311     PRPC_MESSAGE pRpcMessage,
312     DWORD* pdwStubPhase);
313 HRESULT CALLBACK IMLangFontLink_MapFont_Proxy(
314     IMLangFontLink* This,
315     HDC hDC,
316     DWORD dwCodePages,
317     HFONT hSrcFont,
318     HFONT* phDestFont);
319 void __RPC_STUB IMLangFontLink_MapFont_Stub(
320     struct IRpcStubBuffer* This,
321     struct IRpcChannelBuffer* pRpcChannelBuffer,
322     PRPC_MESSAGE pRpcMessage,
323     DWORD* pdwStubPhase);
324 HRESULT CALLBACK IMLangFontLink_ReleaseFont_Proxy(
325     IMLangFontLink* This,
326     HFONT hFont);
327 void __RPC_STUB IMLangFontLink_ReleaseFont_Stub(
328     struct IRpcStubBuffer* This,
329     struct IRpcChannelBuffer* pRpcChannelBuffer,
330     PRPC_MESSAGE pRpcMessage,
331     DWORD* pdwStubPhase);
332 HRESULT CALLBACK IMLangFontLink_ResetFontMapping_Proxy(
333     IMLangFontLink* This);
334 void __RPC_STUB IMLangFontLink_ResetFontMapping_Stub(
335     struct IRpcStubBuffer* This,
336     struct IRpcChannelBuffer* pRpcChannelBuffer,
337     PRPC_MESSAGE pRpcMessage,
338     DWORD* pdwStubPhase);
339
340 #endif  /* __IMLangFontLink_INTERFACE_DEFINED__ */
341
342 #ifndef __IEnumScript_FWD_DEFINED__
343 #define __IEnumScript_FWD_DEFINED__
344 typedef struct IEnumScript IEnumScript;
345 #endif
346
347 #define MAX_SCRIPT_NAME (48)
348
349 typedef BYTE SCRIPT_ID;
350
351 typedef struct tagSCRIPTINFO {
352     SCRIPT_ID ScriptId;
353     UINT uiCodePage;
354     WCHAR wszDescription[48];
355     WCHAR wszFixedWidthFont[1];
356     WCHAR wszProportionalFont[1];
357 } SCRIPTINFO, *PSCRIPTINFO;
358
359 /*****************************************************************************
360  * IEnumScript interface
361  */
362 #ifndef __IEnumScript_INTERFACE_DEFINED__
363 #define __IEnumScript_INTERFACE_DEFINED__
364
365 #if defined(__cplusplus) && !defined(CINTERFACE)
366 struct IEnumScript : public IUnknown
367 {
368     virtual HRESULT STDMETHODCALLTYPE Clone(
369         IEnumScript** ppEnum) = 0;
370
371     virtual HRESULT STDMETHODCALLTYPE Next(
372         ULONG celt,
373         PSCRIPTINFO rgelt,
374         ULONG* pceltFetched) = 0;
375
376     virtual HRESULT STDMETHODCALLTYPE Reset(
377         ) = 0;
378
379     virtual HRESULT STDMETHODCALLTYPE Skip(
380         ULONG celt) = 0;
381
382 };
383 #else
384 typedef struct IEnumScriptVtbl IEnumScriptVtbl;
385 struct IEnumScript {
386     const IEnumScriptVtbl* lpVtbl;
387 };
388 struct IEnumScriptVtbl {
389     ICOM_MSVTABLE_COMPAT_FIELDS
390
391     /*** IUnknown methods ***/
392     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
393         IEnumScript* This,
394         REFIID riid,
395         void** ppvObject);
396
397     ULONG (STDMETHODCALLTYPE *AddRef)(
398         IEnumScript* This);
399
400     ULONG (STDMETHODCALLTYPE *Release)(
401         IEnumScript* This);
402
403     /*** IEnumScript methods ***/
404     HRESULT (STDMETHODCALLTYPE *Clone)(
405         IEnumScript* This,
406         IEnumScript** ppEnum);
407
408     HRESULT (STDMETHODCALLTYPE *Next)(
409         IEnumScript* This,
410         ULONG celt,
411         PSCRIPTINFO rgelt,
412         ULONG* pceltFetched);
413
414     HRESULT (STDMETHODCALLTYPE *Reset)(
415         IEnumScript* This);
416
417     HRESULT (STDMETHODCALLTYPE *Skip)(
418         IEnumScript* This,
419         ULONG celt);
420
421 };
422
423 /*** IUnknown methods ***/
424 #define IEnumScript_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
425 #define IEnumScript_AddRef(p) (p)->lpVtbl->AddRef(p)
426 #define IEnumScript_Release(p) (p)->lpVtbl->Release(p)
427 /*** IEnumScript methods ***/
428 #define IEnumScript_Clone(p,a) (p)->lpVtbl->Clone(p,a)
429 #define IEnumScript_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
430 #define IEnumScript_Reset(p) (p)->lpVtbl->Reset(p)
431 #define IEnumScript_Skip(p,a) (p)->lpVtbl->Skip(p,a)
432
433 #endif
434
435 #define IEnumScript_METHODS \
436     ICOM_MSVTABLE_COMPAT_FIELDS \
437     /*** IUnknown methods ***/ \
438     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
439     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
440     STDMETHOD_(ULONG,Release)(THIS) PURE; \
441     /*** IEnumScript methods ***/ \
442     STDMETHOD_(HRESULT,Clone)(THIS_ IEnumScript** ppEnum) PURE; \
443     STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, PSCRIPTINFO rgelt, ULONG* pceltFetched) PURE; \
444     STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
445     STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE;
446
447 HRESULT CALLBACK IEnumScript_Clone_Proxy(
448     IEnumScript* This,
449     IEnumScript** ppEnum);
450 void __RPC_STUB IEnumScript_Clone_Stub(
451     struct IRpcStubBuffer* This,
452     struct IRpcChannelBuffer* pRpcChannelBuffer,
453     PRPC_MESSAGE pRpcMessage,
454     DWORD* pdwStubPhase);
455 HRESULT CALLBACK IEnumScript_Next_Proxy(
456     IEnumScript* This,
457     ULONG celt,
458     PSCRIPTINFO rgelt,
459     ULONG* pceltFetched);
460 void __RPC_STUB IEnumScript_Next_Stub(
461     struct IRpcStubBuffer* This,
462     struct IRpcChannelBuffer* pRpcChannelBuffer,
463     PRPC_MESSAGE pRpcMessage,
464     DWORD* pdwStubPhase);
465 HRESULT CALLBACK IEnumScript_Reset_Proxy(
466     IEnumScript* This);
467 void __RPC_STUB IEnumScript_Reset_Stub(
468     struct IRpcStubBuffer* This,
469     struct IRpcChannelBuffer* pRpcChannelBuffer,
470     PRPC_MESSAGE pRpcMessage,
471     DWORD* pdwStubPhase);
472 HRESULT CALLBACK IEnumScript_Skip_Proxy(
473     IEnumScript* This,
474     ULONG celt);
475 void __RPC_STUB IEnumScript_Skip_Stub(
476     struct IRpcStubBuffer* This,
477     struct IRpcChannelBuffer* pRpcChannelBuffer,
478     PRPC_MESSAGE pRpcMessage,
479     DWORD* pdwStubPhase);
480
481 #endif  /* __IEnumScript_INTERFACE_DEFINED__ */
482
483 #ifndef __IEnumCodePage_FWD_DEFINED__
484 #define __IEnumCodePage_FWD_DEFINED__
485 typedef struct IEnumCodePage IEnumCodePage;
486 #endif
487
488 #define MAX_MIMECP_NAME (64)
489
490 #define MAX_MIMECSET_NAME (50)
491
492 #define MAX_MIMEFACE_NAME (32)
493
494 typedef enum tagMIMECONTF {
495     MIMECONTF_MAILNEWS = 0x1,
496     MIMECONTF_BROWSER = 0x2,
497     MIMECONTF_MINIMAL = 0x4,
498     MIMECONTF_IMPORT = 0x8,
499     MIMECONTF_SAVABLE_MAILNEWS = 0x100,
500     MIMECONTF_SAVABLE_BROWSER = 0x200,
501     MIMECONTF_EXPORT = 0x400,
502     MIMECONTF_PRIVCONVERTER = 0x10000,
503     MIMECONTF_VALID = 0x20000,
504     MIMECONTF_VALID_NLS = 0x40000,
505     MIMECONTF_MIME_IE4 = 0x10000000,
506     MIMECONTF_MIME_LATEST = 0x20000000,
507     MIMECONTF_MIME_REGISTRY = 0x40000000
508 } MIMECONTF;
509
510 typedef struct tagMIMECPINFO {
511     DWORD dwFlags;
512     UINT uiCodePage;
513     UINT uiFamilyCodePage;
514     WCHAR wszDescription[64];
515     WCHAR wszWebCharset[50];
516     WCHAR wszHeaderCharset[50];
517     WCHAR wszBodyCharset[50];
518     WCHAR wszFixedWidthFont[32];
519     WCHAR wszProportionalFont[32];
520     BYTE bGDICharset;
521 } MIMECPINFO, *PMIMECPINFO;
522
523 typedef struct tagMIMECSETINFO {
524     UINT uiCodePage;
525     UINT uiInternetEncoding;
526     WCHAR wszCharset[50];
527 } MIMECSETINFO, *PMIMECSETINFO;
528
529 /*****************************************************************************
530  * IEnumCodePage interface
531  */
532 #ifndef __IEnumCodePage_INTERFACE_DEFINED__
533 #define __IEnumCodePage_INTERFACE_DEFINED__
534
535 #if defined(__cplusplus) && !defined(CINTERFACE)
536 struct IEnumCodePage : public IUnknown
537 {
538     virtual HRESULT STDMETHODCALLTYPE Clone(
539         IEnumCodePage** ppEnum) = 0;
540
541     virtual HRESULT STDMETHODCALLTYPE Next(
542         ULONG celt,
543         PMIMECPINFO rgelt,
544         ULONG* pceltFetched) = 0;
545
546     virtual HRESULT STDMETHODCALLTYPE Reset(
547         ) = 0;
548
549     virtual HRESULT STDMETHODCALLTYPE Skip(
550         ULONG celt) = 0;
551
552 };
553 #else
554 typedef struct IEnumCodePageVtbl IEnumCodePageVtbl;
555 struct IEnumCodePage {
556     const IEnumCodePageVtbl* lpVtbl;
557 };
558 struct IEnumCodePageVtbl {
559     ICOM_MSVTABLE_COMPAT_FIELDS
560
561     /*** IUnknown methods ***/
562     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
563         IEnumCodePage* This,
564         REFIID riid,
565         void** ppvObject);
566
567     ULONG (STDMETHODCALLTYPE *AddRef)(
568         IEnumCodePage* This);
569
570     ULONG (STDMETHODCALLTYPE *Release)(
571         IEnumCodePage* This);
572
573     /*** IEnumCodePage methods ***/
574     HRESULT (STDMETHODCALLTYPE *Clone)(
575         IEnumCodePage* This,
576         IEnumCodePage** ppEnum);
577
578     HRESULT (STDMETHODCALLTYPE *Next)(
579         IEnumCodePage* This,
580         ULONG celt,
581         PMIMECPINFO rgelt,
582         ULONG* pceltFetched);
583
584     HRESULT (STDMETHODCALLTYPE *Reset)(
585         IEnumCodePage* This);
586
587     HRESULT (STDMETHODCALLTYPE *Skip)(
588         IEnumCodePage* This,
589         ULONG celt);
590
591 };
592
593 /*** IUnknown methods ***/
594 #define IEnumCodePage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
595 #define IEnumCodePage_AddRef(p) (p)->lpVtbl->AddRef(p)
596 #define IEnumCodePage_Release(p) (p)->lpVtbl->Release(p)
597 /*** IEnumCodePage methods ***/
598 #define IEnumCodePage_Clone(p,a) (p)->lpVtbl->Clone(p,a)
599 #define IEnumCodePage_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
600 #define IEnumCodePage_Reset(p) (p)->lpVtbl->Reset(p)
601 #define IEnumCodePage_Skip(p,a) (p)->lpVtbl->Skip(p,a)
602
603 #endif
604
605 #define IEnumCodePage_METHODS \
606     ICOM_MSVTABLE_COMPAT_FIELDS \
607     /*** IUnknown methods ***/ \
608     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
609     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
610     STDMETHOD_(ULONG,Release)(THIS) PURE; \
611     /*** IEnumCodePage methods ***/ \
612     STDMETHOD_(HRESULT,Clone)(THIS_ IEnumCodePage** ppEnum) PURE; \
613     STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, PMIMECPINFO rgelt, ULONG* pceltFetched) PURE; \
614     STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
615     STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE;
616
617 HRESULT CALLBACK IEnumCodePage_Clone_Proxy(
618     IEnumCodePage* This,
619     IEnumCodePage** ppEnum);
620 void __RPC_STUB IEnumCodePage_Clone_Stub(
621     struct IRpcStubBuffer* This,
622     struct IRpcChannelBuffer* pRpcChannelBuffer,
623     PRPC_MESSAGE pRpcMessage,
624     DWORD* pdwStubPhase);
625 HRESULT CALLBACK IEnumCodePage_Next_Proxy(
626     IEnumCodePage* This,
627     ULONG celt,
628     PMIMECPINFO rgelt,
629     ULONG* pceltFetched);
630 void __RPC_STUB IEnumCodePage_Next_Stub(
631     struct IRpcStubBuffer* This,
632     struct IRpcChannelBuffer* pRpcChannelBuffer,
633     PRPC_MESSAGE pRpcMessage,
634     DWORD* pdwStubPhase);
635 HRESULT CALLBACK IEnumCodePage_Reset_Proxy(
636     IEnumCodePage* This);
637 void __RPC_STUB IEnumCodePage_Reset_Stub(
638     struct IRpcStubBuffer* This,
639     struct IRpcChannelBuffer* pRpcChannelBuffer,
640     PRPC_MESSAGE pRpcMessage,
641     DWORD* pdwStubPhase);
642 HRESULT CALLBACK IEnumCodePage_Skip_Proxy(
643     IEnumCodePage* This,
644     ULONG celt);
645 void __RPC_STUB IEnumCodePage_Skip_Stub(
646     struct IRpcStubBuffer* This,
647     struct IRpcChannelBuffer* pRpcChannelBuffer,
648     PRPC_MESSAGE pRpcMessage,
649     DWORD* pdwStubPhase);
650
651 #endif  /* __IEnumCodePage_INTERFACE_DEFINED__ */
652
653 #ifndef __IMLangConvertCharset_FWD_DEFINED__
654 #define __IMLangConvertCharset_FWD_DEFINED__
655 typedef struct IMLangConvertCharset IMLangConvertCharset;
656 #endif
657
658 /*****************************************************************************
659  * IMLangConvertCharset interface
660  */
661 #ifndef __IMLangConvertCharset_INTERFACE_DEFINED__
662 #define __IMLangConvertCharset_INTERFACE_DEFINED__
663
664 #if defined(__cplusplus) && !defined(CINTERFACE)
665 struct IMLangConvertCharset : public IUnknown
666 {
667     virtual HRESULT STDMETHODCALLTYPE Initialize(
668         UINT uiSrcCodePage,
669         UINT uiDstCodePage,
670         DWORD dwProperty) = 0;
671
672     virtual HRESULT STDMETHODCALLTYPE GetSourceCodePage(
673         UINT* puiSrcCodePage) = 0;
674
675     virtual HRESULT STDMETHODCALLTYPE GetDestinationCodePage(
676         UINT* puiDstCodePage) = 0;
677
678     virtual HRESULT STDMETHODCALLTYPE GetProperty(
679         DWORD* pdwProperty) = 0;
680
681     virtual HRESULT STDMETHODCALLTYPE DoConversion(
682         BYTE* pSrcStr,
683         UINT* pcSrcSize,
684         BYTE* pDstStr,
685         UINT* pcDstSize) = 0;
686
687     virtual HRESULT STDMETHODCALLTYPE DoConversionToUnicode(
688         CHAR* pSrcStr,
689         UINT* pcSrcSize,
690         WCHAR* pDstStr,
691         UINT* pcDstSize) = 0;
692
693     virtual HRESULT STDMETHODCALLTYPE DoConversionFromUnicode(
694         WCHAR* pSrcStr,
695         UINT* pcSrcSize,
696         CHAR* pDstStr,
697         UINT* pcDstSize) = 0;
698
699 };
700 #else
701 typedef struct IMLangConvertCharsetVtbl IMLangConvertCharsetVtbl;
702 struct IMLangConvertCharset {
703     const IMLangConvertCharsetVtbl* lpVtbl;
704 };
705 struct IMLangConvertCharsetVtbl {
706     ICOM_MSVTABLE_COMPAT_FIELDS
707
708     /*** IUnknown methods ***/
709     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
710         IMLangConvertCharset* This,
711         REFIID riid,
712         void** ppvObject);
713
714     ULONG (STDMETHODCALLTYPE *AddRef)(
715         IMLangConvertCharset* This);
716
717     ULONG (STDMETHODCALLTYPE *Release)(
718         IMLangConvertCharset* This);
719
720     /*** IMLangConvertCharset methods ***/
721     HRESULT (STDMETHODCALLTYPE *Initialize)(
722         IMLangConvertCharset* This,
723         UINT uiSrcCodePage,
724         UINT uiDstCodePage,
725         DWORD dwProperty);
726
727     HRESULT (STDMETHODCALLTYPE *GetSourceCodePage)(
728         IMLangConvertCharset* This,
729         UINT* puiSrcCodePage);
730
731     HRESULT (STDMETHODCALLTYPE *GetDestinationCodePage)(
732         IMLangConvertCharset* This,
733         UINT* puiDstCodePage);
734
735     HRESULT (STDMETHODCALLTYPE *GetProperty)(
736         IMLangConvertCharset* This,
737         DWORD* pdwProperty);
738
739     HRESULT (STDMETHODCALLTYPE *DoConversion)(
740         IMLangConvertCharset* This,
741         BYTE* pSrcStr,
742         UINT* pcSrcSize,
743         BYTE* pDstStr,
744         UINT* pcDstSize);
745
746     HRESULT (STDMETHODCALLTYPE *DoConversionToUnicode)(
747         IMLangConvertCharset* This,
748         CHAR* pSrcStr,
749         UINT* pcSrcSize,
750         WCHAR* pDstStr,
751         UINT* pcDstSize);
752
753     HRESULT (STDMETHODCALLTYPE *DoConversionFromUnicode)(
754         IMLangConvertCharset* This,
755         WCHAR* pSrcStr,
756         UINT* pcSrcSize,
757         CHAR* pDstStr,
758         UINT* pcDstSize);
759
760 };
761
762 /*** IUnknown methods ***/
763 #define IMLangConvertCharset_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
764 #define IMLangConvertCharset_AddRef(p) (p)->lpVtbl->AddRef(p)
765 #define IMLangConvertCharset_Release(p) (p)->lpVtbl->Release(p)
766 /*** IMLangConvertCharset methods ***/
767 #define IMLangConvertCharset_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
768 #define IMLangConvertCharset_GetSourceCodePage(p,a) (p)->lpVtbl->GetSourceCodePage(p,a)
769 #define IMLangConvertCharset_GetDestinationCodePage(p,a) (p)->lpVtbl->GetDestinationCodePage(p,a)
770 #define IMLangConvertCharset_GetProperty(p,a) (p)->lpVtbl->GetProperty(p,a)
771 #define IMLangConvertCharset_DoConversion(p,a,b,c,d) (p)->lpVtbl->DoConversion(p,a,b,c,d)
772 #define IMLangConvertCharset_DoConversionToUnicode(p,a,b,c,d) (p)->lpVtbl->DoConversionToUnicode(p,a,b,c,d)
773 #define IMLangConvertCharset_DoConversionFromUnicode(p,a,b,c,d) (p)->lpVtbl->DoConversionFromUnicode(p,a,b,c,d)
774
775 #endif
776
777 #define IMLangConvertCharset_METHODS \
778     ICOM_MSVTABLE_COMPAT_FIELDS \
779     /*** IUnknown methods ***/ \
780     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
781     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
782     STDMETHOD_(ULONG,Release)(THIS) PURE; \
783     /*** IMLangConvertCharset methods ***/ \
784     STDMETHOD_(HRESULT,Initialize)(THIS_ UINT uiSrcCodePage, UINT uiDstCodePage, DWORD dwProperty) PURE; \
785     STDMETHOD_(HRESULT,GetSourceCodePage)(THIS_ UINT* puiSrcCodePage) PURE; \
786     STDMETHOD_(HRESULT,GetDestinationCodePage)(THIS_ UINT* puiDstCodePage) PURE; \
787     STDMETHOD_(HRESULT,GetProperty)(THIS_ DWORD* pdwProperty) PURE; \
788     STDMETHOD_(HRESULT,DoConversion)(THIS_ BYTE* pSrcStr, UINT* pcSrcSize, BYTE* pDstStr, UINT* pcDstSize) PURE; \
789     STDMETHOD_(HRESULT,DoConversionToUnicode)(THIS_ CHAR* pSrcStr, UINT* pcSrcSize, WCHAR* pDstStr, UINT* pcDstSize) PURE; \
790     STDMETHOD_(HRESULT,DoConversionFromUnicode)(THIS_ WCHAR* pSrcStr, UINT* pcSrcSize, CHAR* pDstStr, UINT* pcDstSize) PURE;
791
792 HRESULT CALLBACK IMLangConvertCharset_Initialize_Proxy(
793     IMLangConvertCharset* This,
794     UINT uiSrcCodePage,
795     UINT uiDstCodePage,
796     DWORD dwProperty);
797 void __RPC_STUB IMLangConvertCharset_Initialize_Stub(
798     struct IRpcStubBuffer* This,
799     struct IRpcChannelBuffer* pRpcChannelBuffer,
800     PRPC_MESSAGE pRpcMessage,
801     DWORD* pdwStubPhase);
802 HRESULT CALLBACK IMLangConvertCharset_GetSourceCodePage_Proxy(
803     IMLangConvertCharset* This,
804     UINT* puiSrcCodePage);
805 void __RPC_STUB IMLangConvertCharset_GetSourceCodePage_Stub(
806     struct IRpcStubBuffer* This,
807     struct IRpcChannelBuffer* pRpcChannelBuffer,
808     PRPC_MESSAGE pRpcMessage,
809     DWORD* pdwStubPhase);
810 HRESULT CALLBACK IMLangConvertCharset_GetDestinationCodePage_Proxy(
811     IMLangConvertCharset* This,
812     UINT* puiDstCodePage);
813 void __RPC_STUB IMLangConvertCharset_GetDestinationCodePage_Stub(
814     struct IRpcStubBuffer* This,
815     struct IRpcChannelBuffer* pRpcChannelBuffer,
816     PRPC_MESSAGE pRpcMessage,
817     DWORD* pdwStubPhase);
818 HRESULT CALLBACK IMLangConvertCharset_GetProperty_Proxy(
819     IMLangConvertCharset* This,
820     DWORD* pdwProperty);
821 void __RPC_STUB IMLangConvertCharset_GetProperty_Stub(
822     struct IRpcStubBuffer* This,
823     struct IRpcChannelBuffer* pRpcChannelBuffer,
824     PRPC_MESSAGE pRpcMessage,
825     DWORD* pdwStubPhase);
826 HRESULT CALLBACK IMLangConvertCharset_DoConversion_Proxy(
827     IMLangConvertCharset* This,
828     BYTE* pSrcStr,
829     UINT* pcSrcSize,
830     BYTE* pDstStr,
831     UINT* pcDstSize);
832 void __RPC_STUB IMLangConvertCharset_DoConversion_Stub(
833     struct IRpcStubBuffer* This,
834     struct IRpcChannelBuffer* pRpcChannelBuffer,
835     PRPC_MESSAGE pRpcMessage,
836     DWORD* pdwStubPhase);
837 HRESULT CALLBACK IMLangConvertCharset_DoConversionToUnicode_Proxy(
838     IMLangConvertCharset* This,
839     CHAR* pSrcStr,
840     UINT* pcSrcSize,
841     WCHAR* pDstStr,
842     UINT* pcDstSize);
843 void __RPC_STUB IMLangConvertCharset_DoConversionToUnicode_Stub(
844     struct IRpcStubBuffer* This,
845     struct IRpcChannelBuffer* pRpcChannelBuffer,
846     PRPC_MESSAGE pRpcMessage,
847     DWORD* pdwStubPhase);
848 HRESULT CALLBACK IMLangConvertCharset_DoConversionFromUnicode_Proxy(
849     IMLangConvertCharset* This,
850     WCHAR* pSrcStr,
851     UINT* pcSrcSize,
852     CHAR* pDstStr,
853     UINT* pcDstSize);
854 void __RPC_STUB IMLangConvertCharset_DoConversionFromUnicode_Stub(
855     struct IRpcStubBuffer* This,
856     struct IRpcChannelBuffer* pRpcChannelBuffer,
857     PRPC_MESSAGE pRpcMessage,
858     DWORD* pdwStubPhase);
859
860 #endif  /* __IMLangConvertCharset_INTERFACE_DEFINED__ */
861
862 #ifndef __IEnumRfc1766_FWD_DEFINED__
863 #define __IEnumRfc1766_FWD_DEFINED__
864 typedef struct IEnumRfc1766 IEnumRfc1766;
865 #endif
866
867 typedef struct tagRFC1766INFO {
868     LCID lcid;
869     WCHAR wszRfc1766[1];
870     WCHAR wszLocaleName[1];
871 } RFC1766INFO, *PRFC1766INFO;
872
873 /*****************************************************************************
874  * IEnumRfc1766 interface
875  */
876 #ifndef __IEnumRfc1766_INTERFACE_DEFINED__
877 #define __IEnumRfc1766_INTERFACE_DEFINED__
878
879 #if defined(__cplusplus) && !defined(CINTERFACE)
880 struct IEnumRfc1766 : public IUnknown
881 {
882     virtual HRESULT STDMETHODCALLTYPE Clone(
883         IEnumRfc1766** ppEnum) = 0;
884
885     virtual HRESULT STDMETHODCALLTYPE Next(
886         ULONG celt,
887         PRFC1766INFO rgelt,
888         ULONG* pceltFetched) = 0;
889
890     virtual HRESULT STDMETHODCALLTYPE Reset(
891         ) = 0;
892
893     virtual HRESULT STDMETHODCALLTYPE Skip(
894         ULONG celt) = 0;
895
896 };
897 #else
898 typedef struct IEnumRfc1766Vtbl IEnumRfc1766Vtbl;
899 struct IEnumRfc1766 {
900     const IEnumRfc1766Vtbl* lpVtbl;
901 };
902 struct IEnumRfc1766Vtbl {
903     ICOM_MSVTABLE_COMPAT_FIELDS
904
905     /*** IUnknown methods ***/
906     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
907         IEnumRfc1766* This,
908         REFIID riid,
909         void** ppvObject);
910
911     ULONG (STDMETHODCALLTYPE *AddRef)(
912         IEnumRfc1766* This);
913
914     ULONG (STDMETHODCALLTYPE *Release)(
915         IEnumRfc1766* This);
916
917     /*** IEnumRfc1766 methods ***/
918     HRESULT (STDMETHODCALLTYPE *Clone)(
919         IEnumRfc1766* This,
920         IEnumRfc1766** ppEnum);
921
922     HRESULT (STDMETHODCALLTYPE *Next)(
923         IEnumRfc1766* This,
924         ULONG celt,
925         PRFC1766INFO rgelt,
926         ULONG* pceltFetched);
927
928     HRESULT (STDMETHODCALLTYPE *Reset)(
929         IEnumRfc1766* This);
930
931     HRESULT (STDMETHODCALLTYPE *Skip)(
932         IEnumRfc1766* This,
933         ULONG celt);
934
935 };
936
937 /*** IUnknown methods ***/
938 #define IEnumRfc1766_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
939 #define IEnumRfc1766_AddRef(p) (p)->lpVtbl->AddRef(p)
940 #define IEnumRfc1766_Release(p) (p)->lpVtbl->Release(p)
941 /*** IEnumRfc1766 methods ***/
942 #define IEnumRfc1766_Clone(p,a) (p)->lpVtbl->Clone(p,a)
943 #define IEnumRfc1766_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
944 #define IEnumRfc1766_Reset(p) (p)->lpVtbl->Reset(p)
945 #define IEnumRfc1766_Skip(p,a) (p)->lpVtbl->Skip(p,a)
946
947 #endif
948
949 #define IEnumRfc1766_METHODS \
950     ICOM_MSVTABLE_COMPAT_FIELDS \
951     /*** IUnknown methods ***/ \
952     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
953     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
954     STDMETHOD_(ULONG,Release)(THIS) PURE; \
955     /*** IEnumRfc1766 methods ***/ \
956     STDMETHOD_(HRESULT,Clone)(THIS_ IEnumRfc1766** ppEnum) PURE; \
957     STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, PRFC1766INFO rgelt, ULONG* pceltFetched) PURE; \
958     STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
959     STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE;
960
961 HRESULT CALLBACK IEnumRfc1766_Clone_Proxy(
962     IEnumRfc1766* This,
963     IEnumRfc1766** ppEnum);
964 void __RPC_STUB IEnumRfc1766_Clone_Stub(
965     struct IRpcStubBuffer* This,
966     struct IRpcChannelBuffer* pRpcChannelBuffer,
967     PRPC_MESSAGE pRpcMessage,
968     DWORD* pdwStubPhase);
969 HRESULT CALLBACK IEnumRfc1766_Next_Proxy(
970     IEnumRfc1766* This,
971     ULONG celt,
972     PRFC1766INFO rgelt,
973     ULONG* pceltFetched);
974 void __RPC_STUB IEnumRfc1766_Next_Stub(
975     struct IRpcStubBuffer* This,
976     struct IRpcChannelBuffer* pRpcChannelBuffer,
977     PRPC_MESSAGE pRpcMessage,
978     DWORD* pdwStubPhase);
979 HRESULT CALLBACK IEnumRfc1766_Reset_Proxy(
980     IEnumRfc1766* This);
981 void __RPC_STUB IEnumRfc1766_Reset_Stub(
982     struct IRpcStubBuffer* This,
983     struct IRpcChannelBuffer* pRpcChannelBuffer,
984     PRPC_MESSAGE pRpcMessage,
985     DWORD* pdwStubPhase);
986 HRESULT CALLBACK IEnumRfc1766_Skip_Proxy(
987     IEnumRfc1766* This,
988     ULONG celt);
989 void __RPC_STUB IEnumRfc1766_Skip_Stub(
990     struct IRpcStubBuffer* This,
991     struct IRpcChannelBuffer* pRpcChannelBuffer,
992     PRPC_MESSAGE pRpcMessage,
993     DWORD* pdwStubPhase);
994
995 #endif  /* __IEnumRfc1766_INTERFACE_DEFINED__ */
996
997 #ifndef __IMultiLanguage_FWD_DEFINED__
998 #define __IMultiLanguage_FWD_DEFINED__
999 typedef struct IMultiLanguage IMultiLanguage;
1000 #endif
1001
1002 /*****************************************************************************
1003  * IMultiLanguage interface
1004  */
1005 #ifndef __IMultiLanguage_INTERFACE_DEFINED__
1006 #define __IMultiLanguage_INTERFACE_DEFINED__
1007
1008 #if defined(__cplusplus) && !defined(CINTERFACE)
1009 struct IMultiLanguage : public IUnknown
1010 {
1011     virtual HRESULT STDMETHODCALLTYPE GetNumberOfCodePageInfo(
1012         UINT* pcCodePage) = 0;
1013
1014     virtual HRESULT STDMETHODCALLTYPE GetCodePageInfo(
1015         UINT uiCodePage,
1016         PMIMECPINFO pCodePageInfo) = 0;
1017
1018     virtual HRESULT STDMETHODCALLTYPE GetFamilyCodePage(
1019         UINT uiCodePage,
1020         UINT* puiFamilyCodePage) = 0;
1021
1022     virtual HRESULT STDMETHODCALLTYPE EnumCodePages(
1023         DWORD grfFlags,
1024         IEnumCodePage** ppEnumCodePage) = 0;
1025
1026     virtual HRESULT STDMETHODCALLTYPE GetCharsetInfo(
1027         BSTR Charset,
1028         PMIMECSETINFO pCharsetInfo) = 0;
1029
1030     virtual HRESULT STDMETHODCALLTYPE IsConvertible(
1031         DWORD dwSrcEncoding,
1032         DWORD dwDstEncoding) = 0;
1033
1034     virtual HRESULT STDMETHODCALLTYPE ConvertString(
1035         DWORD* pdwMode,
1036         DWORD dwSrcEncoding,
1037         DWORD dwDstEncoding,
1038         BYTE* pSrcStr,
1039         UINT* pcSrcSize,
1040         BYTE* pDstStr,
1041         UINT* pcDstSize) = 0;
1042
1043     virtual HRESULT STDMETHODCALLTYPE ConvertStringToUnicode(
1044         DWORD* pdwMode,
1045         DWORD dwEncoding,
1046         CHAR* pSrcStr,
1047         UINT* pcSrcSize,
1048         WCHAR* pDstStr,
1049         UINT* pcDstSize) = 0;
1050
1051     virtual HRESULT STDMETHODCALLTYPE ConvertStringFromUnicode(
1052         DWORD* pdwMode,
1053         DWORD dwEncoding,
1054         WCHAR* pSrcStr,
1055         UINT* pcSrcSize,
1056         CHAR* pDstStr,
1057         UINT* pcDstSize) = 0;
1058
1059     virtual HRESULT STDMETHODCALLTYPE ConvertStringReset(
1060         ) = 0;
1061
1062     virtual HRESULT STDMETHODCALLTYPE GetRfc1766FromLcid(
1063         LCID Locale,
1064         BSTR* pbstrRfc1766) = 0;
1065
1066     virtual HRESULT STDMETHODCALLTYPE GetLcidFromRfc1766(
1067         LCID* pLocale,
1068         BSTR bstrRfc1766) = 0;
1069
1070     virtual HRESULT STDMETHODCALLTYPE EnumRfc1766(
1071         IEnumRfc1766** ppEnumRfc1766) = 0;
1072
1073     virtual HRESULT STDMETHODCALLTYPE GetRfc1766Info(
1074         LCID Locale,
1075         PRFC1766INFO pRfc1766Info) = 0;
1076
1077     virtual HRESULT STDMETHODCALLTYPE CreateConvertCharset(
1078         UINT uiSrcCodePage,
1079         UINT uiDstCodePage,
1080         DWORD dwProperty,
1081         IMLangConvertCharset** ppMLangConvertCharset) = 0;
1082
1083 };
1084 #else
1085 typedef struct IMultiLanguageVtbl IMultiLanguageVtbl;
1086 struct IMultiLanguage {
1087     const IMultiLanguageVtbl* lpVtbl;
1088 };
1089 struct IMultiLanguageVtbl {
1090     ICOM_MSVTABLE_COMPAT_FIELDS
1091
1092     /*** IUnknown methods ***/
1093     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1094         IMultiLanguage* This,
1095         REFIID riid,
1096         void** ppvObject);
1097
1098     ULONG (STDMETHODCALLTYPE *AddRef)(
1099         IMultiLanguage* This);
1100
1101     ULONG (STDMETHODCALLTYPE *Release)(
1102         IMultiLanguage* This);
1103
1104     /*** IMultiLanguage methods ***/
1105     HRESULT (STDMETHODCALLTYPE *GetNumberOfCodePageInfo)(
1106         IMultiLanguage* This,
1107         UINT* pcCodePage);
1108
1109     HRESULT (STDMETHODCALLTYPE *GetCodePageInfo)(
1110         IMultiLanguage* This,
1111         UINT uiCodePage,
1112         PMIMECPINFO pCodePageInfo);
1113
1114     HRESULT (STDMETHODCALLTYPE *GetFamilyCodePage)(
1115         IMultiLanguage* This,
1116         UINT uiCodePage,
1117         UINT* puiFamilyCodePage);
1118
1119     HRESULT (STDMETHODCALLTYPE *EnumCodePages)(
1120         IMultiLanguage* This,
1121         DWORD grfFlags,
1122         IEnumCodePage** ppEnumCodePage);
1123
1124     HRESULT (STDMETHODCALLTYPE *GetCharsetInfo)(
1125         IMultiLanguage* This,
1126         BSTR Charset,
1127         PMIMECSETINFO pCharsetInfo);
1128
1129     HRESULT (STDMETHODCALLTYPE *IsConvertible)(
1130         IMultiLanguage* This,
1131         DWORD dwSrcEncoding,
1132         DWORD dwDstEncoding);
1133
1134     HRESULT (STDMETHODCALLTYPE *ConvertString)(
1135         IMultiLanguage* This,
1136         DWORD* pdwMode,
1137         DWORD dwSrcEncoding,
1138         DWORD dwDstEncoding,
1139         BYTE* pSrcStr,
1140         UINT* pcSrcSize,
1141         BYTE* pDstStr,
1142         UINT* pcDstSize);
1143
1144     HRESULT (STDMETHODCALLTYPE *ConvertStringToUnicode)(
1145         IMultiLanguage* This,
1146         DWORD* pdwMode,
1147         DWORD dwEncoding,
1148         CHAR* pSrcStr,
1149         UINT* pcSrcSize,
1150         WCHAR* pDstStr,
1151         UINT* pcDstSize);
1152
1153     HRESULT (STDMETHODCALLTYPE *ConvertStringFromUnicode)(
1154         IMultiLanguage* This,
1155         DWORD* pdwMode,
1156         DWORD dwEncoding,
1157         WCHAR* pSrcStr,
1158         UINT* pcSrcSize,
1159         CHAR* pDstStr,
1160         UINT* pcDstSize);
1161
1162     HRESULT (STDMETHODCALLTYPE *ConvertStringReset)(
1163         IMultiLanguage* This);
1164
1165     HRESULT (STDMETHODCALLTYPE *GetRfc1766FromLcid)(
1166         IMultiLanguage* This,
1167         LCID Locale,
1168         BSTR* pbstrRfc1766);
1169
1170     HRESULT (STDMETHODCALLTYPE *GetLcidFromRfc1766)(
1171         IMultiLanguage* This,
1172         LCID* pLocale,
1173         BSTR bstrRfc1766);
1174
1175     HRESULT (STDMETHODCALLTYPE *EnumRfc1766)(
1176         IMultiLanguage* This,
1177         IEnumRfc1766** ppEnumRfc1766);
1178
1179     HRESULT (STDMETHODCALLTYPE *GetRfc1766Info)(
1180         IMultiLanguage* This,
1181         LCID Locale,
1182         PRFC1766INFO pRfc1766Info);
1183
1184     HRESULT (STDMETHODCALLTYPE *CreateConvertCharset)(
1185         IMultiLanguage* This,
1186         UINT uiSrcCodePage,
1187         UINT uiDstCodePage,
1188         DWORD dwProperty,
1189         IMLangConvertCharset** ppMLangConvertCharset);
1190
1191 };
1192
1193 /*** IUnknown methods ***/
1194 #define IMultiLanguage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1195 #define IMultiLanguage_AddRef(p) (p)->lpVtbl->AddRef(p)
1196 #define IMultiLanguage_Release(p) (p)->lpVtbl->Release(p)
1197 /*** IMultiLanguage methods ***/
1198 #define IMultiLanguage_GetNumberOfCodePageInfo(p,a) (p)->lpVtbl->GetNumberOfCodePageInfo(p,a)
1199 #define IMultiLanguage_GetCodePageInfo(p,a,b) (p)->lpVtbl->GetCodePageInfo(p,a,b)
1200 #define IMultiLanguage_GetFamilyCodePage(p,a,b) (p)->lpVtbl->GetFamilyCodePage(p,a,b)
1201 #define IMultiLanguage_EnumCodePages(p,a,b) (p)->lpVtbl->EnumCodePages(p,a,b)
1202 #define IMultiLanguage_GetCharsetInfo(p,a,b) (p)->lpVtbl->GetCharsetInfo(p,a,b)
1203 #define IMultiLanguage_IsConvertible(p,a,b) (p)->lpVtbl->IsConvertible(p,a,b)
1204 #define IMultiLanguage_ConvertString(p,a,b,c,d,e,f,g) (p)->lpVtbl->ConvertString(p,a,b,c,d,e,f,g)
1205 #define IMultiLanguage_ConvertStringToUnicode(p,a,b,c,d,e,f) (p)->lpVtbl->ConvertStringToUnicode(p,a,b,c,d,e,f)
1206 #define IMultiLanguage_ConvertStringFromUnicode(p,a,b,c,d,e,f) (p)->lpVtbl->ConvertStringFromUnicode(p,a,b,c,d,e,f)
1207 #define IMultiLanguage_ConvertStringReset(p) (p)->lpVtbl->ConvertStringReset(p)
1208 #define IMultiLanguage_GetRfc1766FromLcid(p,a,b) (p)->lpVtbl->GetRfc1766FromLcid(p,a,b)
1209 #define IMultiLanguage_GetLcidFromRfc1766(p,a,b) (p)->lpVtbl->GetLcidFromRfc1766(p,a,b)
1210 #define IMultiLanguage_EnumRfc1766(p,a) (p)->lpVtbl->EnumRfc1766(p,a)
1211 #define IMultiLanguage_GetRfc1766Info(p,a,b) (p)->lpVtbl->GetRfc1766Info(p,a,b)
1212 #define IMultiLanguage_CreateConvertCharset(p,a,b,c,d) (p)->lpVtbl->CreateConvertCharset(p,a,b,c,d)
1213
1214 #endif
1215
1216 #define IMultiLanguage_METHODS \
1217     ICOM_MSVTABLE_COMPAT_FIELDS \
1218     /*** IUnknown methods ***/ \
1219     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1220     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1221     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1222     /*** IMultiLanguage methods ***/ \
1223     STDMETHOD_(HRESULT,GetNumberOfCodePageInfo)(THIS_ UINT* pcCodePage) PURE; \
1224     STDMETHOD_(HRESULT,GetCodePageInfo)(THIS_ UINT uiCodePage, PMIMECPINFO pCodePageInfo) PURE; \
1225     STDMETHOD_(HRESULT,GetFamilyCodePage)(THIS_ UINT uiCodePage, UINT* puiFamilyCodePage) PURE; \
1226     STDMETHOD_(HRESULT,EnumCodePages)(THIS_ DWORD grfFlags, IEnumCodePage** ppEnumCodePage) PURE; \
1227     STDMETHOD_(HRESULT,GetCharsetInfo)(THIS_ BSTR Charset, PMIMECSETINFO pCharsetInfo) PURE; \
1228     STDMETHOD_(HRESULT,IsConvertible)(THIS_ DWORD dwSrcEncoding, DWORD dwDstEncoding) PURE; \
1229     STDMETHOD_(HRESULT,ConvertString)(THIS_ DWORD* pdwMode, DWORD dwSrcEncoding, DWORD dwDstEncoding, BYTE* pSrcStr, UINT* pcSrcSize, BYTE* pDstStr, UINT* pcDstSize) PURE; \
1230     STDMETHOD_(HRESULT,ConvertStringToUnicode)(THIS_ DWORD* pdwMode, DWORD dwEncoding, CHAR* pSrcStr, UINT* pcSrcSize, WCHAR* pDstStr, UINT* pcDstSize) PURE; \
1231     STDMETHOD_(HRESULT,ConvertStringFromUnicode)(THIS_ DWORD* pdwMode, DWORD dwEncoding, WCHAR* pSrcStr, UINT* pcSrcSize, CHAR* pDstStr, UINT* pcDstSize) PURE; \
1232     STDMETHOD_(HRESULT,ConvertStringReset)(THIS) PURE; \
1233     STDMETHOD_(HRESULT,GetRfc1766FromLcid)(THIS_ LCID Locale, BSTR* pbstrRfc1766) PURE; \
1234     STDMETHOD_(HRESULT,GetLcidFromRfc1766)(THIS_ LCID* pLocale, BSTR bstrRfc1766) PURE; \
1235     STDMETHOD_(HRESULT,EnumRfc1766)(THIS_ IEnumRfc1766** ppEnumRfc1766) PURE; \
1236     STDMETHOD_(HRESULT,GetRfc1766Info)(THIS_ LCID Locale, PRFC1766INFO pRfc1766Info) PURE; \
1237     STDMETHOD_(HRESULT,CreateConvertCharset)(THIS_ UINT uiSrcCodePage, UINT uiDstCodePage, DWORD dwProperty, IMLangConvertCharset** ppMLangConvertCharset) PURE;
1238
1239 HRESULT CALLBACK IMultiLanguage_GetNumberOfCodePageInfo_Proxy(
1240     IMultiLanguage* This,
1241     UINT* pcCodePage);
1242 void __RPC_STUB IMultiLanguage_GetNumberOfCodePageInfo_Stub(
1243     struct IRpcStubBuffer* This,
1244     struct IRpcChannelBuffer* pRpcChannelBuffer,
1245     PRPC_MESSAGE pRpcMessage,
1246     DWORD* pdwStubPhase);
1247 HRESULT CALLBACK IMultiLanguage_GetCodePageInfo_Proxy(
1248     IMultiLanguage* This,
1249     UINT uiCodePage,
1250     PMIMECPINFO pCodePageInfo);
1251 void __RPC_STUB IMultiLanguage_GetCodePageInfo_Stub(
1252     struct IRpcStubBuffer* This,
1253     struct IRpcChannelBuffer* pRpcChannelBuffer,
1254     PRPC_MESSAGE pRpcMessage,
1255     DWORD* pdwStubPhase);
1256 HRESULT CALLBACK IMultiLanguage_GetFamilyCodePage_Proxy(
1257     IMultiLanguage* This,
1258     UINT uiCodePage,
1259     UINT* puiFamilyCodePage);
1260 void __RPC_STUB IMultiLanguage_GetFamilyCodePage_Stub(
1261     struct IRpcStubBuffer* This,
1262     struct IRpcChannelBuffer* pRpcChannelBuffer,
1263     PRPC_MESSAGE pRpcMessage,
1264     DWORD* pdwStubPhase);
1265 HRESULT CALLBACK IMultiLanguage_EnumCodePages_Proxy(
1266     IMultiLanguage* This,
1267     DWORD grfFlags,
1268     IEnumCodePage** ppEnumCodePage);
1269 void __RPC_STUB IMultiLanguage_EnumCodePages_Stub(
1270     struct IRpcStubBuffer* This,
1271     struct IRpcChannelBuffer* pRpcChannelBuffer,
1272     PRPC_MESSAGE pRpcMessage,
1273     DWORD* pdwStubPhase);
1274 HRESULT CALLBACK IMultiLanguage_GetCharsetInfo_Proxy(
1275     IMultiLanguage* This,
1276     BSTR Charset,
1277     PMIMECSETINFO pCharsetInfo);
1278 void __RPC_STUB IMultiLanguage_GetCharsetInfo_Stub(
1279     struct IRpcStubBuffer* This,
1280     struct IRpcChannelBuffer* pRpcChannelBuffer,
1281     PRPC_MESSAGE pRpcMessage,
1282     DWORD* pdwStubPhase);
1283 HRESULT CALLBACK IMultiLanguage_IsConvertible_Proxy(
1284     IMultiLanguage* This,
1285     DWORD dwSrcEncoding,
1286     DWORD dwDstEncoding);
1287 void __RPC_STUB IMultiLanguage_IsConvertible_Stub(
1288     struct IRpcStubBuffer* This,
1289     struct IRpcChannelBuffer* pRpcChannelBuffer,
1290     PRPC_MESSAGE pRpcMessage,
1291     DWORD* pdwStubPhase);
1292 HRESULT CALLBACK IMultiLanguage_ConvertString_Proxy(
1293     IMultiLanguage* This,
1294     DWORD* pdwMode,
1295     DWORD dwSrcEncoding,
1296     DWORD dwDstEncoding,
1297     BYTE* pSrcStr,
1298     UINT* pcSrcSize,
1299     BYTE* pDstStr,
1300     UINT* pcDstSize);
1301 void __RPC_STUB IMultiLanguage_ConvertString_Stub(
1302     struct IRpcStubBuffer* This,
1303     struct IRpcChannelBuffer* pRpcChannelBuffer,
1304     PRPC_MESSAGE pRpcMessage,
1305     DWORD* pdwStubPhase);
1306 HRESULT CALLBACK IMultiLanguage_ConvertStringToUnicode_Proxy(
1307     IMultiLanguage* This,
1308     DWORD* pdwMode,
1309     DWORD dwEncoding,
1310     CHAR* pSrcStr,
1311     UINT* pcSrcSize,
1312     WCHAR* pDstStr,
1313     UINT* pcDstSize);
1314 void __RPC_STUB IMultiLanguage_ConvertStringToUnicode_Stub(
1315     struct IRpcStubBuffer* This,
1316     struct IRpcChannelBuffer* pRpcChannelBuffer,
1317     PRPC_MESSAGE pRpcMessage,
1318     DWORD* pdwStubPhase);
1319 HRESULT CALLBACK IMultiLanguage_ConvertStringFromUnicode_Proxy(
1320     IMultiLanguage* This,
1321     DWORD* pdwMode,
1322     DWORD dwEncoding,
1323     WCHAR* pSrcStr,
1324     UINT* pcSrcSize,
1325     CHAR* pDstStr,
1326     UINT* pcDstSize);
1327 void __RPC_STUB IMultiLanguage_ConvertStringFromUnicode_Stub(
1328     struct IRpcStubBuffer* This,
1329     struct IRpcChannelBuffer* pRpcChannelBuffer,
1330     PRPC_MESSAGE pRpcMessage,
1331     DWORD* pdwStubPhase);
1332 HRESULT CALLBACK IMultiLanguage_ConvertStringReset_Proxy(
1333     IMultiLanguage* This);
1334 void __RPC_STUB IMultiLanguage_ConvertStringReset_Stub(
1335     struct IRpcStubBuffer* This,
1336     struct IRpcChannelBuffer* pRpcChannelBuffer,
1337     PRPC_MESSAGE pRpcMessage,
1338     DWORD* pdwStubPhase);
1339 HRESULT CALLBACK IMultiLanguage_GetRfc1766FromLcid_Proxy(
1340     IMultiLanguage* This,
1341     LCID Locale,
1342     BSTR* pbstrRfc1766);
1343 void __RPC_STUB IMultiLanguage_GetRfc1766FromLcid_Stub(
1344     struct IRpcStubBuffer* This,
1345     struct IRpcChannelBuffer* pRpcChannelBuffer,
1346     PRPC_MESSAGE pRpcMessage,
1347     DWORD* pdwStubPhase);
1348 HRESULT CALLBACK IMultiLanguage_GetLcidFromRfc1766_Proxy(
1349     IMultiLanguage* This,
1350     LCID* pLocale,
1351     BSTR bstrRfc1766);
1352 void __RPC_STUB IMultiLanguage_GetLcidFromRfc1766_Stub(
1353     struct IRpcStubBuffer* This,
1354     struct IRpcChannelBuffer* pRpcChannelBuffer,
1355     PRPC_MESSAGE pRpcMessage,
1356     DWORD* pdwStubPhase);
1357 HRESULT CALLBACK IMultiLanguage_EnumRfc1766_Proxy(
1358     IMultiLanguage* This,
1359     IEnumRfc1766** ppEnumRfc1766);
1360 void __RPC_STUB IMultiLanguage_EnumRfc1766_Stub(
1361     struct IRpcStubBuffer* This,
1362     struct IRpcChannelBuffer* pRpcChannelBuffer,
1363     PRPC_MESSAGE pRpcMessage,
1364     DWORD* pdwStubPhase);
1365 HRESULT CALLBACK IMultiLanguage_GetRfc1766Info_Proxy(
1366     IMultiLanguage* This,
1367     LCID Locale,
1368     PRFC1766INFO pRfc1766Info);
1369 void __RPC_STUB IMultiLanguage_GetRfc1766Info_Stub(
1370     struct IRpcStubBuffer* This,
1371     struct IRpcChannelBuffer* pRpcChannelBuffer,
1372     PRPC_MESSAGE pRpcMessage,
1373     DWORD* pdwStubPhase);
1374 HRESULT CALLBACK IMultiLanguage_CreateConvertCharset_Proxy(
1375     IMultiLanguage* This,
1376     UINT uiSrcCodePage,
1377     UINT uiDstCodePage,
1378     DWORD dwProperty,
1379     IMLangConvertCharset** ppMLangConvertCharset);
1380 void __RPC_STUB IMultiLanguage_CreateConvertCharset_Stub(
1381     struct IRpcStubBuffer* This,
1382     struct IRpcChannelBuffer* pRpcChannelBuffer,
1383     PRPC_MESSAGE pRpcMessage,
1384     DWORD* pdwStubPhase);
1385
1386 #endif  /* __IMultiLanguage_INTERFACE_DEFINED__ */
1387
1388 #ifndef __IMultiLanguage2_FWD_DEFINED__
1389 #define __IMultiLanguage2_FWD_DEFINED__
1390 typedef struct IMultiLanguage2 IMultiLanguage2;
1391 #endif
1392
1393 typedef struct tagDetectEncodingInfo {
1394     UINT nLangID;
1395     UINT nCodePage;
1396     INT nDocPercent;
1397     INT nConfidence;
1398 } DetectEncodingInfo, *pDetectEncodingInfo;
1399
1400 /*****************************************************************************
1401  * IMultiLanguage2 interface
1402  */
1403 #ifndef __IMultiLanguage2_INTERFACE_DEFINED__
1404 #define __IMultiLanguage2_INTERFACE_DEFINED__
1405
1406 #if defined(__cplusplus) && !defined(CINTERFACE)
1407 struct IMultiLanguage2 : public IUnknown
1408 {
1409     virtual HRESULT STDMETHODCALLTYPE GetNumberOfCodePageInfo(
1410         UINT* pcCodePage) = 0;
1411
1412     virtual HRESULT STDMETHODCALLTYPE GetCodePageInfo(
1413         UINT uiCodePage,
1414         LANGID LangId,
1415         PMIMECPINFO pCodePageInfo) = 0;
1416
1417     virtual HRESULT STDMETHODCALLTYPE GetFamilyCodePage(
1418         UINT uiCodePage,
1419         UINT* puiFamilyCodePage) = 0;
1420
1421     virtual HRESULT STDMETHODCALLTYPE EnumCodePages(
1422         DWORD grfFlags,
1423         LANGID LangId,
1424         IEnumCodePage** ppEnumCodePage) = 0;
1425
1426     virtual HRESULT STDMETHODCALLTYPE GetCharsetInfo(
1427         BSTR Charset,
1428         PMIMECSETINFO pCharsetInfo) = 0;
1429
1430     virtual HRESULT STDMETHODCALLTYPE IsConvertible(
1431         DWORD dwSrcEncoding,
1432         DWORD dwDstEncoding) = 0;
1433
1434     virtual HRESULT STDMETHODCALLTYPE ConvertString(
1435         DWORD* pdwMode,
1436         DWORD dwSrcEncoding,
1437         DWORD dwDstEncoding,
1438         BYTE* pSrcStr,
1439         UINT* pcSrcSize,
1440         BYTE* pDstStr,
1441         UINT* pcDstSize) = 0;
1442
1443     virtual HRESULT STDMETHODCALLTYPE ConvertStringToUnicode(
1444         DWORD* pdwMode,
1445         DWORD dwEncoding,
1446         CHAR* pSrcStr,
1447         UINT* pcSrcSize,
1448         WCHAR* pDstStr,
1449         UINT* pcDstSize) = 0;
1450
1451     virtual HRESULT STDMETHODCALLTYPE ConvertStringFromUnicode(
1452         DWORD* pdwMode,
1453         DWORD dwEncoding,
1454         WCHAR* pSrcStr,
1455         UINT* pcSrcSize,
1456         CHAR* pDstStr,
1457         UINT* pcDstSize) = 0;
1458
1459     virtual HRESULT STDMETHODCALLTYPE ConvertStringReset(
1460         ) = 0;
1461
1462     virtual HRESULT STDMETHODCALLTYPE GetRfc1766FromLcid(
1463         LCID Locale,
1464         BSTR* pbstrRfc1766) = 0;
1465
1466     virtual HRESULT STDMETHODCALLTYPE GetLcidFromRfc1766(
1467         LCID* pLocale,
1468         BSTR bstrRfc1766) = 0;
1469
1470     virtual HRESULT STDMETHODCALLTYPE EnumRfc1766(
1471         LANGID LangId,
1472         IEnumRfc1766** ppEnumRfc1766) = 0;
1473
1474     virtual HRESULT STDMETHODCALLTYPE GetRfc1766Info(
1475         LCID Locale,
1476         LANGID LangId,
1477         PRFC1766INFO pRfc1766Info) = 0;
1478
1479     virtual HRESULT STDMETHODCALLTYPE CreateConvertCharset(
1480         UINT uiSrcCodePage,
1481         UINT uiDstCodePage,
1482         DWORD dwProperty,
1483         IMLangConvertCharset** ppMLangConvertCharset) = 0;
1484
1485     virtual HRESULT STDMETHODCALLTYPE ConvertStringInIStream(
1486         DWORD* pdwMode,
1487         DWORD dwFlag,
1488         WCHAR* lpFallBack,
1489         DWORD dwSrcEncoding,
1490         DWORD dwDstEncoding,
1491         IStream* pstmIn,
1492         IStream* pstmOut) = 0;
1493
1494     virtual HRESULT STDMETHODCALLTYPE ConvertStringToUnicodeEx(
1495         DWORD* pdwMode,
1496         DWORD dwEncoding,
1497         CHAR* pSrcStr,
1498         UINT* pcSrcSize,
1499         WCHAR* pDstStr,
1500         UINT* pcDstSize,
1501         DWORD dwFlag,
1502         WCHAR* lpFallBack) = 0;
1503
1504     virtual HRESULT STDMETHODCALLTYPE DetectCodepageInIStream(
1505         DWORD dwFlag,
1506         DWORD dwPrefWinCodePage,
1507         IStream* pstmIn,
1508         DetectEncodingInfo* lpEncoding,
1509         INT* pnScores) = 0;
1510
1511     virtual HRESULT STDMETHODCALLTYPE DetectInputCodepage(
1512         DWORD dwFlag,
1513         DWORD dwPrefWinCodePage,
1514         CHAR* pSrcStr,
1515         INT* pcSrcSize,
1516         DetectEncodingInfo* lpEncoding,
1517         INT* pnScores) = 0;
1518
1519     virtual HRESULT STDMETHODCALLTYPE ValidateCodePage(
1520         UINT uiCodePage,
1521         HWND hwnd) = 0;
1522
1523     virtual HRESULT STDMETHODCALLTYPE GetCodePageDescription(
1524         UINT uiCodePage,
1525         LCID lcid,
1526         LPWSTR lpWideCharStr,
1527         int cchWideChar) = 0;
1528
1529     virtual HRESULT STDMETHODCALLTYPE IsCodePageInstallable(
1530         UINT uiCodePage) = 0;
1531
1532     virtual HRESULT STDMETHODCALLTYPE SetMimeDBSource(
1533         MIMECONTF dwSource) = 0;
1534
1535     virtual HRESULT STDMETHODCALLTYPE GetNumberOfScripts(
1536         UINT* pnScripts) = 0;
1537
1538     virtual HRESULT STDMETHODCALLTYPE EnumScripts(
1539         DWORD dwFlags,
1540         LANGID LangId,
1541         IEnumScript** ppEnumScript) = 0;
1542
1543     virtual HRESULT STDMETHODCALLTYPE ValidateCodePageEx(
1544         UINT uiCodePage,
1545         HWND hwnd,
1546         DWORD dwfIODControl) = 0;
1547
1548 };
1549 #else
1550 typedef struct IMultiLanguage2Vtbl IMultiLanguage2Vtbl;
1551 struct IMultiLanguage2 {
1552     const IMultiLanguage2Vtbl* lpVtbl;
1553 };
1554 struct IMultiLanguage2Vtbl {
1555     ICOM_MSVTABLE_COMPAT_FIELDS
1556
1557     /*** IUnknown methods ***/
1558     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1559         IMultiLanguage2* This,
1560         REFIID riid,
1561         void** ppvObject);
1562
1563     ULONG (STDMETHODCALLTYPE *AddRef)(
1564         IMultiLanguage2* This);
1565
1566     ULONG (STDMETHODCALLTYPE *Release)(
1567         IMultiLanguage2* This);
1568
1569     /*** IMultiLanguage2 methods ***/
1570     HRESULT (STDMETHODCALLTYPE *GetNumberOfCodePageInfo)(
1571         IMultiLanguage2* This,
1572         UINT* pcCodePage);
1573
1574     HRESULT (STDMETHODCALLTYPE *GetCodePageInfo)(
1575         IMultiLanguage2* This,
1576         UINT uiCodePage,
1577         LANGID LangId,
1578         PMIMECPINFO pCodePageInfo);
1579
1580     HRESULT (STDMETHODCALLTYPE *GetFamilyCodePage)(
1581         IMultiLanguage2* This,
1582         UINT uiCodePage,
1583         UINT* puiFamilyCodePage);
1584
1585     HRESULT (STDMETHODCALLTYPE *EnumCodePages)(
1586         IMultiLanguage2* This,
1587         DWORD grfFlags,
1588         LANGID LangId,
1589         IEnumCodePage** ppEnumCodePage);
1590
1591     HRESULT (STDMETHODCALLTYPE *GetCharsetInfo)(
1592         IMultiLanguage2* This,
1593         BSTR Charset,
1594         PMIMECSETINFO pCharsetInfo);
1595
1596     HRESULT (STDMETHODCALLTYPE *IsConvertible)(
1597         IMultiLanguage2* This,
1598         DWORD dwSrcEncoding,
1599         DWORD dwDstEncoding);
1600
1601     HRESULT (STDMETHODCALLTYPE *ConvertString)(
1602         IMultiLanguage2* This,
1603         DWORD* pdwMode,
1604         DWORD dwSrcEncoding,
1605         DWORD dwDstEncoding,
1606         BYTE* pSrcStr,
1607         UINT* pcSrcSize,
1608         BYTE* pDstStr,
1609         UINT* pcDstSize);
1610
1611     HRESULT (STDMETHODCALLTYPE *ConvertStringToUnicode)(
1612         IMultiLanguage2* This,
1613         DWORD* pdwMode,
1614         DWORD dwEncoding,
1615         CHAR* pSrcStr,
1616         UINT* pcSrcSize,
1617         WCHAR* pDstStr,
1618         UINT* pcDstSize);
1619
1620     HRESULT (STDMETHODCALLTYPE *ConvertStringFromUnicode)(
1621         IMultiLanguage2* This,
1622         DWORD* pdwMode,
1623         DWORD dwEncoding,
1624         WCHAR* pSrcStr,
1625         UINT* pcSrcSize,
1626         CHAR* pDstStr,
1627         UINT* pcDstSize);
1628
1629     HRESULT (STDMETHODCALLTYPE *ConvertStringReset)(
1630         IMultiLanguage2* This);
1631
1632     HRESULT (STDMETHODCALLTYPE *GetRfc1766FromLcid)(
1633         IMultiLanguage2* This,
1634         LCID Locale,
1635         BSTR* pbstrRfc1766);
1636
1637     HRESULT (STDMETHODCALLTYPE *GetLcidFromRfc1766)(
1638         IMultiLanguage2* This,
1639         LCID* pLocale,
1640         BSTR bstrRfc1766);
1641
1642     HRESULT (STDMETHODCALLTYPE *EnumRfc1766)(
1643         IMultiLanguage2* This,
1644         LANGID LangId,
1645         IEnumRfc1766** ppEnumRfc1766);
1646
1647     HRESULT (STDMETHODCALLTYPE *GetRfc1766Info)(
1648         IMultiLanguage2* This,
1649         LCID Locale,
1650         LANGID LangId,
1651         PRFC1766INFO pRfc1766Info);
1652
1653     HRESULT (STDMETHODCALLTYPE *CreateConvertCharset)(
1654         IMultiLanguage2* This,
1655         UINT uiSrcCodePage,
1656         UINT uiDstCodePage,
1657         DWORD dwProperty,
1658         IMLangConvertCharset** ppMLangConvertCharset);
1659
1660     HRESULT (STDMETHODCALLTYPE *ConvertStringInIStream)(
1661         IMultiLanguage2* This,
1662         DWORD* pdwMode,
1663         DWORD dwFlag,
1664         WCHAR* lpFallBack,
1665         DWORD dwSrcEncoding,
1666         DWORD dwDstEncoding,
1667         IStream* pstmIn,
1668         IStream* pstmOut);
1669
1670     HRESULT (STDMETHODCALLTYPE *ConvertStringToUnicodeEx)(
1671         IMultiLanguage2* This,
1672         DWORD* pdwMode,
1673         DWORD dwEncoding,
1674         CHAR* pSrcStr,
1675         UINT* pcSrcSize,
1676         WCHAR* pDstStr,
1677         UINT* pcDstSize,
1678         DWORD dwFlag,
1679         WCHAR* lpFallBack);
1680
1681     HRESULT (STDMETHODCALLTYPE *DetectCodepageInIStream)(
1682         IMultiLanguage2* This,
1683         DWORD dwFlag,
1684         DWORD dwPrefWinCodePage,
1685         IStream* pstmIn,
1686         DetectEncodingInfo* lpEncoding,
1687         INT* pnScores);
1688
1689     HRESULT (STDMETHODCALLTYPE *DetectInputCodepage)(
1690         IMultiLanguage2* This,
1691         DWORD dwFlag,
1692         DWORD dwPrefWinCodePage,
1693         CHAR* pSrcStr,
1694         INT* pcSrcSize,
1695         DetectEncodingInfo* lpEncoding,
1696         INT* pnScores);
1697
1698     HRESULT (STDMETHODCALLTYPE *ValidateCodePage)(
1699         IMultiLanguage2* This,
1700         UINT uiCodePage,
1701         HWND hwnd);
1702
1703     HRESULT (STDMETHODCALLTYPE *GetCodePageDescription)(
1704         IMultiLanguage2* This,
1705         UINT uiCodePage,
1706         LCID lcid,
1707         LPWSTR lpWideCharStr,
1708         int cchWideChar);
1709
1710     HRESULT (STDMETHODCALLTYPE *IsCodePageInstallable)(
1711         IMultiLanguage2* This,
1712         UINT uiCodePage);
1713
1714     HRESULT (STDMETHODCALLTYPE *SetMimeDBSource)(
1715         IMultiLanguage2* This,
1716         MIMECONTF dwSource);
1717
1718     HRESULT (STDMETHODCALLTYPE *GetNumberOfScripts)(
1719         IMultiLanguage2* This,
1720         UINT* pnScripts);
1721
1722     HRESULT (STDMETHODCALLTYPE *EnumScripts)(
1723         IMultiLanguage2* This,
1724         DWORD dwFlags,
1725         LANGID LangId,
1726         IEnumScript** ppEnumScript);
1727
1728     HRESULT (STDMETHODCALLTYPE *ValidateCodePageEx)(
1729         IMultiLanguage2* This,
1730         UINT uiCodePage,
1731         HWND hwnd,
1732         DWORD dwfIODControl);
1733
1734 };
1735
1736 /*** IUnknown methods ***/
1737 #define IMultiLanguage2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1738 #define IMultiLanguage2_AddRef(p) (p)->lpVtbl->AddRef(p)
1739 #define IMultiLanguage2_Release(p) (p)->lpVtbl->Release(p)
1740 /*** IMultiLanguage2 methods ***/
1741 #define IMultiLanguage2_GetNumberOfCodePageInfo(p,a) (p)->lpVtbl->GetNumberOfCodePageInfo(p,a)
1742 #define IMultiLanguage2_GetCodePageInfo(p,a,b,c) (p)->lpVtbl->GetCodePageInfo(p,a,b,c)
1743 #define IMultiLanguage2_GetFamilyCodePage(p,a,b) (p)->lpVtbl->GetFamilyCodePage(p,a,b)
1744 #define IMultiLanguage2_EnumCodePages(p,a,b,c) (p)->lpVtbl->EnumCodePages(p,a,b,c)
1745 #define IMultiLanguage2_GetCharsetInfo(p,a,b) (p)->lpVtbl->GetCharsetInfo(p,a,b)
1746 #define IMultiLanguage2_IsConvertible(p,a,b) (p)->lpVtbl->IsConvertible(p,a,b)
1747 #define IMultiLanguage2_ConvertString(p,a,b,c,d,e,f,g) (p)->lpVtbl->ConvertString(p,a,b,c,d,e,f,g)
1748 #define IMultiLanguage2_ConvertStringToUnicode(p,a,b,c,d,e,f) (p)->lpVtbl->ConvertStringToUnicode(p,a,b,c,d,e,f)
1749 #define IMultiLanguage2_ConvertStringFromUnicode(p,a,b,c,d,e,f) (p)->lpVtbl->ConvertStringFromUnicode(p,a,b,c,d,e,f)
1750 #define IMultiLanguage2_ConvertStringReset(p) (p)->lpVtbl->ConvertStringReset(p)
1751 #define IMultiLanguage2_GetRfc1766FromLcid(p,a,b) (p)->lpVtbl->GetRfc1766FromLcid(p,a,b)
1752 #define IMultiLanguage2_GetLcidFromRfc1766(p,a,b) (p)->lpVtbl->GetLcidFromRfc1766(p,a,b)
1753 #define IMultiLanguage2_EnumRfc1766(p,a,b) (p)->lpVtbl->EnumRfc1766(p,a,b)
1754 #define IMultiLanguage2_GetRfc1766Info(p,a,b,c) (p)->lpVtbl->GetRfc1766Info(p,a,b,c)
1755 #define IMultiLanguage2_CreateConvertCharset(p,a,b,c,d) (p)->lpVtbl->CreateConvertCharset(p,a,b,c,d)
1756 #define IMultiLanguage2_ConvertStringInIStream(p,a,b,c,d,e,f,g) (p)->lpVtbl->ConvertStringInIStream(p,a,b,c,d,e,f,g)
1757 #define IMultiLanguage2_ConvertStringToUnicodeEx(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->ConvertStringToUnicodeEx(p,a,b,c,d,e,f,g,h)
1758 #define IMultiLanguage2_DetectCodepageInIStream(p,a,b,c,d,e) (p)->lpVtbl->DetectCodepageInIStream(p,a,b,c,d,e)
1759 #define IMultiLanguage2_DetectInputCodepage(p,a,b,c,d,e,f) (p)->lpVtbl->DetectInputCodepage(p,a,b,c,d,e,f)
1760 #define IMultiLanguage2_ValidateCodePage(p,a,b) (p)->lpVtbl->ValidateCodePage(p,a,b)
1761 #define IMultiLanguage2_GetCodePageDescription(p,a,b,c,d) (p)->lpVtbl->GetCodePageDescription(p,a,b,c,d)
1762 #define IMultiLanguage2_IsCodePageInstallable(p,a) (p)->lpVtbl->IsCodePageInstallable(p,a)
1763 #define IMultiLanguage2_SetMimeDBSource(p,a) (p)->lpVtbl->SetMimeDBSource(p,a)
1764 #define IMultiLanguage2_GetNumberOfScripts(p,a) (p)->lpVtbl->GetNumberOfScripts(p,a)
1765 #define IMultiLanguage2_EnumScripts(p,a,b,c) (p)->lpVtbl->EnumScripts(p,a,b,c)
1766 #define IMultiLanguage2_ValidateCodePageEx(p,a,b,c) (p)->lpVtbl->ValidateCodePageEx(p,a,b,c)
1767
1768 #endif
1769
1770 #define IMultiLanguage2_METHODS \
1771     ICOM_MSVTABLE_COMPAT_FIELDS \
1772     /*** IUnknown methods ***/ \
1773     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1774     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1775     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1776     /*** IMultiLanguage2 methods ***/ \
1777     STDMETHOD_(HRESULT,GetNumberOfCodePageInfo)(THIS_ UINT* pcCodePage) PURE; \
1778     STDMETHOD_(HRESULT,GetCodePageInfo)(THIS_ UINT uiCodePage, LANGID LangId, PMIMECPINFO pCodePageInfo) PURE; \
1779     STDMETHOD_(HRESULT,GetFamilyCodePage)(THIS_ UINT uiCodePage, UINT* puiFamilyCodePage) PURE; \
1780     STDMETHOD_(HRESULT,EnumCodePages)(THIS_ DWORD grfFlags, LANGID LangId, IEnumCodePage** ppEnumCodePage) PURE; \
1781     STDMETHOD_(HRESULT,GetCharsetInfo)(THIS_ BSTR Charset, PMIMECSETINFO pCharsetInfo) PURE; \
1782     STDMETHOD_(HRESULT,IsConvertible)(THIS_ DWORD dwSrcEncoding, DWORD dwDstEncoding) PURE; \
1783     STDMETHOD_(HRESULT,ConvertString)(THIS_ DWORD* pdwMode, DWORD dwSrcEncoding, DWORD dwDstEncoding, BYTE* pSrcStr, UINT* pcSrcSize, BYTE* pDstStr, UINT* pcDstSize) PURE; \
1784     STDMETHOD_(HRESULT,ConvertStringToUnicode)(THIS_ DWORD* pdwMode, DWORD dwEncoding, CHAR* pSrcStr, UINT* pcSrcSize, WCHAR* pDstStr, UINT* pcDstSize) PURE; \
1785     STDMETHOD_(HRESULT,ConvertStringFromUnicode)(THIS_ DWORD* pdwMode, DWORD dwEncoding, WCHAR* pSrcStr, UINT* pcSrcSize, CHAR* pDstStr, UINT* pcDstSize) PURE; \
1786     STDMETHOD_(HRESULT,ConvertStringReset)(THIS) PURE; \
1787     STDMETHOD_(HRESULT,GetRfc1766FromLcid)(THIS_ LCID Locale, BSTR* pbstrRfc1766) PURE; \
1788     STDMETHOD_(HRESULT,GetLcidFromRfc1766)(THIS_ LCID* pLocale, BSTR bstrRfc1766) PURE; \
1789     STDMETHOD_(HRESULT,EnumRfc1766)(THIS_ LANGID LangId, IEnumRfc1766** ppEnumRfc1766) PURE; \
1790     STDMETHOD_(HRESULT,GetRfc1766Info)(THIS_ LCID Locale, LANGID LangId, PRFC1766INFO pRfc1766Info) PURE; \
1791     STDMETHOD_(HRESULT,CreateConvertCharset)(THIS_ UINT uiSrcCodePage, UINT uiDstCodePage, DWORD dwProperty, IMLangConvertCharset** ppMLangConvertCharset) PURE; \
1792     STDMETHOD_(HRESULT,ConvertStringInIStream)(THIS_ DWORD* pdwMode, DWORD dwFlag, WCHAR* lpFallBack, DWORD dwSrcEncoding, DWORD dwDstEncoding, IStream* pstmIn, IStream* pstmOut) PURE; \
1793     STDMETHOD_(HRESULT,ConvertStringToUnicodeEx)(THIS_ DWORD* pdwMode, DWORD dwEncoding, CHAR* pSrcStr, UINT* pcSrcSize, WCHAR* pDstStr, UINT* pcDstSize, DWORD dwFlag, WCHAR* lpFallBack) PURE; \
1794     STDMETHOD_(HRESULT,DetectCodepageInIStream)(THIS_ DWORD dwFlag, DWORD dwPrefWinCodePage, IStream* pstmIn, DetectEncodingInfo* lpEncoding, INT* pnScores) PURE; \
1795     STDMETHOD_(HRESULT,DetectInputCodepage)(THIS_ DWORD dwFlag, DWORD dwPrefWinCodePage, CHAR* pSrcStr, INT* pcSrcSize, DetectEncodingInfo* lpEncoding, INT* pnScores) PURE; \
1796     STDMETHOD_(HRESULT,ValidateCodePage)(THIS_ UINT uiCodePage, HWND hwnd) PURE; \
1797     STDMETHOD_(HRESULT,GetCodePageDescription)(THIS_ UINT uiCodePage, LCID lcid, LPWSTR lpWideCharStr, int cchWideChar) PURE; \
1798     STDMETHOD_(HRESULT,IsCodePageInstallable)(THIS_ UINT uiCodePage) PURE; \
1799     STDMETHOD_(HRESULT,SetMimeDBSource)(THIS_ MIMECONTF dwSource) PURE; \
1800     STDMETHOD_(HRESULT,GetNumberOfScripts)(THIS_ UINT* pnScripts) PURE; \
1801     STDMETHOD_(HRESULT,EnumScripts)(THIS_ DWORD dwFlags, LANGID LangId, IEnumScript** ppEnumScript) PURE; \
1802     STDMETHOD_(HRESULT,ValidateCodePageEx)(THIS_ UINT uiCodePage, HWND hwnd, DWORD dwfIODControl) PURE;
1803
1804 HRESULT CALLBACK IMultiLanguage2_GetNumberOfCodePageInfo_Proxy(
1805     IMultiLanguage2* This,
1806     UINT* pcCodePage);
1807 void __RPC_STUB IMultiLanguage2_GetNumberOfCodePageInfo_Stub(
1808     struct IRpcStubBuffer* This,
1809     struct IRpcChannelBuffer* pRpcChannelBuffer,
1810     PRPC_MESSAGE pRpcMessage,
1811     DWORD* pdwStubPhase);
1812 HRESULT CALLBACK IMultiLanguage2_GetCodePageInfo_Proxy(
1813     IMultiLanguage2* This,
1814     UINT uiCodePage,
1815     LANGID LangId,
1816     PMIMECPINFO pCodePageInfo);
1817 void __RPC_STUB IMultiLanguage2_GetCodePageInfo_Stub(
1818     struct IRpcStubBuffer* This,
1819     struct IRpcChannelBuffer* pRpcChannelBuffer,
1820     PRPC_MESSAGE pRpcMessage,
1821     DWORD* pdwStubPhase);
1822 HRESULT CALLBACK IMultiLanguage2_GetFamilyCodePage_Proxy(
1823     IMultiLanguage2* This,
1824     UINT uiCodePage,
1825     UINT* puiFamilyCodePage);
1826 void __RPC_STUB IMultiLanguage2_GetFamilyCodePage_Stub(
1827     struct IRpcStubBuffer* This,
1828     struct IRpcChannelBuffer* pRpcChannelBuffer,
1829     PRPC_MESSAGE pRpcMessage,
1830     DWORD* pdwStubPhase);
1831 HRESULT CALLBACK IMultiLanguage2_EnumCodePages_Proxy(
1832     IMultiLanguage2* This,
1833     DWORD grfFlags,
1834     LANGID LangId,
1835     IEnumCodePage** ppEnumCodePage);
1836 void __RPC_STUB IMultiLanguage2_EnumCodePages_Stub(
1837     struct IRpcStubBuffer* This,
1838     struct IRpcChannelBuffer* pRpcChannelBuffer,
1839     PRPC_MESSAGE pRpcMessage,
1840     DWORD* pdwStubPhase);
1841 HRESULT CALLBACK IMultiLanguage2_GetCharsetInfo_Proxy(
1842     IMultiLanguage2* This,
1843     BSTR Charset,
1844     PMIMECSETINFO pCharsetInfo);
1845 void __RPC_STUB IMultiLanguage2_GetCharsetInfo_Stub(
1846     struct IRpcStubBuffer* This,
1847     struct IRpcChannelBuffer* pRpcChannelBuffer,
1848     PRPC_MESSAGE pRpcMessage,
1849     DWORD* pdwStubPhase);
1850 HRESULT CALLBACK IMultiLanguage2_IsConvertible_Proxy(
1851     IMultiLanguage2* This,
1852     DWORD dwSrcEncoding,
1853     DWORD dwDstEncoding);
1854 void __RPC_STUB IMultiLanguage2_IsConvertible_Stub(
1855     struct IRpcStubBuffer* This,
1856     struct IRpcChannelBuffer* pRpcChannelBuffer,
1857     PRPC_MESSAGE pRpcMessage,
1858     DWORD* pdwStubPhase);
1859 HRESULT CALLBACK IMultiLanguage2_ConvertString_Proxy(
1860     IMultiLanguage2* This,
1861     DWORD* pdwMode,
1862     DWORD dwSrcEncoding,
1863     DWORD dwDstEncoding,
1864     BYTE* pSrcStr,
1865     UINT* pcSrcSize,
1866     BYTE* pDstStr,
1867     UINT* pcDstSize);
1868 void __RPC_STUB IMultiLanguage2_ConvertString_Stub(
1869     struct IRpcStubBuffer* This,
1870     struct IRpcChannelBuffer* pRpcChannelBuffer,
1871     PRPC_MESSAGE pRpcMessage,
1872     DWORD* pdwStubPhase);
1873 HRESULT CALLBACK IMultiLanguage2_ConvertStringToUnicode_Proxy(
1874     IMultiLanguage2* This,
1875     DWORD* pdwMode,
1876     DWORD dwEncoding,
1877     CHAR* pSrcStr,
1878     UINT* pcSrcSize,
1879     WCHAR* pDstStr,
1880     UINT* pcDstSize);
1881 void __RPC_STUB IMultiLanguage2_ConvertStringToUnicode_Stub(
1882     struct IRpcStubBuffer* This,
1883     struct IRpcChannelBuffer* pRpcChannelBuffer,
1884     PRPC_MESSAGE pRpcMessage,
1885     DWORD* pdwStubPhase);
1886 HRESULT CALLBACK IMultiLanguage2_ConvertStringFromUnicode_Proxy(
1887     IMultiLanguage2* This,
1888     DWORD* pdwMode,
1889     DWORD dwEncoding,
1890     WCHAR* pSrcStr,
1891     UINT* pcSrcSize,
1892     CHAR* pDstStr,
1893     UINT* pcDstSize);
1894 void __RPC_STUB IMultiLanguage2_ConvertStringFromUnicode_Stub(
1895     struct IRpcStubBuffer* This,
1896     struct IRpcChannelBuffer* pRpcChannelBuffer,
1897     PRPC_MESSAGE pRpcMessage,
1898     DWORD* pdwStubPhase);
1899 HRESULT CALLBACK IMultiLanguage2_ConvertStringReset_Proxy(
1900     IMultiLanguage2* This);
1901 void __RPC_STUB IMultiLanguage2_ConvertStringReset_Stub(
1902     struct IRpcStubBuffer* This,
1903     struct IRpcChannelBuffer* pRpcChannelBuffer,
1904     PRPC_MESSAGE pRpcMessage,
1905     DWORD* pdwStubPhase);
1906 HRESULT CALLBACK IMultiLanguage2_GetRfc1766FromLcid_Proxy(
1907     IMultiLanguage2* This,
1908     LCID Locale,
1909     BSTR* pbstrRfc1766);
1910 void __RPC_STUB IMultiLanguage2_GetRfc1766FromLcid_Stub(
1911     struct IRpcStubBuffer* This,
1912     struct IRpcChannelBuffer* pRpcChannelBuffer,
1913     PRPC_MESSAGE pRpcMessage,
1914     DWORD* pdwStubPhase);
1915 HRESULT CALLBACK IMultiLanguage2_GetLcidFromRfc1766_Proxy(
1916     IMultiLanguage2* This,
1917     LCID* pLocale,
1918     BSTR bstrRfc1766);
1919 void __RPC_STUB IMultiLanguage2_GetLcidFromRfc1766_Stub(
1920     struct IRpcStubBuffer* This,
1921     struct IRpcChannelBuffer* pRpcChannelBuffer,
1922     PRPC_MESSAGE pRpcMessage,
1923     DWORD* pdwStubPhase);
1924 HRESULT CALLBACK IMultiLanguage2_EnumRfc1766_Proxy(
1925     IMultiLanguage2* This,
1926     LANGID LangId,
1927     IEnumRfc1766** ppEnumRfc1766);
1928 void __RPC_STUB IMultiLanguage2_EnumRfc1766_Stub(
1929     struct IRpcStubBuffer* This,
1930     struct IRpcChannelBuffer* pRpcChannelBuffer,
1931     PRPC_MESSAGE pRpcMessage,
1932     DWORD* pdwStubPhase);
1933 HRESULT CALLBACK IMultiLanguage2_GetRfc1766Info_Proxy(
1934     IMultiLanguage2* This,
1935     LCID Locale,
1936     LANGID LangId,
1937     PRFC1766INFO pRfc1766Info);
1938 void __RPC_STUB IMultiLanguage2_GetRfc1766Info_Stub(
1939     struct IRpcStubBuffer* This,
1940     struct IRpcChannelBuffer* pRpcChannelBuffer,
1941     PRPC_MESSAGE pRpcMessage,
1942     DWORD* pdwStubPhase);
1943 HRESULT CALLBACK IMultiLanguage2_CreateConvertCharset_Proxy(
1944     IMultiLanguage2* This,
1945     UINT uiSrcCodePage,
1946     UINT uiDstCodePage,
1947     DWORD dwProperty,
1948     IMLangConvertCharset** ppMLangConvertCharset);
1949 void __RPC_STUB IMultiLanguage2_CreateConvertCharset_Stub(
1950     struct IRpcStubBuffer* This,
1951     struct IRpcChannelBuffer* pRpcChannelBuffer,
1952     PRPC_MESSAGE pRpcMessage,
1953     DWORD* pdwStubPhase);
1954 HRESULT CALLBACK IMultiLanguage2_ConvertStringInIStream_Proxy(
1955     IMultiLanguage2* This,
1956     DWORD* pdwMode,
1957     DWORD dwFlag,
1958     WCHAR* lpFallBack,
1959     DWORD dwSrcEncoding,
1960     DWORD dwDstEncoding,
1961     IStream* pstmIn,
1962     IStream* pstmOut);
1963 void __RPC_STUB IMultiLanguage2_ConvertStringInIStream_Stub(
1964     struct IRpcStubBuffer* This,
1965     struct IRpcChannelBuffer* pRpcChannelBuffer,
1966     PRPC_MESSAGE pRpcMessage,
1967     DWORD* pdwStubPhase);
1968 HRESULT CALLBACK IMultiLanguage2_ConvertStringToUnicodeEx_Proxy(
1969     IMultiLanguage2* This,
1970     DWORD* pdwMode,
1971     DWORD dwEncoding,
1972     CHAR* pSrcStr,
1973     UINT* pcSrcSize,
1974     WCHAR* pDstStr,
1975     UINT* pcDstSize,
1976     DWORD dwFlag,
1977     WCHAR* lpFallBack);
1978 void __RPC_STUB IMultiLanguage2_ConvertStringToUnicodeEx_Stub(
1979     struct IRpcStubBuffer* This,
1980     struct IRpcChannelBuffer* pRpcChannelBuffer,
1981     PRPC_MESSAGE pRpcMessage,
1982     DWORD* pdwStubPhase);
1983 HRESULT CALLBACK IMultiLanguage2_DetectCodepageInIStream_Proxy(
1984     IMultiLanguage2* This,
1985     DWORD dwFlag,
1986     DWORD dwPrefWinCodePage,
1987     IStream* pstmIn,
1988     DetectEncodingInfo* lpEncoding,
1989     INT* pnScores);
1990 void __RPC_STUB IMultiLanguage2_DetectCodepageInIStream_Stub(
1991     struct IRpcStubBuffer* This,
1992     struct IRpcChannelBuffer* pRpcChannelBuffer,
1993     PRPC_MESSAGE pRpcMessage,
1994     DWORD* pdwStubPhase);
1995 HRESULT CALLBACK IMultiLanguage2_DetectInputCodepage_Proxy(
1996     IMultiLanguage2* This,
1997     DWORD dwFlag,
1998     DWORD dwPrefWinCodePage,
1999     CHAR* pSrcStr,
2000     INT* pcSrcSize,
2001     DetectEncodingInfo* lpEncoding,
2002     INT* pnScores);
2003 void __RPC_STUB IMultiLanguage2_DetectInputCodepage_Stub(
2004     struct IRpcStubBuffer* This,
2005     struct IRpcChannelBuffer* pRpcChannelBuffer,
2006     PRPC_MESSAGE pRpcMessage,
2007     DWORD* pdwStubPhase);
2008 HRESULT CALLBACK IMultiLanguage2_ValidateCodePage_Proxy(
2009     IMultiLanguage2* This,
2010     UINT uiCodePage,
2011     HWND hwnd);
2012 void __RPC_STUB IMultiLanguage2_ValidateCodePage_Stub(
2013     struct IRpcStubBuffer* This,
2014     struct IRpcChannelBuffer* pRpcChannelBuffer,
2015     PRPC_MESSAGE pRpcMessage,
2016     DWORD* pdwStubPhase);
2017 HRESULT CALLBACK IMultiLanguage2_GetCodePageDescription_Proxy(
2018     IMultiLanguage2* This,
2019     UINT uiCodePage,
2020     LCID lcid,
2021     LPWSTR lpWideCharStr,
2022     int cchWideChar);
2023 void __RPC_STUB IMultiLanguage2_GetCodePageDescription_Stub(
2024     struct IRpcStubBuffer* This,
2025     struct IRpcChannelBuffer* pRpcChannelBuffer,
2026     PRPC_MESSAGE pRpcMessage,
2027     DWORD* pdwStubPhase);
2028 HRESULT CALLBACK IMultiLanguage2_IsCodePageInstallable_Proxy(
2029     IMultiLanguage2* This,
2030     UINT uiCodePage);
2031 void __RPC_STUB IMultiLanguage2_IsCodePageInstallable_Stub(
2032     struct IRpcStubBuffer* This,
2033     struct IRpcChannelBuffer* pRpcChannelBuffer,
2034     PRPC_MESSAGE pRpcMessage,
2035     DWORD* pdwStubPhase);
2036 HRESULT CALLBACK IMultiLanguage2_SetMimeDBSource_Proxy(
2037     IMultiLanguage2* This,
2038     MIMECONTF dwSource);
2039 void __RPC_STUB IMultiLanguage2_SetMimeDBSource_Stub(
2040     struct IRpcStubBuffer* This,
2041     struct IRpcChannelBuffer* pRpcChannelBuffer,
2042     PRPC_MESSAGE pRpcMessage,
2043     DWORD* pdwStubPhase);
2044 HRESULT CALLBACK IMultiLanguage2_GetNumberOfScripts_Proxy(
2045     IMultiLanguage2* This,
2046     UINT* pnScripts);
2047 void __RPC_STUB IMultiLanguage2_GetNumberOfScripts_Stub(
2048     struct IRpcStubBuffer* This,
2049     struct IRpcChannelBuffer* pRpcChannelBuffer,
2050     PRPC_MESSAGE pRpcMessage,
2051     DWORD* pdwStubPhase);
2052 HRESULT CALLBACK IMultiLanguage2_EnumScripts_Proxy(
2053     IMultiLanguage2* This,
2054     DWORD dwFlags,
2055     LANGID LangId,
2056     IEnumScript** ppEnumScript);
2057 void __RPC_STUB IMultiLanguage2_EnumScripts_Stub(
2058     struct IRpcStubBuffer* This,
2059     struct IRpcChannelBuffer* pRpcChannelBuffer,
2060     PRPC_MESSAGE pRpcMessage,
2061     DWORD* pdwStubPhase);
2062 HRESULT CALLBACK IMultiLanguage2_ValidateCodePageEx_Proxy(
2063     IMultiLanguage2* This,
2064     UINT uiCodePage,
2065     HWND hwnd,
2066     DWORD dwfIODControl);
2067 void __RPC_STUB IMultiLanguage2_ValidateCodePageEx_Stub(
2068     struct IRpcStubBuffer* This,
2069     struct IRpcChannelBuffer* pRpcChannelBuffer,
2070     PRPC_MESSAGE pRpcMessage,
2071     DWORD* pdwStubPhase);
2072
2073 #endif  /* __IMultiLanguage2_INTERFACE_DEFINED__ */
2074
2075 #ifdef __cplusplus
2076 }
2077 #endif
2078 #endif /* __WIDL_MLANG_H */