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