1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef __REQUIRED_RPCNDR_H_VERSION__
7 #define __REQUIRED_RPCNDR_H_VERSION__ 475
8 #endif
9 
10 #include <_mingw_unicode.h>
11 #include "rpc.h"
12 #include "rpcndr.h"
13 
14 #ifndef __RPCNDR_H_VERSION__
15 #error This stub requires an updated version of <rpcndr.h>
16 #endif
17 
18 #ifndef __mlang_h__
19 #define __mlang_h__
20 
21 #ifndef __IMLangStringBufW_FWD_DEFINED__
22 #define __IMLangStringBufW_FWD_DEFINED__
23 typedef struct IMLangStringBufW IMLangStringBufW;
24 #endif
25 
26 #ifndef __IMLangStringBufA_FWD_DEFINED__
27 #define __IMLangStringBufA_FWD_DEFINED__
28 typedef struct IMLangStringBufA IMLangStringBufA;
29 #endif
30 
31 #ifndef __IMLangString_FWD_DEFINED__
32 #define __IMLangString_FWD_DEFINED__
33 typedef struct IMLangString IMLangString;
34 #endif
35 
36 #ifndef __IMLangStringWStr_FWD_DEFINED__
37 #define __IMLangStringWStr_FWD_DEFINED__
38 typedef struct IMLangStringWStr IMLangStringWStr;
39 #endif
40 
41 #ifndef __IMLangStringAStr_FWD_DEFINED__
42 #define __IMLangStringAStr_FWD_DEFINED__
43 typedef struct IMLangStringAStr IMLangStringAStr;
44 #endif
45 
46 #ifndef __CMLangString_FWD_DEFINED__
47 #define __CMLangString_FWD_DEFINED__
48 
49 #ifdef __cplusplus
50 typedef class CMLangString CMLangString;
51 #else
52 typedef struct CMLangString CMLangString;
53 #endif
54 #endif
55 
56 #ifndef __IMLangLineBreakConsole_FWD_DEFINED__
57 #define __IMLangLineBreakConsole_FWD_DEFINED__
58 typedef struct IMLangLineBreakConsole IMLangLineBreakConsole;
59 #endif
60 
61 #ifndef __IEnumCodePage_FWD_DEFINED__
62 #define __IEnumCodePage_FWD_DEFINED__
63 typedef struct IEnumCodePage IEnumCodePage;
64 #endif
65 
66 #ifndef __IEnumRfc1766_FWD_DEFINED__
67 #define __IEnumRfc1766_FWD_DEFINED__
68 typedef struct IEnumRfc1766 IEnumRfc1766;
69 #endif
70 
71 #ifndef __IEnumScript_FWD_DEFINED__
72 #define __IEnumScript_FWD_DEFINED__
73 typedef struct IEnumScript IEnumScript;
74 #endif
75 
76 #ifndef __IMLangConvertCharset_FWD_DEFINED__
77 #define __IMLangConvertCharset_FWD_DEFINED__
78 typedef struct IMLangConvertCharset IMLangConvertCharset;
79 #endif
80 
81 #ifndef __CMLangConvertCharset_FWD_DEFINED__
82 #define __CMLangConvertCharset_FWD_DEFINED__
83 #ifdef __cplusplus
84 typedef class CMLangConvertCharset CMLangConvertCharset;
85 #else
86 typedef struct CMLangConvertCharset CMLangConvertCharset;
87 #endif
88 #endif
89 
90 #ifndef __IMultiLanguage_FWD_DEFINED__
91 #define __IMultiLanguage_FWD_DEFINED__
92 typedef struct IMultiLanguage IMultiLanguage;
93 #endif
94 
95 #ifndef __IMultiLanguage2_FWD_DEFINED__
96 #define __IMultiLanguage2_FWD_DEFINED__
97 typedef struct IMultiLanguage2 IMultiLanguage2;
98 #endif
99 
100 #ifndef __IMLangCodePages_FWD_DEFINED__
101 #define __IMLangCodePages_FWD_DEFINED__
102 typedef struct IMLangCodePages IMLangCodePages;
103 #endif
104 
105 #ifndef __IMLangFontLink_FWD_DEFINED__
106 #define __IMLangFontLink_FWD_DEFINED__
107 typedef struct IMLangFontLink IMLangFontLink;
108 #endif
109 
110 #ifndef __IMLangFontLink2_FWD_DEFINED__
111 #define __IMLangFontLink2_FWD_DEFINED__
112 typedef struct IMLangFontLink2 IMLangFontLink2;
113 #endif
114 
115 #ifndef __IMultiLanguage3_FWD_DEFINED__
116 #define __IMultiLanguage3_FWD_DEFINED__
117 typedef struct IMultiLanguage3 IMultiLanguage3;
118 #endif
119 
120 #ifndef __CMultiLanguage_FWD_DEFINED__
121 #define __CMultiLanguage_FWD_DEFINED__
122 #ifdef __cplusplus
123 typedef class CMultiLanguage CMultiLanguage;
124 #else
125 typedef struct CMultiLanguage CMultiLanguage;
126 #endif
127 #endif
128 
129 #include "unknwn.h"
130 
131 #ifdef __cplusplus
132 extern "C"{
133 #endif
134 
135 #ifndef __MIDL_user_allocate_free_DEFINED__
136 #define __MIDL_user_allocate_free_DEFINED__
137   void *__RPC_API MIDL_user_allocate(size_t);
138   void __RPC_API MIDL_user_free(void *);
139 #endif
140 
141   extern RPC_IF_HANDLE __MIDL_itf_mlang_0000_v0_0_c_ifspec;
142   extern RPC_IF_HANDLE __MIDL_itf_mlang_0000_v0_0_s_ifspec;
143 
144 #ifndef __MultiLanguage_LIBRARY_DEFINED__
145 #define __MultiLanguage_LIBRARY_DEFINED__
146 
147   typedef WORD LANGID;
148 
149   typedef enum tagMLSTR_FLAGS {
150     MLSTR_READ = 1,MLSTR_WRITE = 2
151   } MLSTR_FLAGS;
152 
153 #define CPIOD_PEEK __MSABI_LONG(0x40000000)
154 #define CPIOD_FORCE_PROMPT __MSABI_LONG(0x80000000)
155 
156   EXTERN_C const IID LIBID_MultiLanguage;
157 #ifndef __IMLangStringBufW_INTERFACE_DEFINED__
158 #define __IMLangStringBufW_INTERFACE_DEFINED__
159   EXTERN_C const IID IID_IMLangStringBufW;
160 #if defined(__cplusplus) && !defined(CINTERFACE)
161   struct IMLangStringBufW : public IUnknown {
162   public:
163     virtual HRESULT WINAPI GetStatus(__LONG32 *plFlags,__LONG32 *pcchBuf) = 0;
164     virtual HRESULT WINAPI LockBuf(__LONG32 cchOffset,__LONG32 cchMaxLock,WCHAR **ppszBuf,__LONG32 *pcchBuf) = 0;
165     virtual HRESULT WINAPI UnlockBuf(const WCHAR *pszBuf,__LONG32 cchOffset,__LONG32 cchWrite) = 0;
166     virtual HRESULT WINAPI Insert(__LONG32 cchOffset,__LONG32 cchMaxInsert,__LONG32 *pcchActual) = 0;
167     virtual HRESULT WINAPI Delete(__LONG32 cchOffset,__LONG32 cchDelete) = 0;
168   };
169 #else
170   typedef struct IMLangStringBufWVtbl {
171     BEGIN_INTERFACE
172       HRESULT (WINAPI *QueryInterface)(IMLangStringBufW *This,REFIID riid,void **ppvObject);
173       ULONG (WINAPI *AddRef)(IMLangStringBufW *This);
174       ULONG (WINAPI *Release)(IMLangStringBufW *This);
175       HRESULT (WINAPI *GetStatus)(IMLangStringBufW *This,__LONG32 *plFlags,__LONG32 *pcchBuf);
176       HRESULT (WINAPI *LockBuf)(IMLangStringBufW *This,__LONG32 cchOffset,__LONG32 cchMaxLock,WCHAR **ppszBuf,__LONG32 *pcchBuf);
177       HRESULT (WINAPI *UnlockBuf)(IMLangStringBufW *This,const WCHAR *pszBuf,__LONG32 cchOffset,__LONG32 cchWrite);
178       HRESULT (WINAPI *Insert)(IMLangStringBufW *This,__LONG32 cchOffset,__LONG32 cchMaxInsert,__LONG32 *pcchActual);
179       HRESULT (WINAPI *Delete)(IMLangStringBufW *This,__LONG32 cchOffset,__LONG32 cchDelete);
180     END_INTERFACE
181   } IMLangStringBufWVtbl;
182   struct IMLangStringBufW {
183     CONST_VTBL struct IMLangStringBufWVtbl *lpVtbl;
184   };
185 #ifdef COBJMACROS
186 #define IMLangStringBufW_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
187 #define IMLangStringBufW_AddRef(This) (This)->lpVtbl->AddRef(This)
188 #define IMLangStringBufW_Release(This) (This)->lpVtbl->Release(This)
189 #define IMLangStringBufW_GetStatus(This,plFlags,pcchBuf) (This)->lpVtbl->GetStatus(This,plFlags,pcchBuf)
190 #define IMLangStringBufW_LockBuf(This,cchOffset,cchMaxLock,ppszBuf,pcchBuf) (This)->lpVtbl->LockBuf(This,cchOffset,cchMaxLock,ppszBuf,pcchBuf)
191 #define IMLangStringBufW_UnlockBuf(This,pszBuf,cchOffset,cchWrite) (This)->lpVtbl->UnlockBuf(This,pszBuf,cchOffset,cchWrite)
192 #define IMLangStringBufW_Insert(This,cchOffset,cchMaxInsert,pcchActual) (This)->lpVtbl->Insert(This,cchOffset,cchMaxInsert,pcchActual)
193 #define IMLangStringBufW_Delete(This,cchOffset,cchDelete) (This)->lpVtbl->Delete(This,cchOffset,cchDelete)
194 #endif
195 #endif
196   HRESULT WINAPI IMLangStringBufW_GetStatus_Proxy(IMLangStringBufW *This,__LONG32 *plFlags,__LONG32 *pcchBuf);
197   void __RPC_STUB IMLangStringBufW_GetStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
198   HRESULT WINAPI IMLangStringBufW_LockBuf_Proxy(IMLangStringBufW *This,__LONG32 cchOffset,__LONG32 cchMaxLock,WCHAR **ppszBuf,__LONG32 *pcchBuf);
199   void __RPC_STUB IMLangStringBufW_LockBuf_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
200   HRESULT WINAPI IMLangStringBufW_UnlockBuf_Proxy(IMLangStringBufW *This,const WCHAR *pszBuf,__LONG32 cchOffset,__LONG32 cchWrite);
201   void __RPC_STUB IMLangStringBufW_UnlockBuf_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
202   HRESULT WINAPI IMLangStringBufW_Insert_Proxy(IMLangStringBufW *This,__LONG32 cchOffset,__LONG32 cchMaxInsert,__LONG32 *pcchActual);
203   void __RPC_STUB IMLangStringBufW_Insert_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
204   HRESULT WINAPI IMLangStringBufW_Delete_Proxy(IMLangStringBufW *This,__LONG32 cchOffset,__LONG32 cchDelete);
205   void __RPC_STUB IMLangStringBufW_Delete_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
206 #endif
207 
208 #ifndef __IMLangStringBufA_INTERFACE_DEFINED__
209 #define __IMLangStringBufA_INTERFACE_DEFINED__
210   EXTERN_C const IID IID_IMLangStringBufA;
211 #if defined(__cplusplus) && !defined(CINTERFACE)
212   struct IMLangStringBufA : public IUnknown {
213   public:
214     virtual HRESULT WINAPI GetStatus(__LONG32 *plFlags,__LONG32 *pcchBuf) = 0;
215     virtual HRESULT WINAPI LockBuf(__LONG32 cchOffset,__LONG32 cchMaxLock,CHAR **ppszBuf,__LONG32 *pcchBuf) = 0;
216     virtual HRESULT WINAPI UnlockBuf(const CHAR *pszBuf,__LONG32 cchOffset,__LONG32 cchWrite) = 0;
217     virtual HRESULT WINAPI Insert(__LONG32 cchOffset,__LONG32 cchMaxInsert,__LONG32 *pcchActual) = 0;
218     virtual HRESULT WINAPI Delete(__LONG32 cchOffset,__LONG32 cchDelete) = 0;
219   };
220 #else
221   typedef struct IMLangStringBufAVtbl {
222     BEGIN_INTERFACE
223       HRESULT (WINAPI *QueryInterface)(IMLangStringBufA *This,REFIID riid,void **ppvObject);
224       ULONG (WINAPI *AddRef)(IMLangStringBufA *This);
225       ULONG (WINAPI *Release)(IMLangStringBufA *This);
226       HRESULT (WINAPI *GetStatus)(IMLangStringBufA *This,__LONG32 *plFlags,__LONG32 *pcchBuf);
227       HRESULT (WINAPI *LockBuf)(IMLangStringBufA *This,__LONG32 cchOffset,__LONG32 cchMaxLock,CHAR **ppszBuf,__LONG32 *pcchBuf);
228       HRESULT (WINAPI *UnlockBuf)(IMLangStringBufA *This,const CHAR *pszBuf,__LONG32 cchOffset,__LONG32 cchWrite);
229       HRESULT (WINAPI *Insert)(IMLangStringBufA *This,__LONG32 cchOffset,__LONG32 cchMaxInsert,__LONG32 *pcchActual);
230       HRESULT (WINAPI *Delete)(IMLangStringBufA *This,__LONG32 cchOffset,__LONG32 cchDelete);
231     END_INTERFACE
232   } IMLangStringBufAVtbl;
233   struct IMLangStringBufA {
234     CONST_VTBL struct IMLangStringBufAVtbl *lpVtbl;
235   };
236 #ifdef COBJMACROS
237 #define IMLangStringBufA_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
238 #define IMLangStringBufA_AddRef(This) (This)->lpVtbl->AddRef(This)
239 #define IMLangStringBufA_Release(This) (This)->lpVtbl->Release(This)
240 #define IMLangStringBufA_GetStatus(This,plFlags,pcchBuf) (This)->lpVtbl->GetStatus(This,plFlags,pcchBuf)
241 #define IMLangStringBufA_LockBuf(This,cchOffset,cchMaxLock,ppszBuf,pcchBuf) (This)->lpVtbl->LockBuf(This,cchOffset,cchMaxLock,ppszBuf,pcchBuf)
242 #define IMLangStringBufA_UnlockBuf(This,pszBuf,cchOffset,cchWrite) (This)->lpVtbl->UnlockBuf(This,pszBuf,cchOffset,cchWrite)
243 #define IMLangStringBufA_Insert(This,cchOffset,cchMaxInsert,pcchActual) (This)->lpVtbl->Insert(This,cchOffset,cchMaxInsert,pcchActual)
244 #define IMLangStringBufA_Delete(This,cchOffset,cchDelete) (This)->lpVtbl->Delete(This,cchOffset,cchDelete)
245 #endif
246 #endif
247   HRESULT WINAPI IMLangStringBufA_GetStatus_Proxy(IMLangStringBufA *This,__LONG32 *plFlags,__LONG32 *pcchBuf);
248   void __RPC_STUB IMLangStringBufA_GetStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
249   HRESULT WINAPI IMLangStringBufA_LockBuf_Proxy(IMLangStringBufA *This,__LONG32 cchOffset,__LONG32 cchMaxLock,CHAR **ppszBuf,__LONG32 *pcchBuf);
250   void __RPC_STUB IMLangStringBufA_LockBuf_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
251   HRESULT WINAPI IMLangStringBufA_UnlockBuf_Proxy(IMLangStringBufA *This,const CHAR *pszBuf,__LONG32 cchOffset,__LONG32 cchWrite);
252   void __RPC_STUB IMLangStringBufA_UnlockBuf_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
253   HRESULT WINAPI IMLangStringBufA_Insert_Proxy(IMLangStringBufA *This,__LONG32 cchOffset,__LONG32 cchMaxInsert,__LONG32 *pcchActual);
254   void __RPC_STUB IMLangStringBufA_Insert_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
255   HRESULT WINAPI IMLangStringBufA_Delete_Proxy(IMLangStringBufA *This,__LONG32 cchOffset,__LONG32 cchDelete);
256   void __RPC_STUB IMLangStringBufA_Delete_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
257 #endif
258 
259 #ifndef __IMLangString_INTERFACE_DEFINED__
260 #define __IMLangString_INTERFACE_DEFINED__
261   EXTERN_C const IID IID_IMLangString;
262 #if defined(__cplusplus) && !defined(CINTERFACE)
263   struct IMLangString : public IUnknown {
264   public:
265     virtual HRESULT WINAPI Sync(WINBOOL fNoAccess) = 0;
266     virtual HRESULT WINAPI GetLength(__LONG32 *plLen) = 0;
267     virtual HRESULT WINAPI SetMLStr(__LONG32 lDestPos,__LONG32 lDestLen,IUnknown *pSrcMLStr,__LONG32 lSrcPos,__LONG32 lSrcLen) = 0;
268     virtual HRESULT WINAPI GetMLStr(__LONG32 lSrcPos,__LONG32 lSrcLen,IUnknown *pUnkOuter,DWORD dwClsContext,const IID *piid,IUnknown **ppDestMLStr,__LONG32 *plDestPos,__LONG32 *plDestLen) = 0;
269   };
270 #else
271   typedef struct IMLangStringVtbl {
272     BEGIN_INTERFACE
273       HRESULT (WINAPI *QueryInterface)(IMLangString *This,REFIID riid,void **ppvObject);
274       ULONG (WINAPI *AddRef)(IMLangString *This);
275       ULONG (WINAPI *Release)(IMLangString *This);
276       HRESULT (WINAPI *Sync)(IMLangString *This,WINBOOL fNoAccess);
277       HRESULT (WINAPI *GetLength)(IMLangString *This,__LONG32 *plLen);
278       HRESULT (WINAPI *SetMLStr)(IMLangString *This,__LONG32 lDestPos,__LONG32 lDestLen,IUnknown *pSrcMLStr,__LONG32 lSrcPos,__LONG32 lSrcLen);
279       HRESULT (WINAPI *GetMLStr)(IMLangString *This,__LONG32 lSrcPos,__LONG32 lSrcLen,IUnknown *pUnkOuter,DWORD dwClsContext,const IID *piid,IUnknown **ppDestMLStr,__LONG32 *plDestPos,__LONG32 *plDestLen);
280     END_INTERFACE
281   } IMLangStringVtbl;
282   struct IMLangString {
283     CONST_VTBL struct IMLangStringVtbl *lpVtbl;
284   };
285 #ifdef COBJMACROS
286 #define IMLangString_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
287 #define IMLangString_AddRef(This) (This)->lpVtbl->AddRef(This)
288 #define IMLangString_Release(This) (This)->lpVtbl->Release(This)
289 #define IMLangString_Sync(This,fNoAccess) (This)->lpVtbl->Sync(This,fNoAccess)
290 #define IMLangString_GetLength(This,plLen) (This)->lpVtbl->GetLength(This,plLen)
291 #define IMLangString_SetMLStr(This,lDestPos,lDestLen,pSrcMLStr,lSrcPos,lSrcLen) (This)->lpVtbl->SetMLStr(This,lDestPos,lDestLen,pSrcMLStr,lSrcPos,lSrcLen)
292 #define IMLangString_GetMLStr(This,lSrcPos,lSrcLen,pUnkOuter,dwClsContext,piid,ppDestMLStr,plDestPos,plDestLen) (This)->lpVtbl->GetMLStr(This,lSrcPos,lSrcLen,pUnkOuter,dwClsContext,piid,ppDestMLStr,plDestPos,plDestLen)
293 #endif
294 #endif
295   HRESULT WINAPI IMLangString_Sync_Proxy(IMLangString *This,WINBOOL fNoAccess);
296   void __RPC_STUB IMLangString_Sync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
297   HRESULT WINAPI IMLangString_GetLength_Proxy(IMLangString *This,__LONG32 *plLen);
298   void __RPC_STUB IMLangString_GetLength_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
299   HRESULT WINAPI IMLangString_SetMLStr_Proxy(IMLangString *This,__LONG32 lDestPos,__LONG32 lDestLen,IUnknown *pSrcMLStr,__LONG32 lSrcPos,__LONG32 lSrcLen);
300   void __RPC_STUB IMLangString_SetMLStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
301   HRESULT WINAPI IMLangString_GetMLStr_Proxy(IMLangString *This,__LONG32 lSrcPos,__LONG32 lSrcLen,IUnknown *pUnkOuter,DWORD dwClsContext,const IID *piid,IUnknown **ppDestMLStr,__LONG32 *plDestPos,__LONG32 *plDestLen);
302   void __RPC_STUB IMLangString_GetMLStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
303 #endif
304 
305 #ifndef __IMLangStringWStr_INTERFACE_DEFINED__
306 #define __IMLangStringWStr_INTERFACE_DEFINED__
307   EXTERN_C const IID IID_IMLangStringWStr;
308 #if defined(__cplusplus) && !defined(CINTERFACE)
309   struct IMLangStringWStr : public IMLangString {
310   public:
311     virtual HRESULT WINAPI SetWStr(__LONG32 lDestPos,__LONG32 lDestLen,const WCHAR *pszSrc,__LONG32 cchSrc,__LONG32 *pcchActual,__LONG32 *plActualLen) = 0;
312     virtual HRESULT WINAPI SetStrBufW(__LONG32 lDestPos,__LONG32 lDestLen,IMLangStringBufW *pSrcBuf,__LONG32 *pcchActual,__LONG32 *plActualLen) = 0;
313     virtual HRESULT WINAPI GetWStr(__LONG32 lSrcPos,__LONG32 lSrcLen,WCHAR *pszDest,__LONG32 cchDest,__LONG32 *pcchActual,__LONG32 *plActualLen) = 0;
314     virtual HRESULT WINAPI GetStrBufW(__LONG32 lSrcPos,__LONG32 lSrcMaxLen,IMLangStringBufW **ppDestBuf,__LONG32 *plDestLen) = 0;
315     virtual HRESULT WINAPI LockWStr(__LONG32 lSrcPos,__LONG32 lSrcLen,__LONG32 lFlags,__LONG32 cchRequest,WCHAR **ppszDest,__LONG32 *pcchDest,__LONG32 *plDestLen) = 0;
316     virtual HRESULT WINAPI UnlockWStr(const WCHAR *pszSrc,__LONG32 cchSrc,__LONG32 *pcchActual,__LONG32 *plActualLen) = 0;
317     virtual HRESULT WINAPI SetLocale(__LONG32 lDestPos,__LONG32 lDestLen,LCID locale) = 0;
318     virtual HRESULT WINAPI GetLocale(__LONG32 lSrcPos,__LONG32 lSrcMaxLen,LCID *plocale,__LONG32 *plLocalePos,__LONG32 *plLocaleLen) = 0;
319   };
320 #else
321   typedef struct IMLangStringWStrVtbl {
322     BEGIN_INTERFACE
323       HRESULT (WINAPI *QueryInterface)(IMLangStringWStr *This,REFIID riid,void **ppvObject);
324       ULONG (WINAPI *AddRef)(IMLangStringWStr *This);
325       ULONG (WINAPI *Release)(IMLangStringWStr *This);
326       HRESULT (WINAPI *Sync)(IMLangStringWStr *This,WINBOOL fNoAccess);
327       HRESULT (WINAPI *GetLength)(IMLangStringWStr *This,__LONG32 *plLen);
328       HRESULT (WINAPI *SetMLStr)(IMLangStringWStr *This,__LONG32 lDestPos,__LONG32 lDestLen,IUnknown *pSrcMLStr,__LONG32 lSrcPos,__LONG32 lSrcLen);
329       HRESULT (WINAPI *GetMLStr)(IMLangStringWStr *This,__LONG32 lSrcPos,__LONG32 lSrcLen,IUnknown *pUnkOuter,DWORD dwClsContext,const IID *piid,IUnknown **ppDestMLStr,__LONG32 *plDestPos,__LONG32 *plDestLen);
330       HRESULT (WINAPI *SetWStr)(IMLangStringWStr *This,__LONG32 lDestPos,__LONG32 lDestLen,const WCHAR *pszSrc,__LONG32 cchSrc,__LONG32 *pcchActual,__LONG32 *plActualLen);
331       HRESULT (WINAPI *SetStrBufW)(IMLangStringWStr *This,__LONG32 lDestPos,__LONG32 lDestLen,IMLangStringBufW *pSrcBuf,__LONG32 *pcchActual,__LONG32 *plActualLen);
332       HRESULT (WINAPI *GetWStr)(IMLangStringWStr *This,__LONG32 lSrcPos,__LONG32 lSrcLen,WCHAR *pszDest,__LONG32 cchDest,__LONG32 *pcchActual,__LONG32 *plActualLen);
333       HRESULT (WINAPI *GetStrBufW)(IMLangStringWStr *This,__LONG32 lSrcPos,__LONG32 lSrcMaxLen,IMLangStringBufW **ppDestBuf,__LONG32 *plDestLen);
334       HRESULT (WINAPI *LockWStr)(IMLangStringWStr *This,__LONG32 lSrcPos,__LONG32 lSrcLen,__LONG32 lFlags,__LONG32 cchRequest,WCHAR **ppszDest,__LONG32 *pcchDest,__LONG32 *plDestLen);
335       HRESULT (WINAPI *UnlockWStr)(IMLangStringWStr *This,const WCHAR *pszSrc,__LONG32 cchSrc,__LONG32 *pcchActual,__LONG32 *plActualLen);
336       HRESULT (WINAPI *SetLocale)(IMLangStringWStr *This,__LONG32 lDestPos,__LONG32 lDestLen,LCID locale);
337       HRESULT (WINAPI *GetLocale)(IMLangStringWStr *This,__LONG32 lSrcPos,__LONG32 lSrcMaxLen,LCID *plocale,__LONG32 *plLocalePos,__LONG32 *plLocaleLen);
338     END_INTERFACE
339   } IMLangStringWStrVtbl;
340   struct IMLangStringWStr {
341     CONST_VTBL struct IMLangStringWStrVtbl *lpVtbl;
342   };
343 #ifdef COBJMACROS
344 #define IMLangStringWStr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
345 #define IMLangStringWStr_AddRef(This) (This)->lpVtbl->AddRef(This)
346 #define IMLangStringWStr_Release(This) (This)->lpVtbl->Release(This)
347 #define IMLangStringWStr_Sync(This,fNoAccess) (This)->lpVtbl->Sync(This,fNoAccess)
348 #define IMLangStringWStr_GetLength(This,plLen) (This)->lpVtbl->GetLength(This,plLen)
349 #define IMLangStringWStr_SetMLStr(This,lDestPos,lDestLen,pSrcMLStr,lSrcPos,lSrcLen) (This)->lpVtbl->SetMLStr(This,lDestPos,lDestLen,pSrcMLStr,lSrcPos,lSrcLen)
350 #define IMLangStringWStr_GetMLStr(This,lSrcPos,lSrcLen,pUnkOuter,dwClsContext,piid,ppDestMLStr,plDestPos,plDestLen) (This)->lpVtbl->GetMLStr(This,lSrcPos,lSrcLen,pUnkOuter,dwClsContext,piid,ppDestMLStr,plDestPos,plDestLen)
351 #define IMLangStringWStr_SetWStr(This,lDestPos,lDestLen,pszSrc,cchSrc,pcchActual,plActualLen) (This)->lpVtbl->SetWStr(This,lDestPos,lDestLen,pszSrc,cchSrc,pcchActual,plActualLen)
352 #define IMLangStringWStr_SetStrBufW(This,lDestPos,lDestLen,pSrcBuf,pcchActual,plActualLen) (This)->lpVtbl->SetStrBufW(This,lDestPos,lDestLen,pSrcBuf,pcchActual,plActualLen)
353 #define IMLangStringWStr_GetWStr(This,lSrcPos,lSrcLen,pszDest,cchDest,pcchActual,plActualLen) (This)->lpVtbl->GetWStr(This,lSrcPos,lSrcLen,pszDest,cchDest,pcchActual,plActualLen)
354 #define IMLangStringWStr_GetStrBufW(This,lSrcPos,lSrcMaxLen,ppDestBuf,plDestLen) (This)->lpVtbl->GetStrBufW(This,lSrcPos,lSrcMaxLen,ppDestBuf,plDestLen)
355 #define IMLangStringWStr_LockWStr(This,lSrcPos,lSrcLen,lFlags,cchRequest,ppszDest,pcchDest,plDestLen) (This)->lpVtbl->LockWStr(This,lSrcPos,lSrcLen,lFlags,cchRequest,ppszDest,pcchDest,plDestLen)
356 #define IMLangStringWStr_UnlockWStr(This,pszSrc,cchSrc,pcchActual,plActualLen) (This)->lpVtbl->UnlockWStr(This,pszSrc,cchSrc,pcchActual,plActualLen)
357 #define IMLangStringWStr_SetLocale(This,lDestPos,lDestLen,locale) (This)->lpVtbl->SetLocale(This,lDestPos,lDestLen,locale)
358 #define IMLangStringWStr_GetLocale(This,lSrcPos,lSrcMaxLen,plocale,plLocalePos,plLocaleLen) (This)->lpVtbl->GetLocale(This,lSrcPos,lSrcMaxLen,plocale,plLocalePos,plLocaleLen)
359 #endif
360 #endif
361   HRESULT WINAPI IMLangStringWStr_SetWStr_Proxy(IMLangStringWStr *This,__LONG32 lDestPos,__LONG32 lDestLen,const WCHAR *pszSrc,__LONG32 cchSrc,__LONG32 *pcchActual,__LONG32 *plActualLen);
362   void __RPC_STUB IMLangStringWStr_SetWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
363   HRESULT WINAPI IMLangStringWStr_SetStrBufW_Proxy(IMLangStringWStr *This,__LONG32 lDestPos,__LONG32 lDestLen,IMLangStringBufW *pSrcBuf,__LONG32 *pcchActual,__LONG32 *plActualLen);
364   void __RPC_STUB IMLangStringWStr_SetStrBufW_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
365   HRESULT WINAPI IMLangStringWStr_GetWStr_Proxy(IMLangStringWStr *This,__LONG32 lSrcPos,__LONG32 lSrcLen,WCHAR *pszDest,__LONG32 cchDest,__LONG32 *pcchActual,__LONG32 *plActualLen);
366   void __RPC_STUB IMLangStringWStr_GetWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
367   HRESULT WINAPI IMLangStringWStr_GetStrBufW_Proxy(IMLangStringWStr *This,__LONG32 lSrcPos,__LONG32 lSrcMaxLen,IMLangStringBufW **ppDestBuf,__LONG32 *plDestLen);
368   void __RPC_STUB IMLangStringWStr_GetStrBufW_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
369   HRESULT WINAPI IMLangStringWStr_LockWStr_Proxy(IMLangStringWStr *This,__LONG32 lSrcPos,__LONG32 lSrcLen,__LONG32 lFlags,__LONG32 cchRequest,WCHAR **ppszDest,__LONG32 *pcchDest,__LONG32 *plDestLen);
370   void __RPC_STUB IMLangStringWStr_LockWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
371   HRESULT WINAPI IMLangStringWStr_UnlockWStr_Proxy(IMLangStringWStr *This,const WCHAR *pszSrc,__LONG32 cchSrc,__LONG32 *pcchActual,__LONG32 *plActualLen);
372   void __RPC_STUB IMLangStringWStr_UnlockWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
373   HRESULT WINAPI IMLangStringWStr_SetLocale_Proxy(IMLangStringWStr *This,__LONG32 lDestPos,__LONG32 lDestLen,LCID locale);
374   void __RPC_STUB IMLangStringWStr_SetLocale_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
375   HRESULT WINAPI IMLangStringWStr_GetLocale_Proxy(IMLangStringWStr *This,__LONG32 lSrcPos,__LONG32 lSrcMaxLen,LCID *plocale,__LONG32 *plLocalePos,__LONG32 *plLocaleLen);
376   void __RPC_STUB IMLangStringWStr_GetLocale_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
377 #endif
378 
379 #ifndef __IMLangStringAStr_INTERFACE_DEFINED__
380 #define __IMLangStringAStr_INTERFACE_DEFINED__
381   EXTERN_C const IID IID_IMLangStringAStr;
382 #if defined(__cplusplus) && !defined(CINTERFACE)
383   struct IMLangStringAStr : public IMLangString {
384   public:
385     virtual HRESULT WINAPI SetAStr(__LONG32 lDestPos,__LONG32 lDestLen,UINT uCodePage,const CHAR *pszSrc,__LONG32 cchSrc,__LONG32 *pcchActual,__LONG32 *plActualLen) = 0;
386     virtual HRESULT WINAPI SetStrBufA(__LONG32 lDestPos,__LONG32 lDestLen,UINT uCodePage,IMLangStringBufA *pSrcBuf,__LONG32 *pcchActual,__LONG32 *plActualLen) = 0;
387     virtual HRESULT WINAPI GetAStr(__LONG32 lSrcPos,__LONG32 lSrcLen,UINT uCodePageIn,UINT *puCodePageOut,CHAR *pszDest,__LONG32 cchDest,__LONG32 *pcchActual,__LONG32 *plActualLen) = 0;
388     virtual HRESULT WINAPI GetStrBufA(__LONG32 lSrcPos,__LONG32 lSrcMaxLen,UINT *puDestCodePage,IMLangStringBufA **ppDestBuf,__LONG32 *plDestLen) = 0;
389     virtual HRESULT WINAPI LockAStr(__LONG32 lSrcPos,__LONG32 lSrcLen,__LONG32 lFlags,UINT uCodePageIn,__LONG32 cchRequest,UINT *puCodePageOut,CHAR **ppszDest,__LONG32 *pcchDest,__LONG32 *plDestLen) = 0;
390     virtual HRESULT WINAPI UnlockAStr(const CHAR *pszSrc,__LONG32 cchSrc,__LONG32 *pcchActual,__LONG32 *plActualLen) = 0;
391     virtual HRESULT WINAPI SetLocale(__LONG32 lDestPos,__LONG32 lDestLen,LCID locale) = 0;
392     virtual HRESULT WINAPI GetLocale(__LONG32 lSrcPos,__LONG32 lSrcMaxLen,LCID *plocale,__LONG32 *plLocalePos,__LONG32 *plLocaleLen) = 0;
393   };
394 #else
395   typedef struct IMLangStringAStrVtbl {
396     BEGIN_INTERFACE
397       HRESULT (WINAPI *QueryInterface)(IMLangStringAStr *This,REFIID riid,void **ppvObject);
398       ULONG (WINAPI *AddRef)(IMLangStringAStr *This);
399       ULONG (WINAPI *Release)(IMLangStringAStr *This);
400       HRESULT (WINAPI *Sync)(IMLangStringAStr *This,WINBOOL fNoAccess);
401       HRESULT (WINAPI *GetLength)(IMLangStringAStr *This,__LONG32 *plLen);
402       HRESULT (WINAPI *SetMLStr)(IMLangStringAStr *This,__LONG32 lDestPos,__LONG32 lDestLen,IUnknown *pSrcMLStr,__LONG32 lSrcPos,__LONG32 lSrcLen);
403       HRESULT (WINAPI *GetMLStr)(IMLangStringAStr *This,__LONG32 lSrcPos,__LONG32 lSrcLen,IUnknown *pUnkOuter,DWORD dwClsContext,const IID *piid,IUnknown **ppDestMLStr,__LONG32 *plDestPos,__LONG32 *plDestLen);
404       HRESULT (WINAPI *SetAStr)(IMLangStringAStr *This,__LONG32 lDestPos,__LONG32 lDestLen,UINT uCodePage,const CHAR *pszSrc,__LONG32 cchSrc,__LONG32 *pcchActual,__LONG32 *plActualLen);
405       HRESULT (WINAPI *SetStrBufA)(IMLangStringAStr *This,__LONG32 lDestPos,__LONG32 lDestLen,UINT uCodePage,IMLangStringBufA *pSrcBuf,__LONG32 *pcchActual,__LONG32 *plActualLen);
406       HRESULT (WINAPI *GetAStr)(IMLangStringAStr *This,__LONG32 lSrcPos,__LONG32 lSrcLen,UINT uCodePageIn,UINT *puCodePageOut,CHAR *pszDest,__LONG32 cchDest,__LONG32 *pcchActual,__LONG32 *plActualLen);
407       HRESULT (WINAPI *GetStrBufA)(IMLangStringAStr *This,__LONG32 lSrcPos,__LONG32 lSrcMaxLen,UINT *puDestCodePage,IMLangStringBufA **ppDestBuf,__LONG32 *plDestLen);
408       HRESULT (WINAPI *LockAStr)(IMLangStringAStr *This,__LONG32 lSrcPos,__LONG32 lSrcLen,__LONG32 lFlags,UINT uCodePageIn,__LONG32 cchRequest,UINT *puCodePageOut,CHAR **ppszDest,__LONG32 *pcchDest,__LONG32 *plDestLen);
409       HRESULT (WINAPI *UnlockAStr)(IMLangStringAStr *This,const CHAR *pszSrc,__LONG32 cchSrc,__LONG32 *pcchActual,__LONG32 *plActualLen);
410       HRESULT (WINAPI *SetLocale)(IMLangStringAStr *This,__LONG32 lDestPos,__LONG32 lDestLen,LCID locale);
411       HRESULT (WINAPI *GetLocale)(IMLangStringAStr *This,__LONG32 lSrcPos,__LONG32 lSrcMaxLen,LCID *plocale,__LONG32 *plLocalePos,__LONG32 *plLocaleLen);
412     END_INTERFACE
413   } IMLangStringAStrVtbl;
414   struct IMLangStringAStr {
415     CONST_VTBL struct IMLangStringAStrVtbl *lpVtbl;
416   };
417 #ifdef COBJMACROS
418 #define IMLangStringAStr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
419 #define IMLangStringAStr_AddRef(This) (This)->lpVtbl->AddRef(This)
420 #define IMLangStringAStr_Release(This) (This)->lpVtbl->Release(This)
421 #define IMLangStringAStr_Sync(This,fNoAccess) (This)->lpVtbl->Sync(This,fNoAccess)
422 #define IMLangStringAStr_GetLength(This,plLen) (This)->lpVtbl->GetLength(This,plLen)
423 #define IMLangStringAStr_SetMLStr(This,lDestPos,lDestLen,pSrcMLStr,lSrcPos,lSrcLen) (This)->lpVtbl->SetMLStr(This,lDestPos,lDestLen,pSrcMLStr,lSrcPos,lSrcLen)
424 #define IMLangStringAStr_GetMLStr(This,lSrcPos,lSrcLen,pUnkOuter,dwClsContext,piid,ppDestMLStr,plDestPos,plDestLen) (This)->lpVtbl->GetMLStr(This,lSrcPos,lSrcLen,pUnkOuter,dwClsContext,piid,ppDestMLStr,plDestPos,plDestLen)
425 #define IMLangStringAStr_SetAStr(This,lDestPos,lDestLen,uCodePage,pszSrc,cchSrc,pcchActual,plActualLen) (This)->lpVtbl->SetAStr(This,lDestPos,lDestLen,uCodePage,pszSrc,cchSrc,pcchActual,plActualLen)
426 #define IMLangStringAStr_SetStrBufA(This,lDestPos,lDestLen,uCodePage,pSrcBuf,pcchActual,plActualLen) (This)->lpVtbl->SetStrBufA(This,lDestPos,lDestLen,uCodePage,pSrcBuf,pcchActual,plActualLen)
427 #define IMLangStringAStr_GetAStr(This,lSrcPos,lSrcLen,uCodePageIn,puCodePageOut,pszDest,cchDest,pcchActual,plActualLen) (This)->lpVtbl->GetAStr(This,lSrcPos,lSrcLen,uCodePageIn,puCodePageOut,pszDest,cchDest,pcchActual,plActualLen)
428 #define IMLangStringAStr_GetStrBufA(This,lSrcPos,lSrcMaxLen,puDestCodePage,ppDestBuf,plDestLen) (This)->lpVtbl->GetStrBufA(This,lSrcPos,lSrcMaxLen,puDestCodePage,ppDestBuf,plDestLen)
429 #define IMLangStringAStr_LockAStr(This,lSrcPos,lSrcLen,lFlags,uCodePageIn,cchRequest,puCodePageOut,ppszDest,pcchDest,plDestLen) (This)->lpVtbl->LockAStr(This,lSrcPos,lSrcLen,lFlags,uCodePageIn,cchRequest,puCodePageOut,ppszDest,pcchDest,plDestLen)
430 #define IMLangStringAStr_UnlockAStr(This,pszSrc,cchSrc,pcchActual,plActualLen) (This)->lpVtbl->UnlockAStr(This,pszSrc,cchSrc,pcchActual,plActualLen)
431 #define IMLangStringAStr_SetLocale(This,lDestPos,lDestLen,locale) (This)->lpVtbl->SetLocale(This,lDestPos,lDestLen,locale)
432 #define IMLangStringAStr_GetLocale(This,lSrcPos,lSrcMaxLen,plocale,plLocalePos,plLocaleLen) (This)->lpVtbl->GetLocale(This,lSrcPos,lSrcMaxLen,plocale,plLocalePos,plLocaleLen)
433 #endif
434 #endif
435   HRESULT WINAPI IMLangStringAStr_SetAStr_Proxy(IMLangStringAStr *This,__LONG32 lDestPos,__LONG32 lDestLen,UINT uCodePage,const CHAR *pszSrc,__LONG32 cchSrc,__LONG32 *pcchActual,__LONG32 *plActualLen);
436   void __RPC_STUB IMLangStringAStr_SetAStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
437   HRESULT WINAPI IMLangStringAStr_SetStrBufA_Proxy(IMLangStringAStr *This,__LONG32 lDestPos,__LONG32 lDestLen,UINT uCodePage,IMLangStringBufA *pSrcBuf,__LONG32 *pcchActual,__LONG32 *plActualLen);
438   void __RPC_STUB IMLangStringAStr_SetStrBufA_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
439   HRESULT WINAPI IMLangStringAStr_GetAStr_Proxy(IMLangStringAStr *This,__LONG32 lSrcPos,__LONG32 lSrcLen,UINT uCodePageIn,UINT *puCodePageOut,CHAR *pszDest,__LONG32 cchDest,__LONG32 *pcchActual,__LONG32 *plActualLen);
440   void __RPC_STUB IMLangStringAStr_GetAStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
441   HRESULT WINAPI IMLangStringAStr_GetStrBufA_Proxy(IMLangStringAStr *This,__LONG32 lSrcPos,__LONG32 lSrcMaxLen,UINT *puDestCodePage,IMLangStringBufA **ppDestBuf,__LONG32 *plDestLen);
442   void __RPC_STUB IMLangStringAStr_GetStrBufA_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
443   HRESULT WINAPI IMLangStringAStr_LockAStr_Proxy(IMLangStringAStr *This,__LONG32 lSrcPos,__LONG32 lSrcLen,__LONG32 lFlags,UINT uCodePageIn,__LONG32 cchRequest,UINT *puCodePageOut,CHAR **ppszDest,__LONG32 *pcchDest,__LONG32 *plDestLen);
444   void __RPC_STUB IMLangStringAStr_LockAStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
445   HRESULT WINAPI IMLangStringAStr_UnlockAStr_Proxy(IMLangStringAStr *This,const CHAR *pszSrc,__LONG32 cchSrc,__LONG32 *pcchActual,__LONG32 *plActualLen);
446   void __RPC_STUB IMLangStringAStr_UnlockAStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
447   HRESULT WINAPI IMLangStringAStr_SetLocale_Proxy(IMLangStringAStr *This,__LONG32 lDestPos,__LONG32 lDestLen,LCID locale);
448   void __RPC_STUB IMLangStringAStr_SetLocale_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
449   HRESULT WINAPI IMLangStringAStr_GetLocale_Proxy(IMLangStringAStr *This,__LONG32 lSrcPos,__LONG32 lSrcMaxLen,LCID *plocale,__LONG32 *plLocalePos,__LONG32 *plLocaleLen);
450   void __RPC_STUB IMLangStringAStr_GetLocale_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
451 #endif
452 
453   EXTERN_C const CLSID CLSID_CMLangString;
454 #ifdef __cplusplus
455   class CMLangString;
456 #endif
457 
458 #ifndef __IMLangLineBreakConsole_INTERFACE_DEFINED__
459 #define __IMLangLineBreakConsole_INTERFACE_DEFINED__
460   EXTERN_C const IID IID_IMLangLineBreakConsole;
461 #if defined(__cplusplus) && !defined(CINTERFACE)
462   struct IMLangLineBreakConsole : public IUnknown {
463   public:
464     virtual HRESULT WINAPI BreakLineML(IMLangString *pSrcMLStr,__LONG32 lSrcPos,__LONG32 lSrcLen,__LONG32 cMinColumns,__LONG32 cMaxColumns,__LONG32 *plLineLen,__LONG32 *plSkipLen) = 0;
465     virtual HRESULT WINAPI BreakLineW(LCID locale,const WCHAR *pszSrc,__LONG32 cchSrc,__LONG32 cMaxColumns,__LONG32 *pcchLine,__LONG32 *pcchSkip) = 0;
466     virtual HRESULT WINAPI BreakLineA(LCID locale,UINT uCodePage,const CHAR *pszSrc,__LONG32 cchSrc,__LONG32 cMaxColumns,__LONG32 *pcchLine,__LONG32 *pcchSkip) = 0;
467   };
468 #else
469   typedef struct IMLangLineBreakConsoleVtbl {
470     BEGIN_INTERFACE
471       HRESULT (WINAPI *QueryInterface)(IMLangLineBreakConsole *This,REFIID riid,void **ppvObject);
472       ULONG (WINAPI *AddRef)(IMLangLineBreakConsole *This);
473       ULONG (WINAPI *Release)(IMLangLineBreakConsole *This);
474       HRESULT (WINAPI *BreakLineML)(IMLangLineBreakConsole *This,IMLangString *pSrcMLStr,__LONG32 lSrcPos,__LONG32 lSrcLen,__LONG32 cMinColumns,__LONG32 cMaxColumns,__LONG32 *plLineLen,__LONG32 *plSkipLen);
475       HRESULT (WINAPI *BreakLineW)(IMLangLineBreakConsole *This,LCID locale,const WCHAR *pszSrc,__LONG32 cchSrc,__LONG32 cMaxColumns,__LONG32 *pcchLine,__LONG32 *pcchSkip);
476       HRESULT (WINAPI *BreakLineA)(IMLangLineBreakConsole *This,LCID locale,UINT uCodePage,const CHAR *pszSrc,__LONG32 cchSrc,__LONG32 cMaxColumns,__LONG32 *pcchLine,__LONG32 *pcchSkip);
477     END_INTERFACE
478   } IMLangLineBreakConsoleVtbl;
479   struct IMLangLineBreakConsole {
480     CONST_VTBL struct IMLangLineBreakConsoleVtbl *lpVtbl;
481   };
482 #ifdef COBJMACROS
483 #define IMLangLineBreakConsole_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
484 #define IMLangLineBreakConsole_AddRef(This) (This)->lpVtbl->AddRef(This)
485 #define IMLangLineBreakConsole_Release(This) (This)->lpVtbl->Release(This)
486 #define IMLangLineBreakConsole_BreakLineML(This,pSrcMLStr,lSrcPos,lSrcLen,cMinColumns,cMaxColumns,plLineLen,plSkipLen) (This)->lpVtbl->BreakLineML(This,pSrcMLStr,lSrcPos,lSrcLen,cMinColumns,cMaxColumns,plLineLen,plSkipLen)
487 #define IMLangLineBreakConsole_BreakLineW(This,locale,pszSrc,cchSrc,cMaxColumns,pcchLine,pcchSkip) (This)->lpVtbl->BreakLineW(This,locale,pszSrc,cchSrc,cMaxColumns,pcchLine,pcchSkip)
488 #define IMLangLineBreakConsole_BreakLineA(This,locale,uCodePage,pszSrc,cchSrc,cMaxColumns,pcchLine,pcchSkip) (This)->lpVtbl->BreakLineA(This,locale,uCodePage,pszSrc,cchSrc,cMaxColumns,pcchLine,pcchSkip)
489 #endif
490 #endif
491   HRESULT WINAPI IMLangLineBreakConsole_BreakLineML_Proxy(IMLangLineBreakConsole *This,IMLangString *pSrcMLStr,__LONG32 lSrcPos,__LONG32 lSrcLen,__LONG32 cMinColumns,__LONG32 cMaxColumns,__LONG32 *plLineLen,__LONG32 *plSkipLen);
492   void __RPC_STUB IMLangLineBreakConsole_BreakLineML_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
493   HRESULT WINAPI IMLangLineBreakConsole_BreakLineW_Proxy(IMLangLineBreakConsole *This,LCID locale,const WCHAR *pszSrc,__LONG32 cchSrc,__LONG32 cMaxColumns,__LONG32 *pcchLine,__LONG32 *pcchSkip);
494   void __RPC_STUB IMLangLineBreakConsole_BreakLineW_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
495   HRESULT WINAPI IMLangLineBreakConsole_BreakLineA_Proxy(IMLangLineBreakConsole *This,LCID locale,UINT uCodePage,const CHAR *pszSrc,__LONG32 cchSrc,__LONG32 cMaxColumns,__LONG32 *pcchLine,__LONG32 *pcchSkip);
496   void __RPC_STUB IMLangLineBreakConsole_BreakLineA_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
497 #endif
498 
499 #ifndef __IEnumCodePage_INTERFACE_DEFINED__
500 #define __IEnumCodePage_INTERFACE_DEFINED__
501 #define MAX_MIMECP_NAME (64)
502 #define MAX_MIMECSET_NAME (50)
503 #define MAX_MIMEFACE_NAME (32)
504 
505   typedef enum tagMIMECONTF {
506     MIMECONTF_MAILNEWS = 0x1,MIMECONTF_BROWSER = 0x2,MIMECONTF_MINIMAL = 0x4,MIMECONTF_IMPORT = 0x8,MIMECONTF_SAVABLE_MAILNEWS = 0x100,
507     MIMECONTF_SAVABLE_BROWSER = 0x200,MIMECONTF_EXPORT = 0x400,MIMECONTF_PRIVCONVERTER = 0x10000,MIMECONTF_VALID = 0x20000,
508     MIMECONTF_VALID_NLS = 0x40000,MIMECONTF_MIME_IE4 = 0x10000000,MIMECONTF_MIME_LATEST = 0x20000000,MIMECONTF_MIME_REGISTRY = 0x40000000
509   } MIMECONTF;
510 
511   typedef struct tagMIMECPINFO {
512     DWORD dwFlags;
513     UINT uiCodePage;
514     UINT uiFamilyCodePage;
515     WCHAR wszDescription[64 ];
516     WCHAR wszWebCharset[50 ];
517     WCHAR wszHeaderCharset[50 ];
518     WCHAR wszBodyCharset[50 ];
519     WCHAR wszFixedWidthFont[32 ];
520     WCHAR wszProportionalFont[32 ];
521     BYTE bGDICharset;
522   } MIMECPINFO;
523 
524   typedef struct tagMIMECPINFO *PMIMECPINFO;
525 
526   typedef struct tagMIMECSETINFO {
527     UINT uiCodePage;
528     UINT uiInternetEncoding;
529     WCHAR wszCharset[50 ];
530   } MIMECSETINFO;
531 
532   typedef struct tagMIMECSETINFO *PMIMECSETINFO;
533   typedef IEnumCodePage *LPENUMCODEPAGE;
534 
535   EXTERN_C const IID IID_IEnumCodePage;
536 #if defined(__cplusplus) && !defined(CINTERFACE)
537   struct IEnumCodePage : public IUnknown {
538   public:
539     virtual HRESULT WINAPI Clone(IEnumCodePage **ppEnum) = 0;
540     virtual HRESULT WINAPI Next(ULONG celt,PMIMECPINFO rgelt,ULONG *pceltFetched) = 0;
541     virtual HRESULT WINAPI Reset(void) = 0;
542     virtual HRESULT WINAPI Skip(ULONG celt) = 0;
543   };
544 #else
545   typedef struct IEnumCodePageVtbl {
546     BEGIN_INTERFACE
547       HRESULT (WINAPI *QueryInterface)(IEnumCodePage *This,REFIID riid,void **ppvObject);
548       ULONG (WINAPI *AddRef)(IEnumCodePage *This);
549       ULONG (WINAPI *Release)(IEnumCodePage *This);
550       HRESULT (WINAPI *Clone)(IEnumCodePage *This,IEnumCodePage **ppEnum);
551       HRESULT (WINAPI *Next)(IEnumCodePage *This,ULONG celt,PMIMECPINFO rgelt,ULONG *pceltFetched);
552       HRESULT (WINAPI *Reset)(IEnumCodePage *This);
553       HRESULT (WINAPI *Skip)(IEnumCodePage *This,ULONG celt);
554     END_INTERFACE
555   } IEnumCodePageVtbl;
556   struct IEnumCodePage {
557     CONST_VTBL struct IEnumCodePageVtbl *lpVtbl;
558   };
559 #ifdef COBJMACROS
560 #define IEnumCodePage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
561 #define IEnumCodePage_AddRef(This) (This)->lpVtbl->AddRef(This)
562 #define IEnumCodePage_Release(This) (This)->lpVtbl->Release(This)
563 #define IEnumCodePage_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
564 #define IEnumCodePage_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
565 #define IEnumCodePage_Reset(This) (This)->lpVtbl->Reset(This)
566 #define IEnumCodePage_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
567 #endif
568 #endif
569   HRESULT WINAPI IEnumCodePage_Clone_Proxy(IEnumCodePage *This,IEnumCodePage **ppEnum);
570   void __RPC_STUB IEnumCodePage_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
571   HRESULT WINAPI IEnumCodePage_Next_Proxy(IEnumCodePage *This,ULONG celt,PMIMECPINFO rgelt,ULONG *pceltFetched);
572   void __RPC_STUB IEnumCodePage_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
573   HRESULT WINAPI IEnumCodePage_Reset_Proxy(IEnumCodePage *This);
574   void __RPC_STUB IEnumCodePage_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
575   HRESULT WINAPI IEnumCodePage_Skip_Proxy(IEnumCodePage *This,ULONG celt);
576   void __RPC_STUB IEnumCodePage_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
577 #endif
578 
579 #ifndef __IEnumRfc1766_INTERFACE_DEFINED__
580 #define __IEnumRfc1766_INTERFACE_DEFINED__
581 #define MAX_RFC1766_NAME (6)
582 #define MAX_LOCALE_NAME (32)
583 
584   typedef struct tagRFC1766INFO {
585     LCID lcid;
586     WCHAR wszRfc1766[6 ];
587     WCHAR wszLocaleName[32 ];
588   } RFC1766INFO;
589 
590   typedef struct tagRFC1766INFO *PRFC1766INFO;
591   typedef IEnumRfc1766 *LPENUMRFC1766;
592 
593   EXTERN_C const IID IID_IEnumRfc1766;
594 #if defined(__cplusplus) && !defined(CINTERFACE)
595   struct IEnumRfc1766 : public IUnknown {
596   public:
597     virtual HRESULT WINAPI Clone(IEnumRfc1766 **ppEnum) = 0;
598     virtual HRESULT WINAPI Next(ULONG celt,PRFC1766INFO rgelt,ULONG *pceltFetched) = 0;
599     virtual HRESULT WINAPI Reset(void) = 0;
600     virtual HRESULT WINAPI Skip(ULONG celt) = 0;
601   };
602 #else
603   typedef struct IEnumRfc1766Vtbl {
604     BEGIN_INTERFACE
605       HRESULT (WINAPI *QueryInterface)(IEnumRfc1766 *This,REFIID riid,void **ppvObject);
606       ULONG (WINAPI *AddRef)(IEnumRfc1766 *This);
607       ULONG (WINAPI *Release)(IEnumRfc1766 *This);
608       HRESULT (WINAPI *Clone)(IEnumRfc1766 *This,IEnumRfc1766 **ppEnum);
609       HRESULT (WINAPI *Next)(IEnumRfc1766 *This,ULONG celt,PRFC1766INFO rgelt,ULONG *pceltFetched);
610       HRESULT (WINAPI *Reset)(IEnumRfc1766 *This);
611       HRESULT (WINAPI *Skip)(IEnumRfc1766 *This,ULONG celt);
612     END_INTERFACE
613   } IEnumRfc1766Vtbl;
614   struct IEnumRfc1766 {
615     CONST_VTBL struct IEnumRfc1766Vtbl *lpVtbl;
616   };
617 #ifdef COBJMACROS
618 #define IEnumRfc1766_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
619 #define IEnumRfc1766_AddRef(This) (This)->lpVtbl->AddRef(This)
620 #define IEnumRfc1766_Release(This) (This)->lpVtbl->Release(This)
621 #define IEnumRfc1766_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
622 #define IEnumRfc1766_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
623 #define IEnumRfc1766_Reset(This) (This)->lpVtbl->Reset(This)
624 #define IEnumRfc1766_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
625 #endif
626 #endif
627   HRESULT WINAPI IEnumRfc1766_Clone_Proxy(IEnumRfc1766 *This,IEnumRfc1766 **ppEnum);
628   void __RPC_STUB IEnumRfc1766_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
629   HRESULT WINAPI IEnumRfc1766_Next_Proxy(IEnumRfc1766 *This,ULONG celt,PRFC1766INFO rgelt,ULONG *pceltFetched);
630   void __RPC_STUB IEnumRfc1766_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
631   HRESULT WINAPI IEnumRfc1766_Reset_Proxy(IEnumRfc1766 *This);
632   void __RPC_STUB IEnumRfc1766_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
633   HRESULT WINAPI IEnumRfc1766_Skip_Proxy(IEnumRfc1766 *This,ULONG celt);
634   void __RPC_STUB IEnumRfc1766_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
635 #endif
636 
637 #ifndef __IEnumScript_INTERFACE_DEFINED__
638 #define __IEnumScript_INTERFACE_DEFINED__
639 #define MAX_SCRIPT_NAME (48)
640 
641   typedef BYTE SCRIPT_ID;
642   __MINGW_EXTENSION typedef __int64 SCRIPT_IDS;
643 
644   typedef enum tagSCRIPTCONTF {
645     sidDefault = 0,sidMerge,sidAsciiSym,sidAsciiLatin,sidLatin,
646     sidGreek,sidCyrillic,sidArmenian,sidHebrew,sidArabic,
647     sidDevanagari,sidBengali,sidGurmukhi,sidGujarati,sidOriya,
648     sidTamil,sidTelugu,sidKannada,sidMalayalam,sidThai,
649     sidLao,sidTibetan,sidGeorgian,
650     sidHangul,sidKana,sidBopomofo,sidHan,
651     sidEthiopic,sidCanSyllabic,sidCherokee,
652     sidYi,sidBraille,sidRunic,sidOgham,sidSinhala,
653     sidSyriac,sidBurmese,sidKhmer,sidThaana,sidMongolian,
654     sidUserDefined,sidLim,
655     sidFEFirst = sidHangul,sidFELast = sidHan
656   } SCRIPTCONTF;
657 
658   typedef struct tagSCRIPTINFO {
659     SCRIPT_ID ScriptId;
660     UINT uiCodePage;
661     WCHAR wszDescription[48 ];
662     WCHAR wszFixedWidthFont[32 ];
663     WCHAR wszProportionalFont[32 ];
664   } SCRIPTINFO;
665 
666   typedef struct tagSCRIPTINFO *PSCRIPTINFO;
667   typedef IEnumScript *LPENUMScript;
668 
669   EXTERN_C const IID IID_IEnumScript;
670 #if defined(__cplusplus) && !defined(CINTERFACE)
671   struct IEnumScript : public IUnknown {
672   public:
673     virtual HRESULT WINAPI Clone(IEnumScript **ppEnum) = 0;
674     virtual HRESULT WINAPI Next(ULONG celt,PSCRIPTINFO rgelt,ULONG *pceltFetched) = 0;
675     virtual HRESULT WINAPI Reset(void) = 0;
676     virtual HRESULT WINAPI Skip(ULONG celt) = 0;
677   };
678 #else
679   typedef struct IEnumScriptVtbl {
680     BEGIN_INTERFACE
681       HRESULT (WINAPI *QueryInterface)(IEnumScript *This,REFIID riid,void **ppvObject);
682       ULONG (WINAPI *AddRef)(IEnumScript *This);
683       ULONG (WINAPI *Release)(IEnumScript *This);
684       HRESULT (WINAPI *Clone)(IEnumScript *This,IEnumScript **ppEnum);
685       HRESULT (WINAPI *Next)(IEnumScript *This,ULONG celt,PSCRIPTINFO rgelt,ULONG *pceltFetched);
686       HRESULT (WINAPI *Reset)(IEnumScript *This);
687       HRESULT (WINAPI *Skip)(IEnumScript *This,ULONG celt);
688     END_INTERFACE
689   } IEnumScriptVtbl;
690   struct IEnumScript {
691     CONST_VTBL struct IEnumScriptVtbl *lpVtbl;
692   };
693 #ifdef COBJMACROS
694 #define IEnumScript_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
695 #define IEnumScript_AddRef(This) (This)->lpVtbl->AddRef(This)
696 #define IEnumScript_Release(This) (This)->lpVtbl->Release(This)
697 #define IEnumScript_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
698 #define IEnumScript_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
699 #define IEnumScript_Reset(This) (This)->lpVtbl->Reset(This)
700 #define IEnumScript_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
701 #endif
702 #endif
703   HRESULT WINAPI IEnumScript_Clone_Proxy(IEnumScript *This,IEnumScript **ppEnum);
704   void __RPC_STUB IEnumScript_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
705   HRESULT WINAPI IEnumScript_Next_Proxy(IEnumScript *This,ULONG celt,PSCRIPTINFO rgelt,ULONG *pceltFetched);
706   void __RPC_STUB IEnumScript_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
707   HRESULT WINAPI IEnumScript_Reset_Proxy(IEnumScript *This);
708   void __RPC_STUB IEnumScript_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
709   HRESULT WINAPI IEnumScript_Skip_Proxy(IEnumScript *This,ULONG celt);
710   void __RPC_STUB IEnumScript_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
711 #endif
712 
713 #ifndef __IMLangConvertCharset_INTERFACE_DEFINED__
714 #define __IMLangConvertCharset_INTERFACE_DEFINED__
715   typedef enum tagMLCONVCHARF {
716     MLCONVCHARF_AUTODETECT = 1,MLCONVCHARF_ENTITIZE = 2,MLCONVCHARF_NCR_ENTITIZE = 2,MLCONVCHARF_NAME_ENTITIZE = 4,MLCONVCHARF_USEDEFCHAR = 8,
717     MLCONVCHARF_NOBESTFITCHARS = 16,MLCONVCHARF_DETECTJPN = 32
718   } MLCONVCHAR;
719 
720   typedef enum tagMLCPF {
721     MLDETECTF_MAILNEWS = 0x1,MLDETECTF_BROWSER = 0x2,MLDETECTF_VALID = 0x4,MLDETECTF_VALID_NLS = 0x8,MLDETECTF_PRESERVE_ORDER = 0x10,
722     MLDETECTF_PREFERRED_ONLY = 0x20,MLDETECTF_FILTER_SPECIALCHAR = 0x40,MLDETECTF_EURO_UTF8 = 0x80
723   } MLCP;
724 
725   typedef IMLangConvertCharset *LPMLANGCONVERTCHARSET;
726 
727   EXTERN_C const IID IID_IMLangConvertCharset;
728 #if defined(__cplusplus) && !defined(CINTERFACE)
729   struct IMLangConvertCharset : public IUnknown {
730   public:
731     virtual HRESULT WINAPI Initialize(UINT uiSrcCodePage,UINT uiDstCodePage,DWORD dwProperty) = 0;
732     virtual HRESULT WINAPI GetSourceCodePage(UINT *puiSrcCodePage) = 0;
733     virtual HRESULT WINAPI GetDestinationCodePage(UINT *puiDstCodePage) = 0;
734     virtual HRESULT WINAPI GetProperty(DWORD *pdwProperty) = 0;
735     virtual HRESULT WINAPI DoConversion(BYTE *pSrcStr,UINT *pcSrcSize,BYTE *pDstStr,UINT *pcDstSize) = 0;
736     virtual HRESULT WINAPI DoConversionToUnicode(CHAR *pSrcStr,UINT *pcSrcSize,WCHAR *pDstStr,UINT *pcDstSize) = 0;
737     virtual HRESULT WINAPI DoConversionFromUnicode(WCHAR *pSrcStr,UINT *pcSrcSize,CHAR *pDstStr,UINT *pcDstSize) = 0;
738   };
739 #else
740   typedef struct IMLangConvertCharsetVtbl {
741     BEGIN_INTERFACE
742       HRESULT (WINAPI *QueryInterface)(IMLangConvertCharset *This,REFIID riid,void **ppvObject);
743       ULONG (WINAPI *AddRef)(IMLangConvertCharset *This);
744       ULONG (WINAPI *Release)(IMLangConvertCharset *This);
745       HRESULT (WINAPI *Initialize)(IMLangConvertCharset *This,UINT uiSrcCodePage,UINT uiDstCodePage,DWORD dwProperty);
746       HRESULT (WINAPI *GetSourceCodePage)(IMLangConvertCharset *This,UINT *puiSrcCodePage);
747       HRESULT (WINAPI *GetDestinationCodePage)(IMLangConvertCharset *This,UINT *puiDstCodePage);
748       HRESULT (WINAPI *GetProperty)(IMLangConvertCharset *This,DWORD *pdwProperty);
749       HRESULT (WINAPI *DoConversion)(IMLangConvertCharset *This,BYTE *pSrcStr,UINT *pcSrcSize,BYTE *pDstStr,UINT *pcDstSize);
750       HRESULT (WINAPI *DoConversionToUnicode)(IMLangConvertCharset *This,CHAR *pSrcStr,UINT *pcSrcSize,WCHAR *pDstStr,UINT *pcDstSize);
751       HRESULT (WINAPI *DoConversionFromUnicode)(IMLangConvertCharset *This,WCHAR *pSrcStr,UINT *pcSrcSize,CHAR *pDstStr,UINT *pcDstSize);
752     END_INTERFACE
753   } IMLangConvertCharsetVtbl;
754   struct IMLangConvertCharset {
755     CONST_VTBL struct IMLangConvertCharsetVtbl *lpVtbl;
756   };
757 #ifdef COBJMACROS
758 #define IMLangConvertCharset_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
759 #define IMLangConvertCharset_AddRef(This) (This)->lpVtbl->AddRef(This)
760 #define IMLangConvertCharset_Release(This) (This)->lpVtbl->Release(This)
761 #define IMLangConvertCharset_Initialize(This,uiSrcCodePage,uiDstCodePage,dwProperty) (This)->lpVtbl->Initialize(This,uiSrcCodePage,uiDstCodePage,dwProperty)
762 #define IMLangConvertCharset_GetSourceCodePage(This,puiSrcCodePage) (This)->lpVtbl->GetSourceCodePage(This,puiSrcCodePage)
763 #define IMLangConvertCharset_GetDestinationCodePage(This,puiDstCodePage) (This)->lpVtbl->GetDestinationCodePage(This,puiDstCodePage)
764 #define IMLangConvertCharset_GetProperty(This,pdwProperty) (This)->lpVtbl->GetProperty(This,pdwProperty)
765 #define IMLangConvertCharset_DoConversion(This,pSrcStr,pcSrcSize,pDstStr,pcDstSize) (This)->lpVtbl->DoConversion(This,pSrcStr,pcSrcSize,pDstStr,pcDstSize)
766 #define IMLangConvertCharset_DoConversionToUnicode(This,pSrcStr,pcSrcSize,pDstStr,pcDstSize) (This)->lpVtbl->DoConversionToUnicode(This,pSrcStr,pcSrcSize,pDstStr,pcDstSize)
767 #define IMLangConvertCharset_DoConversionFromUnicode(This,pSrcStr,pcSrcSize,pDstStr,pcDstSize) (This)->lpVtbl->DoConversionFromUnicode(This,pSrcStr,pcSrcSize,pDstStr,pcDstSize)
768 #endif
769 #endif
770   HRESULT WINAPI IMLangConvertCharset_Initialize_Proxy(IMLangConvertCharset *This,UINT uiSrcCodePage,UINT uiDstCodePage,DWORD dwProperty);
771   void __RPC_STUB IMLangConvertCharset_Initialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
772   HRESULT WINAPI IMLangConvertCharset_GetSourceCodePage_Proxy(IMLangConvertCharset *This,UINT *puiSrcCodePage);
773   void __RPC_STUB IMLangConvertCharset_GetSourceCodePage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
774   HRESULT WINAPI IMLangConvertCharset_GetDestinationCodePage_Proxy(IMLangConvertCharset *This,UINT *puiDstCodePage);
775   void __RPC_STUB IMLangConvertCharset_GetDestinationCodePage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
776   HRESULT WINAPI IMLangConvertCharset_GetProperty_Proxy(IMLangConvertCharset *This,DWORD *pdwProperty);
777   void __RPC_STUB IMLangConvertCharset_GetProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
778   HRESULT WINAPI IMLangConvertCharset_DoConversion_Proxy(IMLangConvertCharset *This,BYTE *pSrcStr,UINT *pcSrcSize,BYTE *pDstStr,UINT *pcDstSize);
779   void __RPC_STUB IMLangConvertCharset_DoConversion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
780   HRESULT WINAPI IMLangConvertCharset_DoConversionToUnicode_Proxy(IMLangConvertCharset *This,CHAR *pSrcStr,UINT *pcSrcSize,WCHAR *pDstStr,UINT *pcDstSize);
781   void __RPC_STUB IMLangConvertCharset_DoConversionToUnicode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
782   HRESULT WINAPI IMLangConvertCharset_DoConversionFromUnicode_Proxy(IMLangConvertCharset *This,WCHAR *pSrcStr,UINT *pcSrcSize,CHAR *pDstStr,UINT *pcDstSize);
783   void __RPC_STUB IMLangConvertCharset_DoConversionFromUnicode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
784 #endif
785 
786   EXTERN_C const CLSID CLSID_CMLangConvertCharset;
787 #ifdef __cplusplus
788   class CMLangConvertCharset;
789 #endif
790 
791 #ifndef __IMultiLanguage_INTERFACE_DEFINED__
792 #define __IMultiLanguage_INTERFACE_DEFINED__
793   typedef IMultiLanguage *LPMULTILANGUAGE;
794 
795   EXTERN_C const IID IID_IMultiLanguage;
796 #if defined(__cplusplus) && !defined(CINTERFACE)
797   struct IMultiLanguage : public IUnknown {
798   public:
799     virtual HRESULT WINAPI GetNumberOfCodePageInfo(UINT *pcCodePage) = 0;
800     virtual HRESULT WINAPI GetCodePageInfo(UINT uiCodePage,PMIMECPINFO pCodePageInfo) = 0;
801     virtual HRESULT WINAPI GetFamilyCodePage(UINT uiCodePage,UINT *puiFamilyCodePage) = 0;
802     virtual HRESULT WINAPI EnumCodePages(DWORD grfFlags,IEnumCodePage **ppEnumCodePage) = 0;
803     virtual HRESULT WINAPI GetCharsetInfo(BSTR Charset,PMIMECSETINFO pCharsetInfo) = 0;
804     virtual HRESULT WINAPI IsConvertible(DWORD dwSrcEncoding,DWORD dwDstEncoding) = 0;
805     virtual HRESULT WINAPI ConvertString(DWORD *pdwMode,DWORD dwSrcEncoding,DWORD dwDstEncoding,BYTE *pSrcStr,UINT *pcSrcSize,BYTE *pDstStr,UINT *pcDstSize) = 0;
806     virtual HRESULT WINAPI ConvertStringToUnicode(DWORD *pdwMode,DWORD dwEncoding,CHAR *pSrcStr,UINT *pcSrcSize,WCHAR *pDstStr,UINT *pcDstSize) = 0;
807     virtual HRESULT WINAPI ConvertStringFromUnicode(DWORD *pdwMode,DWORD dwEncoding,WCHAR *pSrcStr,UINT *pcSrcSize,CHAR *pDstStr,UINT *pcDstSize) = 0;
808     virtual HRESULT WINAPI ConvertStringReset(void) = 0;
809     virtual HRESULT WINAPI GetRfc1766FromLcid(LCID Locale,BSTR *pbstrRfc1766) = 0;
810     virtual HRESULT WINAPI GetLcidFromRfc1766(LCID *pLocale,BSTR bstrRfc1766) = 0;
811     virtual HRESULT WINAPI EnumRfc1766(IEnumRfc1766 **ppEnumRfc1766) = 0;
812     virtual HRESULT WINAPI GetRfc1766Info(LCID Locale,PRFC1766INFO pRfc1766Info) = 0;
813     virtual HRESULT WINAPI CreateConvertCharset(UINT uiSrcCodePage,UINT uiDstCodePage,DWORD dwProperty,IMLangConvertCharset **ppMLangConvertCharset) = 0;
814   };
815 #else
816   typedef struct IMultiLanguageVtbl {
817     BEGIN_INTERFACE
818       HRESULT (WINAPI *QueryInterface)(IMultiLanguage *This,REFIID riid,void **ppvObject);
819       ULONG (WINAPI *AddRef)(IMultiLanguage *This);
820       ULONG (WINAPI *Release)(IMultiLanguage *This);
821       HRESULT (WINAPI *GetNumberOfCodePageInfo)(IMultiLanguage *This,UINT *pcCodePage);
822       HRESULT (WINAPI *GetCodePageInfo)(IMultiLanguage *This,UINT uiCodePage,PMIMECPINFO pCodePageInfo);
823       HRESULT (WINAPI *GetFamilyCodePage)(IMultiLanguage *This,UINT uiCodePage,UINT *puiFamilyCodePage);
824       HRESULT (WINAPI *EnumCodePages)(IMultiLanguage *This,DWORD grfFlags,IEnumCodePage **ppEnumCodePage);
825       HRESULT (WINAPI *GetCharsetInfo)(IMultiLanguage *This,BSTR Charset,PMIMECSETINFO pCharsetInfo);
826       HRESULT (WINAPI *IsConvertible)(IMultiLanguage *This,DWORD dwSrcEncoding,DWORD dwDstEncoding);
827       HRESULT (WINAPI *ConvertString)(IMultiLanguage *This,DWORD *pdwMode,DWORD dwSrcEncoding,DWORD dwDstEncoding,BYTE *pSrcStr,UINT *pcSrcSize,BYTE *pDstStr,UINT *pcDstSize);
828       HRESULT (WINAPI *ConvertStringToUnicode)(IMultiLanguage *This,DWORD *pdwMode,DWORD dwEncoding,CHAR *pSrcStr,UINT *pcSrcSize,WCHAR *pDstStr,UINT *pcDstSize);
829       HRESULT (WINAPI *ConvertStringFromUnicode)(IMultiLanguage *This,DWORD *pdwMode,DWORD dwEncoding,WCHAR *pSrcStr,UINT *pcSrcSize,CHAR *pDstStr,UINT *pcDstSize);
830       HRESULT (WINAPI *ConvertStringReset)(IMultiLanguage *This);
831       HRESULT (WINAPI *GetRfc1766FromLcid)(IMultiLanguage *This,LCID Locale,BSTR *pbstrRfc1766);
832       HRESULT (WINAPI *GetLcidFromRfc1766)(IMultiLanguage *This,LCID *pLocale,BSTR bstrRfc1766);
833       HRESULT (WINAPI *EnumRfc1766)(IMultiLanguage *This,IEnumRfc1766 **ppEnumRfc1766);
834       HRESULT (WINAPI *GetRfc1766Info)(IMultiLanguage *This,LCID Locale,PRFC1766INFO pRfc1766Info);
835       HRESULT (WINAPI *CreateConvertCharset)(IMultiLanguage *This,UINT uiSrcCodePage,UINT uiDstCodePage,DWORD dwProperty,IMLangConvertCharset **ppMLangConvertCharset);
836     END_INTERFACE
837   } IMultiLanguageVtbl;
838   struct IMultiLanguage {
839     CONST_VTBL struct IMultiLanguageVtbl *lpVtbl;
840   };
841 #ifdef COBJMACROS
842 #define IMultiLanguage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
843 #define IMultiLanguage_AddRef(This) (This)->lpVtbl->AddRef(This)
844 #define IMultiLanguage_Release(This) (This)->lpVtbl->Release(This)
845 #define IMultiLanguage_GetNumberOfCodePageInfo(This,pcCodePage) (This)->lpVtbl->GetNumberOfCodePageInfo(This,pcCodePage)
846 #define IMultiLanguage_GetCodePageInfo(This,uiCodePage,pCodePageInfo) (This)->lpVtbl->GetCodePageInfo(This,uiCodePage,pCodePageInfo)
847 #define IMultiLanguage_GetFamilyCodePage(This,uiCodePage,puiFamilyCodePage) (This)->lpVtbl->GetFamilyCodePage(This,uiCodePage,puiFamilyCodePage)
848 #define IMultiLanguage_EnumCodePages(This,grfFlags,ppEnumCodePage) (This)->lpVtbl->EnumCodePages(This,grfFlags,ppEnumCodePage)
849 #define IMultiLanguage_GetCharsetInfo(This,Charset,pCharsetInfo) (This)->lpVtbl->GetCharsetInfo(This,Charset,pCharsetInfo)
850 #define IMultiLanguage_IsConvertible(This,dwSrcEncoding,dwDstEncoding) (This)->lpVtbl->IsConvertible(This,dwSrcEncoding,dwDstEncoding)
851 #define IMultiLanguage_ConvertString(This,pdwMode,dwSrcEncoding,dwDstEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize) (This)->lpVtbl->ConvertString(This,pdwMode,dwSrcEncoding,dwDstEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize)
852 #define IMultiLanguage_ConvertStringToUnicode(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize) (This)->lpVtbl->ConvertStringToUnicode(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize)
853 #define IMultiLanguage_ConvertStringFromUnicode(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize) (This)->lpVtbl->ConvertStringFromUnicode(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize)
854 #define IMultiLanguage_ConvertStringReset(This) (This)->lpVtbl->ConvertStringReset(This)
855 #define IMultiLanguage_GetRfc1766FromLcid(This,Locale,pbstrRfc1766) (This)->lpVtbl->GetRfc1766FromLcid(This,Locale,pbstrRfc1766)
856 #define IMultiLanguage_GetLcidFromRfc1766(This,pLocale,bstrRfc1766) (This)->lpVtbl->GetLcidFromRfc1766(This,pLocale,bstrRfc1766)
857 #define IMultiLanguage_EnumRfc1766(This,ppEnumRfc1766) (This)->lpVtbl->EnumRfc1766(This,ppEnumRfc1766)
858 #define IMultiLanguage_GetRfc1766Info(This,Locale,pRfc1766Info) (This)->lpVtbl->GetRfc1766Info(This,Locale,pRfc1766Info)
859 #define IMultiLanguage_CreateConvertCharset(This,uiSrcCodePage,uiDstCodePage,dwProperty,ppMLangConvertCharset) (This)->lpVtbl->CreateConvertCharset(This,uiSrcCodePage,uiDstCodePage,dwProperty,ppMLangConvertCharset)
860 #endif
861 #endif
862   HRESULT WINAPI IMultiLanguage_GetNumberOfCodePageInfo_Proxy(IMultiLanguage *This,UINT *pcCodePage);
863   void __RPC_STUB IMultiLanguage_GetNumberOfCodePageInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
864   HRESULT WINAPI IMultiLanguage_GetCodePageInfo_Proxy(IMultiLanguage *This,UINT uiCodePage,PMIMECPINFO pCodePageInfo);
865   void __RPC_STUB IMultiLanguage_GetCodePageInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
866   HRESULT WINAPI IMultiLanguage_GetFamilyCodePage_Proxy(IMultiLanguage *This,UINT uiCodePage,UINT *puiFamilyCodePage);
867   void __RPC_STUB IMultiLanguage_GetFamilyCodePage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
868   HRESULT WINAPI IMultiLanguage_EnumCodePages_Proxy(IMultiLanguage *This,DWORD grfFlags,IEnumCodePage **ppEnumCodePage);
869   void __RPC_STUB IMultiLanguage_EnumCodePages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
870   HRESULT WINAPI IMultiLanguage_GetCharsetInfo_Proxy(IMultiLanguage *This,BSTR Charset,PMIMECSETINFO pCharsetInfo);
871   void __RPC_STUB IMultiLanguage_GetCharsetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
872   HRESULT WINAPI IMultiLanguage_IsConvertible_Proxy(IMultiLanguage *This,DWORD dwSrcEncoding,DWORD dwDstEncoding);
873   void __RPC_STUB IMultiLanguage_IsConvertible_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
874   HRESULT WINAPI IMultiLanguage_ConvertString_Proxy(IMultiLanguage *This,DWORD *pdwMode,DWORD dwSrcEncoding,DWORD dwDstEncoding,BYTE *pSrcStr,UINT *pcSrcSize,BYTE *pDstStr,UINT *pcDstSize);
875   void __RPC_STUB IMultiLanguage_ConvertString_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
876   HRESULT WINAPI IMultiLanguage_ConvertStringToUnicode_Proxy(IMultiLanguage *This,DWORD *pdwMode,DWORD dwEncoding,CHAR *pSrcStr,UINT *pcSrcSize,WCHAR *pDstStr,UINT *pcDstSize);
877   void __RPC_STUB IMultiLanguage_ConvertStringToUnicode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
878   HRESULT WINAPI IMultiLanguage_ConvertStringFromUnicode_Proxy(IMultiLanguage *This,DWORD *pdwMode,DWORD dwEncoding,WCHAR *pSrcStr,UINT *pcSrcSize,CHAR *pDstStr,UINT *pcDstSize);
879   void __RPC_STUB IMultiLanguage_ConvertStringFromUnicode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
880   HRESULT WINAPI IMultiLanguage_ConvertStringReset_Proxy(IMultiLanguage *This);
881   void __RPC_STUB IMultiLanguage_ConvertStringReset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
882   HRESULT WINAPI IMultiLanguage_GetRfc1766FromLcid_Proxy(IMultiLanguage *This,LCID Locale,BSTR *pbstrRfc1766);
883   void __RPC_STUB IMultiLanguage_GetRfc1766FromLcid_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
884   HRESULT WINAPI IMultiLanguage_GetLcidFromRfc1766_Proxy(IMultiLanguage *This,LCID *pLocale,BSTR bstrRfc1766);
885   void __RPC_STUB IMultiLanguage_GetLcidFromRfc1766_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
886   HRESULT WINAPI IMultiLanguage_EnumRfc1766_Proxy(IMultiLanguage *This,IEnumRfc1766 **ppEnumRfc1766);
887   void __RPC_STUB IMultiLanguage_EnumRfc1766_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
888   HRESULT WINAPI IMultiLanguage_GetRfc1766Info_Proxy(IMultiLanguage *This,LCID Locale,PRFC1766INFO pRfc1766Info);
889   void __RPC_STUB IMultiLanguage_GetRfc1766Info_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
890   HRESULT WINAPI IMultiLanguage_CreateConvertCharset_Proxy(IMultiLanguage *This,UINT uiSrcCodePage,UINT uiDstCodePage,DWORD dwProperty,IMLangConvertCharset **ppMLangConvertCharset);
891   void __RPC_STUB IMultiLanguage_CreateConvertCharset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
892 #endif
893 
894 #ifndef __IMultiLanguage2_INTERFACE_DEFINED__
895 #define __IMultiLanguage2_INTERFACE_DEFINED__
896   typedef IMultiLanguage2 *LPMULTILANGUAGE2;
897 
898   typedef enum tagMLDETECTCP {
899     MLDETECTCP_NONE = 0,MLDETECTCP_7BIT = 1,MLDETECTCP_8BIT = 2,MLDETECTCP_DBCS = 4,MLDETECTCP_HTML = 8,MLDETECTCP_NUMBER = 16
900   } MLDETECTCP;
901 
902   typedef struct tagDetectEncodingInfo {
903     UINT nLangID;
904     UINT nCodePage;
905     INT nDocPercent;
906     INT nConfidence;
907   } DetectEncodingInfo;
908 
909   typedef struct tagDetectEncodingInfo *pDetectEncodingInfo;
910 
911   typedef enum tagSCRIPTFONTCONTF {
912     SCRIPTCONTF_FIXED_FONT = 0x1,SCRIPTCONTF_PROPORTIONAL_FONT = 0x2,SCRIPTCONTF_SCRIPT_USER = 0x10000,SCRIPTCONTF_SCRIPT_HIDE = 0x20000,
913     SCRIPTCONTF_SCRIPT_SYSTEM = 0x40000
914   } SCRIPTFONTCONTF;
915 
916   typedef struct tagSCRIPFONTINFO {
917     SCRIPT_IDS scripts;
918     WCHAR wszFont[32 ];
919   } SCRIPTFONTINFO;
920 
921   typedef struct tagSCRIPFONTINFO *PSCRIPTFONTINFO;
922 
923   EXTERN_C const IID IID_IMultiLanguage2;
924 #if defined(__cplusplus) && !defined(CINTERFACE)
925   struct IMultiLanguage2 : public IUnknown {
926   public:
927     virtual HRESULT WINAPI GetNumberOfCodePageInfo(UINT *pcCodePage) = 0;
928     virtual HRESULT WINAPI GetCodePageInfo(UINT uiCodePage,LANGID LangId,PMIMECPINFO pCodePageInfo) = 0;
929     virtual HRESULT WINAPI GetFamilyCodePage(UINT uiCodePage,UINT *puiFamilyCodePage) = 0;
930     virtual HRESULT WINAPI EnumCodePages(DWORD grfFlags,LANGID LangId,IEnumCodePage **ppEnumCodePage) = 0;
931     virtual HRESULT WINAPI GetCharsetInfo(BSTR Charset,PMIMECSETINFO pCharsetInfo) = 0;
932     virtual HRESULT WINAPI IsConvertible(DWORD dwSrcEncoding,DWORD dwDstEncoding) = 0;
933     virtual HRESULT WINAPI ConvertString(DWORD *pdwMode,DWORD dwSrcEncoding,DWORD dwDstEncoding,BYTE *pSrcStr,UINT *pcSrcSize,BYTE *pDstStr,UINT *pcDstSize) = 0;
934     virtual HRESULT WINAPI ConvertStringToUnicode(DWORD *pdwMode,DWORD dwEncoding,CHAR *pSrcStr,UINT *pcSrcSize,WCHAR *pDstStr,UINT *pcDstSize) = 0;
935     virtual HRESULT WINAPI ConvertStringFromUnicode(DWORD *pdwMode,DWORD dwEncoding,WCHAR *pSrcStr,UINT *pcSrcSize,CHAR *pDstStr,UINT *pcDstSize) = 0;
936     virtual HRESULT WINAPI ConvertStringReset(void) = 0;
937     virtual HRESULT WINAPI GetRfc1766FromLcid(LCID Locale,BSTR *pbstrRfc1766) = 0;
938     virtual HRESULT WINAPI GetLcidFromRfc1766(LCID *pLocale,BSTR bstrRfc1766) = 0;
939     virtual HRESULT WINAPI EnumRfc1766(LANGID LangId,IEnumRfc1766 **ppEnumRfc1766) = 0;
940     virtual HRESULT WINAPI GetRfc1766Info(LCID Locale,LANGID LangId,PRFC1766INFO pRfc1766Info) = 0;
941     virtual HRESULT WINAPI CreateConvertCharset(UINT uiSrcCodePage,UINT uiDstCodePage,DWORD dwProperty,IMLangConvertCharset **ppMLangConvertCharset) = 0;
942     virtual HRESULT WINAPI ConvertStringInIStream(DWORD *pdwMode,DWORD dwFlag,WCHAR *lpFallBack,DWORD dwSrcEncoding,DWORD dwDstEncoding,IStream *pstmIn,IStream *pstmOut) = 0;
943     virtual HRESULT WINAPI ConvertStringToUnicodeEx(DWORD *pdwMode,DWORD dwEncoding,CHAR *pSrcStr,UINT *pcSrcSize,WCHAR *pDstStr,UINT *pcDstSize,DWORD dwFlag,WCHAR *lpFallBack) = 0;
944     virtual HRESULT WINAPI ConvertStringFromUnicodeEx(DWORD *pdwMode,DWORD dwEncoding,WCHAR *pSrcStr,UINT *pcSrcSize,CHAR *pDstStr,UINT *pcDstSize,DWORD dwFlag,WCHAR *lpFallBack) = 0;
945     virtual HRESULT WINAPI DetectCodepageInIStream(DWORD dwFlag,DWORD dwPrefWinCodePage,IStream *pstmIn,DetectEncodingInfo *lpEncoding,INT *pnScores) = 0;
946     virtual HRESULT WINAPI DetectInputCodepage(DWORD dwFlag,DWORD dwPrefWinCodePage,CHAR *pSrcStr,INT *pcSrcSize,DetectEncodingInfo *lpEncoding,INT *pnScores) = 0;
947     virtual HRESULT WINAPI ValidateCodePage(UINT uiCodePage,HWND hwnd) = 0;
948     virtual HRESULT WINAPI GetCodePageDescription(UINT uiCodePage,LCID lcid,LPWSTR lpWideCharStr,int cchWideChar) = 0;
949     virtual HRESULT WINAPI IsCodePageInstallable(UINT uiCodePage) = 0;
950     virtual HRESULT WINAPI SetMimeDBSource(MIMECONTF dwSource) = 0;
951     virtual HRESULT WINAPI GetNumberOfScripts(UINT *pnScripts) = 0;
952     virtual HRESULT WINAPI EnumScripts(DWORD dwFlags,LANGID LangId,IEnumScript **ppEnumScript) = 0;
953     virtual HRESULT WINAPI ValidateCodePageEx(UINT uiCodePage,HWND hwnd,DWORD dwfIODControl) = 0;
954   };
955 #else
956   typedef struct IMultiLanguage2Vtbl {
957     BEGIN_INTERFACE
958       HRESULT (WINAPI *QueryInterface)(IMultiLanguage2 *This,REFIID riid,void **ppvObject);
959       ULONG (WINAPI *AddRef)(IMultiLanguage2 *This);
960       ULONG (WINAPI *Release)(IMultiLanguage2 *This);
961       HRESULT (WINAPI *GetNumberOfCodePageInfo)(IMultiLanguage2 *This,UINT *pcCodePage);
962       HRESULT (WINAPI *GetCodePageInfo)(IMultiLanguage2 *This,UINT uiCodePage,LANGID LangId,PMIMECPINFO pCodePageInfo);
963       HRESULT (WINAPI *GetFamilyCodePage)(IMultiLanguage2 *This,UINT uiCodePage,UINT *puiFamilyCodePage);
964       HRESULT (WINAPI *EnumCodePages)(IMultiLanguage2 *This,DWORD grfFlags,LANGID LangId,IEnumCodePage **ppEnumCodePage);
965       HRESULT (WINAPI *GetCharsetInfo)(IMultiLanguage2 *This,BSTR Charset,PMIMECSETINFO pCharsetInfo);
966       HRESULT (WINAPI *IsConvertible)(IMultiLanguage2 *This,DWORD dwSrcEncoding,DWORD dwDstEncoding);
967       HRESULT (WINAPI *ConvertString)(IMultiLanguage2 *This,DWORD *pdwMode,DWORD dwSrcEncoding,DWORD dwDstEncoding,BYTE *pSrcStr,UINT *pcSrcSize,BYTE *pDstStr,UINT *pcDstSize);
968       HRESULT (WINAPI *ConvertStringToUnicode)(IMultiLanguage2 *This,DWORD *pdwMode,DWORD dwEncoding,CHAR *pSrcStr,UINT *pcSrcSize,WCHAR *pDstStr,UINT *pcDstSize);
969       HRESULT (WINAPI *ConvertStringFromUnicode)(IMultiLanguage2 *This,DWORD *pdwMode,DWORD dwEncoding,WCHAR *pSrcStr,UINT *pcSrcSize,CHAR *pDstStr,UINT *pcDstSize);
970       HRESULT (WINAPI *ConvertStringReset)(IMultiLanguage2 *This);
971       HRESULT (WINAPI *GetRfc1766FromLcid)(IMultiLanguage2 *This,LCID Locale,BSTR *pbstrRfc1766);
972       HRESULT (WINAPI *GetLcidFromRfc1766)(IMultiLanguage2 *This,LCID *pLocale,BSTR bstrRfc1766);
973       HRESULT (WINAPI *EnumRfc1766)(IMultiLanguage2 *This,LANGID LangId,IEnumRfc1766 **ppEnumRfc1766);
974       HRESULT (WINAPI *GetRfc1766Info)(IMultiLanguage2 *This,LCID Locale,LANGID LangId,PRFC1766INFO pRfc1766Info);
975       HRESULT (WINAPI *CreateConvertCharset)(IMultiLanguage2 *This,UINT uiSrcCodePage,UINT uiDstCodePage,DWORD dwProperty,IMLangConvertCharset **ppMLangConvertCharset);
976       HRESULT (WINAPI *ConvertStringInIStream)(IMultiLanguage2 *This,DWORD *pdwMode,DWORD dwFlag,WCHAR *lpFallBack,DWORD dwSrcEncoding,DWORD dwDstEncoding,IStream *pstmIn,IStream *pstmOut);
977       HRESULT (WINAPI *ConvertStringToUnicodeEx)(IMultiLanguage2 *This,DWORD *pdwMode,DWORD dwEncoding,CHAR *pSrcStr,UINT *pcSrcSize,WCHAR *pDstStr,UINT *pcDstSize,DWORD dwFlag,WCHAR *lpFallBack);
978       HRESULT (WINAPI *ConvertStringFromUnicodeEx)(IMultiLanguage2 *This,DWORD *pdwMode,DWORD dwEncoding,WCHAR *pSrcStr,UINT *pcSrcSize,CHAR *pDstStr,UINT *pcDstSize,DWORD dwFlag,WCHAR *lpFallBack);
979       HRESULT (WINAPI *DetectCodepageInIStream)(IMultiLanguage2 *This,DWORD dwFlag,DWORD dwPrefWinCodePage,IStream *pstmIn,DetectEncodingInfo *lpEncoding,INT *pnScores);
980       HRESULT (WINAPI *DetectInputCodepage)(IMultiLanguage2 *This,DWORD dwFlag,DWORD dwPrefWinCodePage,CHAR *pSrcStr,INT *pcSrcSize,DetectEncodingInfo *lpEncoding,INT *pnScores);
981       HRESULT (WINAPI *ValidateCodePage)(IMultiLanguage2 *This,UINT uiCodePage,HWND hwnd);
982       HRESULT (WINAPI *GetCodePageDescription)(IMultiLanguage2 *This,UINT uiCodePage,LCID lcid,LPWSTR lpWideCharStr,int cchWideChar);
983       HRESULT (WINAPI *IsCodePageInstallable)(IMultiLanguage2 *This,UINT uiCodePage);
984       HRESULT (WINAPI *SetMimeDBSource)(IMultiLanguage2 *This,MIMECONTF dwSource);
985       HRESULT (WINAPI *GetNumberOfScripts)(IMultiLanguage2 *This,UINT *pnScripts);
986       HRESULT (WINAPI *EnumScripts)(IMultiLanguage2 *This,DWORD dwFlags,LANGID LangId,IEnumScript **ppEnumScript);
987       HRESULT (WINAPI *ValidateCodePageEx)(IMultiLanguage2 *This,UINT uiCodePage,HWND hwnd,DWORD dwfIODControl);
988     END_INTERFACE
989   } IMultiLanguage2Vtbl;
990   struct IMultiLanguage2 {
991     CONST_VTBL struct IMultiLanguage2Vtbl *lpVtbl;
992   };
993 #ifdef COBJMACROS
994 #define IMultiLanguage2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
995 #define IMultiLanguage2_AddRef(This) (This)->lpVtbl->AddRef(This)
996 #define IMultiLanguage2_Release(This) (This)->lpVtbl->Release(This)
997 #define IMultiLanguage2_GetNumberOfCodePageInfo(This,pcCodePage) (This)->lpVtbl->GetNumberOfCodePageInfo(This,pcCodePage)
998 #define IMultiLanguage2_GetCodePageInfo(This,uiCodePage,LangId,pCodePageInfo) (This)->lpVtbl->GetCodePageInfo(This,uiCodePage,LangId,pCodePageInfo)
999 #define IMultiLanguage2_GetFamilyCodePage(This,uiCodePage,puiFamilyCodePage) (This)->lpVtbl->GetFamilyCodePage(This,uiCodePage,puiFamilyCodePage)
1000 #define IMultiLanguage2_EnumCodePages(This,grfFlags,LangId,ppEnumCodePage) (This)->lpVtbl->EnumCodePages(This,grfFlags,LangId,ppEnumCodePage)
1001 #define IMultiLanguage2_GetCharsetInfo(This,Charset,pCharsetInfo) (This)->lpVtbl->GetCharsetInfo(This,Charset,pCharsetInfo)
1002 #define IMultiLanguage2_IsConvertible(This,dwSrcEncoding,dwDstEncoding) (This)->lpVtbl->IsConvertible(This,dwSrcEncoding,dwDstEncoding)
1003 #define IMultiLanguage2_ConvertString(This,pdwMode,dwSrcEncoding,dwDstEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize) (This)->lpVtbl->ConvertString(This,pdwMode,dwSrcEncoding,dwDstEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize)
1004 #define IMultiLanguage2_ConvertStringToUnicode(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize) (This)->lpVtbl->ConvertStringToUnicode(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize)
1005 #define IMultiLanguage2_ConvertStringFromUnicode(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize) (This)->lpVtbl->ConvertStringFromUnicode(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize)
1006 #define IMultiLanguage2_ConvertStringReset(This) (This)->lpVtbl->ConvertStringReset(This)
1007 #define IMultiLanguage2_GetRfc1766FromLcid(This,Locale,pbstrRfc1766) (This)->lpVtbl->GetRfc1766FromLcid(This,Locale,pbstrRfc1766)
1008 #define IMultiLanguage2_GetLcidFromRfc1766(This,pLocale,bstrRfc1766) (This)->lpVtbl->GetLcidFromRfc1766(This,pLocale,bstrRfc1766)
1009 #define IMultiLanguage2_EnumRfc1766(This,LangId,ppEnumRfc1766) (This)->lpVtbl->EnumRfc1766(This,LangId,ppEnumRfc1766)
1010 #define IMultiLanguage2_GetRfc1766Info(This,Locale,LangId,pRfc1766Info) (This)->lpVtbl->GetRfc1766Info(This,Locale,LangId,pRfc1766Info)
1011 #define IMultiLanguage2_CreateConvertCharset(This,uiSrcCodePage,uiDstCodePage,dwProperty,ppMLangConvertCharset) (This)->lpVtbl->CreateConvertCharset(This,uiSrcCodePage,uiDstCodePage,dwProperty,ppMLangConvertCharset)
1012 #define IMultiLanguage2_ConvertStringInIStream(This,pdwMode,dwFlag,lpFallBack,dwSrcEncoding,dwDstEncoding,pstmIn,pstmOut) (This)->lpVtbl->ConvertStringInIStream(This,pdwMode,dwFlag,lpFallBack,dwSrcEncoding,dwDstEncoding,pstmIn,pstmOut)
1013 #define IMultiLanguage2_ConvertStringToUnicodeEx(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize,dwFlag,lpFallBack) (This)->lpVtbl->ConvertStringToUnicodeEx(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize,dwFlag,lpFallBack)
1014 #define IMultiLanguage2_ConvertStringFromUnicodeEx(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize,dwFlag,lpFallBack) (This)->lpVtbl->ConvertStringFromUnicodeEx(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize,dwFlag,lpFallBack)
1015 #define IMultiLanguage2_DetectCodepageInIStream(This,dwFlag,dwPrefWinCodePage,pstmIn,lpEncoding,pnScores) (This)->lpVtbl->DetectCodepageInIStream(This,dwFlag,dwPrefWinCodePage,pstmIn,lpEncoding,pnScores)
1016 #define IMultiLanguage2_DetectInputCodepage(This,dwFlag,dwPrefWinCodePage,pSrcStr,pcSrcSize,lpEncoding,pnScores) (This)->lpVtbl->DetectInputCodepage(This,dwFlag,dwPrefWinCodePage,pSrcStr,pcSrcSize,lpEncoding,pnScores)
1017 #define IMultiLanguage2_ValidateCodePage(This,uiCodePage,hwnd) (This)->lpVtbl->ValidateCodePage(This,uiCodePage,hwnd)
1018 #define IMultiLanguage2_GetCodePageDescription(This,uiCodePage,lcid,lpWideCharStr,cchWideChar) (This)->lpVtbl->GetCodePageDescription(This,uiCodePage,lcid,lpWideCharStr,cchWideChar)
1019 #define IMultiLanguage2_IsCodePageInstallable(This,uiCodePage) (This)->lpVtbl->IsCodePageInstallable(This,uiCodePage)
1020 #define IMultiLanguage2_SetMimeDBSource(This,dwSource) (This)->lpVtbl->SetMimeDBSource(This,dwSource)
1021 #define IMultiLanguage2_GetNumberOfScripts(This,pnScripts) (This)->lpVtbl->GetNumberOfScripts(This,pnScripts)
1022 #define IMultiLanguage2_EnumScripts(This,dwFlags,LangId,ppEnumScript) (This)->lpVtbl->EnumScripts(This,dwFlags,LangId,ppEnumScript)
1023 #define IMultiLanguage2_ValidateCodePageEx(This,uiCodePage,hwnd,dwfIODControl) (This)->lpVtbl->ValidateCodePageEx(This,uiCodePage,hwnd,dwfIODControl)
1024 #endif
1025 #endif
1026   HRESULT WINAPI IMultiLanguage2_GetNumberOfCodePageInfo_Proxy(IMultiLanguage2 *This,UINT *pcCodePage);
1027   void __RPC_STUB IMultiLanguage2_GetNumberOfCodePageInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1028   HRESULT WINAPI IMultiLanguage2_GetCodePageInfo_Proxy(IMultiLanguage2 *This,UINT uiCodePage,LANGID LangId,PMIMECPINFO pCodePageInfo);
1029   void __RPC_STUB IMultiLanguage2_GetCodePageInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1030   HRESULT WINAPI IMultiLanguage2_GetFamilyCodePage_Proxy(IMultiLanguage2 *This,UINT uiCodePage,UINT *puiFamilyCodePage);
1031   void __RPC_STUB IMultiLanguage2_GetFamilyCodePage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1032   HRESULT WINAPI IMultiLanguage2_EnumCodePages_Proxy(IMultiLanguage2 *This,DWORD grfFlags,LANGID LangId,IEnumCodePage **ppEnumCodePage);
1033   void __RPC_STUB IMultiLanguage2_EnumCodePages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1034   HRESULT WINAPI IMultiLanguage2_GetCharsetInfo_Proxy(IMultiLanguage2 *This,BSTR Charset,PMIMECSETINFO pCharsetInfo);
1035   void __RPC_STUB IMultiLanguage2_GetCharsetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1036   HRESULT WINAPI IMultiLanguage2_IsConvertible_Proxy(IMultiLanguage2 *This,DWORD dwSrcEncoding,DWORD dwDstEncoding);
1037   void __RPC_STUB IMultiLanguage2_IsConvertible_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1038   HRESULT WINAPI IMultiLanguage2_ConvertString_Proxy(IMultiLanguage2 *This,DWORD *pdwMode,DWORD dwSrcEncoding,DWORD dwDstEncoding,BYTE *pSrcStr,UINT *pcSrcSize,BYTE *pDstStr,UINT *pcDstSize);
1039   void __RPC_STUB IMultiLanguage2_ConvertString_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1040   HRESULT WINAPI IMultiLanguage2_ConvertStringToUnicode_Proxy(IMultiLanguage2 *This,DWORD *pdwMode,DWORD dwEncoding,CHAR *pSrcStr,UINT *pcSrcSize,WCHAR *pDstStr,UINT *pcDstSize);
1041   void __RPC_STUB IMultiLanguage2_ConvertStringToUnicode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1042   HRESULT WINAPI IMultiLanguage2_ConvertStringFromUnicode_Proxy(IMultiLanguage2 *This,DWORD *pdwMode,DWORD dwEncoding,WCHAR *pSrcStr,UINT *pcSrcSize,CHAR *pDstStr,UINT *pcDstSize);
1043   void __RPC_STUB IMultiLanguage2_ConvertStringFromUnicode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1044   HRESULT WINAPI IMultiLanguage2_ConvertStringReset_Proxy(IMultiLanguage2 *This);
1045   void __RPC_STUB IMultiLanguage2_ConvertStringReset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1046   HRESULT WINAPI IMultiLanguage2_GetRfc1766FromLcid_Proxy(IMultiLanguage2 *This,LCID Locale,BSTR *pbstrRfc1766);
1047   void __RPC_STUB IMultiLanguage2_GetRfc1766FromLcid_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1048   HRESULT WINAPI IMultiLanguage2_GetLcidFromRfc1766_Proxy(IMultiLanguage2 *This,LCID *pLocale,BSTR bstrRfc1766);
1049   void __RPC_STUB IMultiLanguage2_GetLcidFromRfc1766_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1050   HRESULT WINAPI IMultiLanguage2_EnumRfc1766_Proxy(IMultiLanguage2 *This,LANGID LangId,IEnumRfc1766 **ppEnumRfc1766);
1051   void __RPC_STUB IMultiLanguage2_EnumRfc1766_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1052   HRESULT WINAPI IMultiLanguage2_GetRfc1766Info_Proxy(IMultiLanguage2 *This,LCID Locale,LANGID LangId,PRFC1766INFO pRfc1766Info);
1053   void __RPC_STUB IMultiLanguage2_GetRfc1766Info_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1054   HRESULT WINAPI IMultiLanguage2_CreateConvertCharset_Proxy(IMultiLanguage2 *This,UINT uiSrcCodePage,UINT uiDstCodePage,DWORD dwProperty,IMLangConvertCharset **ppMLangConvertCharset);
1055   void __RPC_STUB IMultiLanguage2_CreateConvertCharset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1056   HRESULT WINAPI IMultiLanguage2_ConvertStringInIStream_Proxy(IMultiLanguage2 *This,DWORD *pdwMode,DWORD dwFlag,WCHAR *lpFallBack,DWORD dwSrcEncoding,DWORD dwDstEncoding,IStream *pstmIn,IStream *pstmOut);
1057   void __RPC_STUB IMultiLanguage2_ConvertStringInIStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1058   HRESULT WINAPI IMultiLanguage2_ConvertStringToUnicodeEx_Proxy(IMultiLanguage2 *This,DWORD *pdwMode,DWORD dwEncoding,CHAR *pSrcStr,UINT *pcSrcSize,WCHAR *pDstStr,UINT *pcDstSize,DWORD dwFlag,WCHAR *lpFallBack);
1059   void __RPC_STUB IMultiLanguage2_ConvertStringToUnicodeEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1060   HRESULT WINAPI IMultiLanguage2_ConvertStringFromUnicodeEx_Proxy(IMultiLanguage2 *This,DWORD *pdwMode,DWORD dwEncoding,WCHAR *pSrcStr,UINT *pcSrcSize,CHAR *pDstStr,UINT *pcDstSize,DWORD dwFlag,WCHAR *lpFallBack);
1061   void __RPC_STUB IMultiLanguage2_ConvertStringFromUnicodeEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1062   HRESULT WINAPI IMultiLanguage2_DetectCodepageInIStream_Proxy(IMultiLanguage2 *This,DWORD dwFlag,DWORD dwPrefWinCodePage,IStream *pstmIn,DetectEncodingInfo *lpEncoding,INT *pnScores);
1063   void __RPC_STUB IMultiLanguage2_DetectCodepageInIStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1064   HRESULT WINAPI IMultiLanguage2_DetectInputCodepage_Proxy(IMultiLanguage2 *This,DWORD dwFlag,DWORD dwPrefWinCodePage,CHAR *pSrcStr,INT *pcSrcSize,DetectEncodingInfo *lpEncoding,INT *pnScores);
1065   void __RPC_STUB IMultiLanguage2_DetectInputCodepage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1066   HRESULT WINAPI IMultiLanguage2_ValidateCodePage_Proxy(IMultiLanguage2 *This,UINT uiCodePage,HWND hwnd);
1067   void __RPC_STUB IMultiLanguage2_ValidateCodePage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1068   HRESULT WINAPI IMultiLanguage2_GetCodePageDescription_Proxy(IMultiLanguage2 *This,UINT uiCodePage,LCID lcid,LPWSTR lpWideCharStr,int cchWideChar);
1069   void __RPC_STUB IMultiLanguage2_GetCodePageDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1070   HRESULT WINAPI IMultiLanguage2_IsCodePageInstallable_Proxy(IMultiLanguage2 *This,UINT uiCodePage);
1071   void __RPC_STUB IMultiLanguage2_IsCodePageInstallable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1072   HRESULT WINAPI IMultiLanguage2_SetMimeDBSource_Proxy(IMultiLanguage2 *This,MIMECONTF dwSource);
1073   void __RPC_STUB IMultiLanguage2_SetMimeDBSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1074   HRESULT WINAPI IMultiLanguage2_GetNumberOfScripts_Proxy(IMultiLanguage2 *This,UINT *pnScripts);
1075   void __RPC_STUB IMultiLanguage2_GetNumberOfScripts_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1076   HRESULT WINAPI IMultiLanguage2_EnumScripts_Proxy(IMultiLanguage2 *This,DWORD dwFlags,LANGID LangId,IEnumScript **ppEnumScript);
1077   void __RPC_STUB IMultiLanguage2_EnumScripts_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1078   HRESULT WINAPI IMultiLanguage2_ValidateCodePageEx_Proxy(IMultiLanguage2 *This,UINT uiCodePage,HWND hwnd,DWORD dwfIODControl);
1079   void __RPC_STUB IMultiLanguage2_ValidateCodePageEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1080 #endif
1081 
1082 #ifndef __IMLangCodePages_INTERFACE_DEFINED__
1083 #define __IMLangCodePages_INTERFACE_DEFINED__
1084   typedef IMLangCodePages *PMLANGCODEPAGES;
1085 
1086   EXTERN_C const IID IID_IMLangCodePages;
1087 #if defined(__cplusplus) && !defined(CINTERFACE)
1088   struct IMLangCodePages : public IUnknown {
1089   public:
1090     virtual HRESULT WINAPI GetCharCodePages(WCHAR chSrc,DWORD *pdwCodePages) = 0;
1091     virtual HRESULT WINAPI GetStrCodePages(const WCHAR *pszSrc,__LONG32 cchSrc,DWORD dwPriorityCodePages,DWORD *pdwCodePages,__LONG32 *pcchCodePages) = 0;
1092     virtual HRESULT WINAPI CodePageToCodePages(UINT uCodePage,DWORD *pdwCodePages) = 0;
1093     virtual HRESULT WINAPI CodePagesToCodePage(DWORD dwCodePages,UINT uDefaultCodePage,UINT *puCodePage) = 0;
1094   };
1095 #else
1096   typedef struct IMLangCodePagesVtbl {
1097     BEGIN_INTERFACE
1098       HRESULT (WINAPI *QueryInterface)(IMLangCodePages *This,REFIID riid,void **ppvObject);
1099       ULONG (WINAPI *AddRef)(IMLangCodePages *This);
1100       ULONG (WINAPI *Release)(IMLangCodePages *This);
1101       HRESULT (WINAPI *GetCharCodePages)(IMLangCodePages *This,WCHAR chSrc,DWORD *pdwCodePages);
1102       HRESULT (WINAPI *GetStrCodePages)(IMLangCodePages *This,const WCHAR *pszSrc,__LONG32 cchSrc,DWORD dwPriorityCodePages,DWORD *pdwCodePages,__LONG32 *pcchCodePages);
1103       HRESULT (WINAPI *CodePageToCodePages)(IMLangCodePages *This,UINT uCodePage,DWORD *pdwCodePages);
1104       HRESULT (WINAPI *CodePagesToCodePage)(IMLangCodePages *This,DWORD dwCodePages,UINT uDefaultCodePage,UINT *puCodePage);
1105     END_INTERFACE
1106   } IMLangCodePagesVtbl;
1107   struct IMLangCodePages {
1108     CONST_VTBL struct IMLangCodePagesVtbl *lpVtbl;
1109   };
1110 #ifdef COBJMACROS
1111 #define IMLangCodePages_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1112 #define IMLangCodePages_AddRef(This) (This)->lpVtbl->AddRef(This)
1113 #define IMLangCodePages_Release(This) (This)->lpVtbl->Release(This)
1114 #define IMLangCodePages_GetCharCodePages(This,chSrc,pdwCodePages) (This)->lpVtbl->GetCharCodePages(This,chSrc,pdwCodePages)
1115 #define IMLangCodePages_GetStrCodePages(This,pszSrc,cchSrc,dwPriorityCodePages,pdwCodePages,pcchCodePages) (This)->lpVtbl->GetStrCodePages(This,pszSrc,cchSrc,dwPriorityCodePages,pdwCodePages,pcchCodePages)
1116 #define IMLangCodePages_CodePageToCodePages(This,uCodePage,pdwCodePages) (This)->lpVtbl->CodePageToCodePages(This,uCodePage,pdwCodePages)
1117 #define IMLangCodePages_CodePagesToCodePage(This,dwCodePages,uDefaultCodePage,puCodePage) (This)->lpVtbl->CodePagesToCodePage(This,dwCodePages,uDefaultCodePage,puCodePage)
1118 #endif
1119 #endif
1120   HRESULT WINAPI IMLangCodePages_GetCharCodePages_Proxy(IMLangCodePages *This,WCHAR chSrc,DWORD *pdwCodePages);
1121   void __RPC_STUB IMLangCodePages_GetCharCodePages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1122   HRESULT WINAPI IMLangCodePages_GetStrCodePages_Proxy(IMLangCodePages *This,const WCHAR *pszSrc,__LONG32 cchSrc,DWORD dwPriorityCodePages,DWORD *pdwCodePages,__LONG32 *pcchCodePages);
1123   void __RPC_STUB IMLangCodePages_GetStrCodePages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1124   HRESULT WINAPI IMLangCodePages_CodePageToCodePages_Proxy(IMLangCodePages *This,UINT uCodePage,DWORD *pdwCodePages);
1125   void __RPC_STUB IMLangCodePages_CodePageToCodePages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1126   HRESULT WINAPI IMLangCodePages_CodePagesToCodePage_Proxy(IMLangCodePages *This,DWORD dwCodePages,UINT uDefaultCodePage,UINT *puCodePage);
1127   void __RPC_STUB IMLangCodePages_CodePagesToCodePage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1128 #endif
1129 
1130 #ifndef __IMLangFontLink_INTERFACE_DEFINED__
1131 #define __IMLangFontLink_INTERFACE_DEFINED__
1132   typedef IMLangFontLink *PMLANGFONTLINK;
1133 
1134   EXTERN_C const IID IID_IMLangFontLink;
1135 #if defined(__cplusplus) && !defined(CINTERFACE)
1136   struct IMLangFontLink : public IMLangCodePages {
1137   public:
1138     virtual HRESULT WINAPI GetFontCodePages(HDC hDC,HFONT hFont,DWORD *pdwCodePages) = 0;
1139     virtual HRESULT WINAPI MapFont(HDC hDC,DWORD dwCodePages,HFONT hSrcFont,HFONT *phDestFont) = 0;
1140     virtual HRESULT WINAPI ReleaseFont(HFONT hFont) = 0;
1141     virtual HRESULT WINAPI ResetFontMapping(void) = 0;
1142   };
1143 #else
1144   typedef struct IMLangFontLinkVtbl {
1145     BEGIN_INTERFACE
1146       HRESULT (WINAPI *QueryInterface)(IMLangFontLink *This,REFIID riid,void **ppvObject);
1147       ULONG (WINAPI *AddRef)(IMLangFontLink *This);
1148       ULONG (WINAPI *Release)(IMLangFontLink *This);
1149       HRESULT (WINAPI *GetCharCodePages)(IMLangFontLink *This,WCHAR chSrc,DWORD *pdwCodePages);
1150       HRESULT (WINAPI *GetStrCodePages)(IMLangFontLink *This,const WCHAR *pszSrc,__LONG32 cchSrc,DWORD dwPriorityCodePages,DWORD *pdwCodePages,__LONG32 *pcchCodePages);
1151       HRESULT (WINAPI *CodePageToCodePages)(IMLangFontLink *This,UINT uCodePage,DWORD *pdwCodePages);
1152       HRESULT (WINAPI *CodePagesToCodePage)(IMLangFontLink *This,DWORD dwCodePages,UINT uDefaultCodePage,UINT *puCodePage);
1153       HRESULT (WINAPI *GetFontCodePages)(IMLangFontLink *This,HDC hDC,HFONT hFont,DWORD *pdwCodePages);
1154       HRESULT (WINAPI *MapFont)(IMLangFontLink *This,HDC hDC,DWORD dwCodePages,HFONT hSrcFont,HFONT *phDestFont);
1155       HRESULT (WINAPI *ReleaseFont)(IMLangFontLink *This,HFONT hFont);
1156       HRESULT (WINAPI *ResetFontMapping)(IMLangFontLink *This);
1157     END_INTERFACE
1158   } IMLangFontLinkVtbl;
1159   struct IMLangFontLink {
1160     CONST_VTBL struct IMLangFontLinkVtbl *lpVtbl;
1161   };
1162 #ifdef COBJMACROS
1163 #define IMLangFontLink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1164 #define IMLangFontLink_AddRef(This) (This)->lpVtbl->AddRef(This)
1165 #define IMLangFontLink_Release(This) (This)->lpVtbl->Release(This)
1166 #define IMLangFontLink_GetCharCodePages(This,chSrc,pdwCodePages) (This)->lpVtbl->GetCharCodePages(This,chSrc,pdwCodePages)
1167 #define IMLangFontLink_GetStrCodePages(This,pszSrc,cchSrc,dwPriorityCodePages,pdwCodePages,pcchCodePages) (This)->lpVtbl->GetStrCodePages(This,pszSrc,cchSrc,dwPriorityCodePages,pdwCodePages,pcchCodePages)
1168 #define IMLangFontLink_CodePageToCodePages(This,uCodePage,pdwCodePages) (This)->lpVtbl->CodePageToCodePages(This,uCodePage,pdwCodePages)
1169 #define IMLangFontLink_CodePagesToCodePage(This,dwCodePages,uDefaultCodePage,puCodePage) (This)->lpVtbl->CodePagesToCodePage(This,dwCodePages,uDefaultCodePage,puCodePage)
1170 #define IMLangFontLink_GetFontCodePages(This,hDC,hFont,pdwCodePages) (This)->lpVtbl->GetFontCodePages(This,hDC,hFont,pdwCodePages)
1171 #define IMLangFontLink_MapFont(This,hDC,dwCodePages,hSrcFont,phDestFont) (This)->lpVtbl->MapFont(This,hDC,dwCodePages,hSrcFont,phDestFont)
1172 #define IMLangFontLink_ReleaseFont(This,hFont) (This)->lpVtbl->ReleaseFont(This,hFont)
1173 #define IMLangFontLink_ResetFontMapping(This) (This)->lpVtbl->ResetFontMapping(This)
1174 #endif
1175 #endif
1176   HRESULT WINAPI IMLangFontLink_GetFontCodePages_Proxy(IMLangFontLink *This,HDC hDC,HFONT hFont,DWORD *pdwCodePages);
1177   void __RPC_STUB IMLangFontLink_GetFontCodePages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1178   HRESULT WINAPI IMLangFontLink_MapFont_Proxy(IMLangFontLink *This,HDC hDC,DWORD dwCodePages,HFONT hSrcFont,HFONT *phDestFont);
1179   void __RPC_STUB IMLangFontLink_MapFont_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1180   HRESULT WINAPI IMLangFontLink_ReleaseFont_Proxy(IMLangFontLink *This,HFONT hFont);
1181   void __RPC_STUB IMLangFontLink_ReleaseFont_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1182   HRESULT WINAPI IMLangFontLink_ResetFontMapping_Proxy(IMLangFontLink *This);
1183   void __RPC_STUB IMLangFontLink_ResetFontMapping_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1184 #endif
1185 
1186 #ifndef __IMLangFontLink2_INTERFACE_DEFINED__
1187 #define __IMLangFontLink2_INTERFACE_DEFINED__
1188   typedef struct tagUNICODERANGE {
1189     WCHAR wcFrom;
1190     WCHAR wcTo;
1191   } UNICODERANGE;
1192 
1193   typedef IMLangFontLink2 *PMLANGFONTLINK2;
1194 
1195   EXTERN_C const IID IID_IMLangFontLink2;
1196 #if defined(__cplusplus) && !defined(CINTERFACE)
1197   struct IMLangFontLink2 : public IMLangCodePages {
1198   public:
1199     virtual HRESULT WINAPI GetFontCodePages(HDC hDC,HFONT hFont,DWORD *pdwCodePages) = 0;
1200     virtual HRESULT WINAPI ReleaseFont(HFONT hFont) = 0;
1201     virtual HRESULT WINAPI ResetFontMapping(void) = 0;
1202     virtual HRESULT WINAPI MapFont(HDC hDC,DWORD dwCodePages,WCHAR chSrc,HFONT *pFont) = 0;
1203     virtual HRESULT WINAPI GetFontUnicodeRanges(HDC hDC,UINT *puiRanges,UNICODERANGE *pUranges) = 0;
1204     virtual HRESULT WINAPI GetScriptFontInfo(SCRIPT_ID sid,DWORD dwFlags,UINT *puiFonts,SCRIPTFONTINFO *pScriptFont) = 0;
1205     virtual HRESULT WINAPI CodePageToScriptID(UINT uiCodePage,SCRIPT_ID *pSid) = 0;
1206   };
1207 #else
1208   typedef struct IMLangFontLink2Vtbl {
1209     BEGIN_INTERFACE
1210       HRESULT (WINAPI *QueryInterface)(IMLangFontLink2 *This,REFIID riid,void **ppvObject);
1211       ULONG (WINAPI *AddRef)(IMLangFontLink2 *This);
1212       ULONG (WINAPI *Release)(IMLangFontLink2 *This);
1213       HRESULT (WINAPI *GetCharCodePages)(IMLangFontLink2 *This,WCHAR chSrc,DWORD *pdwCodePages);
1214       HRESULT (WINAPI *GetStrCodePages)(IMLangFontLink2 *This,const WCHAR *pszSrc,__LONG32 cchSrc,DWORD dwPriorityCodePages,DWORD *pdwCodePages,__LONG32 *pcchCodePages);
1215       HRESULT (WINAPI *CodePageToCodePages)(IMLangFontLink2 *This,UINT uCodePage,DWORD *pdwCodePages);
1216       HRESULT (WINAPI *CodePagesToCodePage)(IMLangFontLink2 *This,DWORD dwCodePages,UINT uDefaultCodePage,UINT *puCodePage);
1217       HRESULT (WINAPI *GetFontCodePages)(IMLangFontLink2 *This,HDC hDC,HFONT hFont,DWORD *pdwCodePages);
1218       HRESULT (WINAPI *ReleaseFont)(IMLangFontLink2 *This,HFONT hFont);
1219       HRESULT (WINAPI *ResetFontMapping)(IMLangFontLink2 *This);
1220       HRESULT (WINAPI *MapFont)(IMLangFontLink2 *This,HDC hDC,DWORD dwCodePages,WCHAR chSrc,HFONT *pFont);
1221       HRESULT (WINAPI *GetFontUnicodeRanges)(IMLangFontLink2 *This,HDC hDC,UINT *puiRanges,UNICODERANGE *pUranges);
1222       HRESULT (WINAPI *GetScriptFontInfo)(IMLangFontLink2 *This,SCRIPT_ID sid,DWORD dwFlags,UINT *puiFonts,SCRIPTFONTINFO *pScriptFont);
1223       HRESULT (WINAPI *CodePageToScriptID)(IMLangFontLink2 *This,UINT uiCodePage,SCRIPT_ID *pSid);
1224     END_INTERFACE
1225   } IMLangFontLink2Vtbl;
1226   struct IMLangFontLink2 {
1227     CONST_VTBL struct IMLangFontLink2Vtbl *lpVtbl;
1228   };
1229 #ifdef COBJMACROS
1230 #define IMLangFontLink2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1231 #define IMLangFontLink2_AddRef(This) (This)->lpVtbl->AddRef(This)
1232 #define IMLangFontLink2_Release(This) (This)->lpVtbl->Release(This)
1233 #define IMLangFontLink2_GetCharCodePages(This,chSrc,pdwCodePages) (This)->lpVtbl->GetCharCodePages(This,chSrc,pdwCodePages)
1234 #define IMLangFontLink2_GetStrCodePages(This,pszSrc,cchSrc,dwPriorityCodePages,pdwCodePages,pcchCodePages) (This)->lpVtbl->GetStrCodePages(This,pszSrc,cchSrc,dwPriorityCodePages,pdwCodePages,pcchCodePages)
1235 #define IMLangFontLink2_CodePageToCodePages(This,uCodePage,pdwCodePages) (This)->lpVtbl->CodePageToCodePages(This,uCodePage,pdwCodePages)
1236 #define IMLangFontLink2_CodePagesToCodePage(This,dwCodePages,uDefaultCodePage,puCodePage) (This)->lpVtbl->CodePagesToCodePage(This,dwCodePages,uDefaultCodePage,puCodePage)
1237 #define IMLangFontLink2_GetFontCodePages(This,hDC,hFont,pdwCodePages) (This)->lpVtbl->GetFontCodePages(This,hDC,hFont,pdwCodePages)
1238 #define IMLangFontLink2_ReleaseFont(This,hFont) (This)->lpVtbl->ReleaseFont(This,hFont)
1239 #define IMLangFontLink2_ResetFontMapping(This) (This)->lpVtbl->ResetFontMapping(This)
1240 #define IMLangFontLink2_MapFont(This,hDC,dwCodePages,chSrc,pFont) (This)->lpVtbl->MapFont(This,hDC,dwCodePages,chSrc,pFont)
1241 #define IMLangFontLink2_GetFontUnicodeRanges(This,hDC,puiRanges,pUranges) (This)->lpVtbl->GetFontUnicodeRanges(This,hDC,puiRanges,pUranges)
1242 #define IMLangFontLink2_GetScriptFontInfo(This,sid,dwFlags,puiFonts,pScriptFont) (This)->lpVtbl->GetScriptFontInfo(This,sid,dwFlags,puiFonts,pScriptFont)
1243 #define IMLangFontLink2_CodePageToScriptID(This,uiCodePage,pSid) (This)->lpVtbl->CodePageToScriptID(This,uiCodePage,pSid)
1244 #endif
1245 #endif
1246   HRESULT WINAPI IMLangFontLink2_GetFontCodePages_Proxy(IMLangFontLink2 *This,HDC hDC,HFONT hFont,DWORD *pdwCodePages);
1247   void __RPC_STUB IMLangFontLink2_GetFontCodePages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1248   HRESULT WINAPI IMLangFontLink2_ReleaseFont_Proxy(IMLangFontLink2 *This,HFONT hFont);
1249   void __RPC_STUB IMLangFontLink2_ReleaseFont_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1250   HRESULT WINAPI IMLangFontLink2_ResetFontMapping_Proxy(IMLangFontLink2 *This);
1251   void __RPC_STUB IMLangFontLink2_ResetFontMapping_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1252   HRESULT WINAPI IMLangFontLink2_MapFont_Proxy(IMLangFontLink2 *This,HDC hDC,DWORD dwCodePages,WCHAR chSrc,HFONT *pFont);
1253   void __RPC_STUB IMLangFontLink2_MapFont_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1254   HRESULT WINAPI IMLangFontLink2_GetFontUnicodeRanges_Proxy(IMLangFontLink2 *This,HDC hDC,UINT *puiRanges,UNICODERANGE *pUranges);
1255   void __RPC_STUB IMLangFontLink2_GetFontUnicodeRanges_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1256   HRESULT WINAPI IMLangFontLink2_GetScriptFontInfo_Proxy(IMLangFontLink2 *This,SCRIPT_ID sid,DWORD dwFlags,UINT *puiFonts,SCRIPTFONTINFO *pScriptFont);
1257   void __RPC_STUB IMLangFontLink2_GetScriptFontInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1258   HRESULT WINAPI IMLangFontLink2_CodePageToScriptID_Proxy(IMLangFontLink2 *This,UINT uiCodePage,SCRIPT_ID *pSid);
1259   void __RPC_STUB IMLangFontLink2_CodePageToScriptID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1260 #endif
1261 
1262 #ifndef __IMultiLanguage3_INTERFACE_DEFINED__
1263 #define __IMultiLanguage3_INTERFACE_DEFINED__
1264   typedef IMultiLanguage3 *LPMULTILANGUAGE3;
1265 
1266   EXTERN_C const IID IID_IMultiLanguage3;
1267 #if defined(__cplusplus) && !defined(CINTERFACE)
1268   struct IMultiLanguage3 : public IMultiLanguage2 {
1269   public:
1270     virtual HRESULT WINAPI DetectOutboundCodePage(DWORD dwFlags,LPCWSTR lpWideCharStr,UINT cchWideChar,UINT *puiPreferredCodePages,UINT nPreferredCodePages,UINT *puiDetectedCodePages,UINT *pnDetectedCodePages,WCHAR *lpSpecialChar) = 0;
1271     virtual HRESULT WINAPI DetectOutboundCodePageInIStream(DWORD dwFlags,IStream *pStrIn,UINT *puiPreferredCodePages,UINT nPreferredCodePages,UINT *puiDetectedCodePages,UINT *pnDetectedCodePages,WCHAR *lpSpecialChar) = 0;
1272   };
1273 #else
1274   typedef struct IMultiLanguage3Vtbl {
1275     BEGIN_INTERFACE
1276       HRESULT (WINAPI *QueryInterface)(IMultiLanguage3 *This,REFIID riid,void **ppvObject);
1277       ULONG (WINAPI *AddRef)(IMultiLanguage3 *This);
1278       ULONG (WINAPI *Release)(IMultiLanguage3 *This);
1279       HRESULT (WINAPI *GetNumberOfCodePageInfo)(IMultiLanguage3 *This,UINT *pcCodePage);
1280       HRESULT (WINAPI *GetCodePageInfo)(IMultiLanguage3 *This,UINT uiCodePage,LANGID LangId,PMIMECPINFO pCodePageInfo);
1281       HRESULT (WINAPI *GetFamilyCodePage)(IMultiLanguage3 *This,UINT uiCodePage,UINT *puiFamilyCodePage);
1282       HRESULT (WINAPI *EnumCodePages)(IMultiLanguage3 *This,DWORD grfFlags,LANGID LangId,IEnumCodePage **ppEnumCodePage);
1283       HRESULT (WINAPI *GetCharsetInfo)(IMultiLanguage3 *This,BSTR Charset,PMIMECSETINFO pCharsetInfo);
1284       HRESULT (WINAPI *IsConvertible)(IMultiLanguage3 *This,DWORD dwSrcEncoding,DWORD dwDstEncoding);
1285       HRESULT (WINAPI *ConvertString)(IMultiLanguage3 *This,DWORD *pdwMode,DWORD dwSrcEncoding,DWORD dwDstEncoding,BYTE *pSrcStr,UINT *pcSrcSize,BYTE *pDstStr,UINT *pcDstSize);
1286       HRESULT (WINAPI *ConvertStringToUnicode)(IMultiLanguage3 *This,DWORD *pdwMode,DWORD dwEncoding,CHAR *pSrcStr,UINT *pcSrcSize,WCHAR *pDstStr,UINT *pcDstSize);
1287       HRESULT (WINAPI *ConvertStringFromUnicode)(IMultiLanguage3 *This,DWORD *pdwMode,DWORD dwEncoding,WCHAR *pSrcStr,UINT *pcSrcSize,CHAR *pDstStr,UINT *pcDstSize);
1288       HRESULT (WINAPI *ConvertStringReset)(IMultiLanguage3 *This);
1289       HRESULT (WINAPI *GetRfc1766FromLcid)(IMultiLanguage3 *This,LCID Locale,BSTR *pbstrRfc1766);
1290       HRESULT (WINAPI *GetLcidFromRfc1766)(IMultiLanguage3 *This,LCID *pLocale,BSTR bstrRfc1766);
1291       HRESULT (WINAPI *EnumRfc1766)(IMultiLanguage3 *This,LANGID LangId,IEnumRfc1766 **ppEnumRfc1766);
1292       HRESULT (WINAPI *GetRfc1766Info)(IMultiLanguage3 *This,LCID Locale,LANGID LangId,PRFC1766INFO pRfc1766Info);
1293       HRESULT (WINAPI *CreateConvertCharset)(IMultiLanguage3 *This,UINT uiSrcCodePage,UINT uiDstCodePage,DWORD dwProperty,IMLangConvertCharset **ppMLangConvertCharset);
1294       HRESULT (WINAPI *ConvertStringInIStream)(IMultiLanguage3 *This,DWORD *pdwMode,DWORD dwFlag,WCHAR *lpFallBack,DWORD dwSrcEncoding,DWORD dwDstEncoding,IStream *pstmIn,IStream *pstmOut);
1295       HRESULT (WINAPI *ConvertStringToUnicodeEx)(IMultiLanguage3 *This,DWORD *pdwMode,DWORD dwEncoding,CHAR *pSrcStr,UINT *pcSrcSize,WCHAR *pDstStr,UINT *pcDstSize,DWORD dwFlag,WCHAR *lpFallBack);
1296       HRESULT (WINAPI *ConvertStringFromUnicodeEx)(IMultiLanguage3 *This,DWORD *pdwMode,DWORD dwEncoding,WCHAR *pSrcStr,UINT *pcSrcSize,CHAR *pDstStr,UINT *pcDstSize,DWORD dwFlag,WCHAR *lpFallBack);
1297       HRESULT (WINAPI *DetectCodepageInIStream)(IMultiLanguage3 *This,DWORD dwFlag,DWORD dwPrefWinCodePage,IStream *pstmIn,DetectEncodingInfo *lpEncoding,INT *pnScores);
1298       HRESULT (WINAPI *DetectInputCodepage)(IMultiLanguage3 *This,DWORD dwFlag,DWORD dwPrefWinCodePage,CHAR *pSrcStr,INT *pcSrcSize,DetectEncodingInfo *lpEncoding,INT *pnScores);
1299       HRESULT (WINAPI *ValidateCodePage)(IMultiLanguage3 *This,UINT uiCodePage,HWND hwnd);
1300       HRESULT (WINAPI *GetCodePageDescription)(IMultiLanguage3 *This,UINT uiCodePage,LCID lcid,LPWSTR lpWideCharStr,int cchWideChar);
1301       HRESULT (WINAPI *IsCodePageInstallable)(IMultiLanguage3 *This,UINT uiCodePage);
1302       HRESULT (WINAPI *SetMimeDBSource)(IMultiLanguage3 *This,MIMECONTF dwSource);
1303       HRESULT (WINAPI *GetNumberOfScripts)(IMultiLanguage3 *This,UINT *pnScripts);
1304       HRESULT (WINAPI *EnumScripts)(IMultiLanguage3 *This,DWORD dwFlags,LANGID LangId,IEnumScript **ppEnumScript);
1305       HRESULT (WINAPI *ValidateCodePageEx)(IMultiLanguage3 *This,UINT uiCodePage,HWND hwnd,DWORD dwfIODControl);
1306       HRESULT (WINAPI *DetectOutboundCodePage)(IMultiLanguage3 *This,DWORD dwFlags,LPCWSTR lpWideCharStr,UINT cchWideChar,UINT *puiPreferredCodePages,UINT nPreferredCodePages,UINT *puiDetectedCodePages,UINT *pnDetectedCodePages,WCHAR *lpSpecialChar);
1307       HRESULT (WINAPI *DetectOutboundCodePageInIStream)(IMultiLanguage3 *This,DWORD dwFlags,IStream *pStrIn,UINT *puiPreferredCodePages,UINT nPreferredCodePages,UINT *puiDetectedCodePages,UINT *pnDetectedCodePages,WCHAR *lpSpecialChar);
1308     END_INTERFACE
1309   } IMultiLanguage3Vtbl;
1310   struct IMultiLanguage3 {
1311     CONST_VTBL struct IMultiLanguage3Vtbl *lpVtbl;
1312   };
1313 #ifdef COBJMACROS
1314 #define IMultiLanguage3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1315 #define IMultiLanguage3_AddRef(This) (This)->lpVtbl->AddRef(This)
1316 #define IMultiLanguage3_Release(This) (This)->lpVtbl->Release(This)
1317 #define IMultiLanguage3_GetNumberOfCodePageInfo(This,pcCodePage) (This)->lpVtbl->GetNumberOfCodePageInfo(This,pcCodePage)
1318 #define IMultiLanguage3_GetCodePageInfo(This,uiCodePage,LangId,pCodePageInfo) (This)->lpVtbl->GetCodePageInfo(This,uiCodePage,LangId,pCodePageInfo)
1319 #define IMultiLanguage3_GetFamilyCodePage(This,uiCodePage,puiFamilyCodePage) (This)->lpVtbl->GetFamilyCodePage(This,uiCodePage,puiFamilyCodePage)
1320 #define IMultiLanguage3_EnumCodePages(This,grfFlags,LangId,ppEnumCodePage) (This)->lpVtbl->EnumCodePages(This,grfFlags,LangId,ppEnumCodePage)
1321 #define IMultiLanguage3_GetCharsetInfo(This,Charset,pCharsetInfo) (This)->lpVtbl->GetCharsetInfo(This,Charset,pCharsetInfo)
1322 #define IMultiLanguage3_IsConvertible(This,dwSrcEncoding,dwDstEncoding) (This)->lpVtbl->IsConvertible(This,dwSrcEncoding,dwDstEncoding)
1323 #define IMultiLanguage3_ConvertString(This,pdwMode,dwSrcEncoding,dwDstEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize) (This)->lpVtbl->ConvertString(This,pdwMode,dwSrcEncoding,dwDstEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize)
1324 #define IMultiLanguage3_ConvertStringToUnicode(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize) (This)->lpVtbl->ConvertStringToUnicode(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize)
1325 #define IMultiLanguage3_ConvertStringFromUnicode(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize) (This)->lpVtbl->ConvertStringFromUnicode(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize)
1326 #define IMultiLanguage3_ConvertStringReset(This) (This)->lpVtbl->ConvertStringReset(This)
1327 #define IMultiLanguage3_GetRfc1766FromLcid(This,Locale,pbstrRfc1766) (This)->lpVtbl->GetRfc1766FromLcid(This,Locale,pbstrRfc1766)
1328 #define IMultiLanguage3_GetLcidFromRfc1766(This,pLocale,bstrRfc1766) (This)->lpVtbl->GetLcidFromRfc1766(This,pLocale,bstrRfc1766)
1329 #define IMultiLanguage3_EnumRfc1766(This,LangId,ppEnumRfc1766) (This)->lpVtbl->EnumRfc1766(This,LangId,ppEnumRfc1766)
1330 #define IMultiLanguage3_GetRfc1766Info(This,Locale,LangId,pRfc1766Info) (This)->lpVtbl->GetRfc1766Info(This,Locale,LangId,pRfc1766Info)
1331 #define IMultiLanguage3_CreateConvertCharset(This,uiSrcCodePage,uiDstCodePage,dwProperty,ppMLangConvertCharset) (This)->lpVtbl->CreateConvertCharset(This,uiSrcCodePage,uiDstCodePage,dwProperty,ppMLangConvertCharset)
1332 #define IMultiLanguage3_ConvertStringInIStream(This,pdwMode,dwFlag,lpFallBack,dwSrcEncoding,dwDstEncoding,pstmIn,pstmOut) (This)->lpVtbl->ConvertStringInIStream(This,pdwMode,dwFlag,lpFallBack,dwSrcEncoding,dwDstEncoding,pstmIn,pstmOut)
1333 #define IMultiLanguage3_ConvertStringToUnicodeEx(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize,dwFlag,lpFallBack) (This)->lpVtbl->ConvertStringToUnicodeEx(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize,dwFlag,lpFallBack)
1334 #define IMultiLanguage3_ConvertStringFromUnicodeEx(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize,dwFlag,lpFallBack) (This)->lpVtbl->ConvertStringFromUnicodeEx(This,pdwMode,dwEncoding,pSrcStr,pcSrcSize,pDstStr,pcDstSize,dwFlag,lpFallBack)
1335 #define IMultiLanguage3_DetectCodepageInIStream(This,dwFlag,dwPrefWinCodePage,pstmIn,lpEncoding,pnScores) (This)->lpVtbl->DetectCodepageInIStream(This,dwFlag,dwPrefWinCodePage,pstmIn,lpEncoding,pnScores)
1336 #define IMultiLanguage3_DetectInputCodepage(This,dwFlag,dwPrefWinCodePage,pSrcStr,pcSrcSize,lpEncoding,pnScores) (This)->lpVtbl->DetectInputCodepage(This,dwFlag,dwPrefWinCodePage,pSrcStr,pcSrcSize,lpEncoding,pnScores)
1337 #define IMultiLanguage3_ValidateCodePage(This,uiCodePage,hwnd) (This)->lpVtbl->ValidateCodePage(This,uiCodePage,hwnd)
1338 #define IMultiLanguage3_GetCodePageDescription(This,uiCodePage,lcid,lpWideCharStr,cchWideChar) (This)->lpVtbl->GetCodePageDescription(This,uiCodePage,lcid,lpWideCharStr,cchWideChar)
1339 #define IMultiLanguage3_IsCodePageInstallable(This,uiCodePage) (This)->lpVtbl->IsCodePageInstallable(This,uiCodePage)
1340 #define IMultiLanguage3_SetMimeDBSource(This,dwSource) (This)->lpVtbl->SetMimeDBSource(This,dwSource)
1341 #define IMultiLanguage3_GetNumberOfScripts(This,pnScripts) (This)->lpVtbl->GetNumberOfScripts(This,pnScripts)
1342 #define IMultiLanguage3_EnumScripts(This,dwFlags,LangId,ppEnumScript) (This)->lpVtbl->EnumScripts(This,dwFlags,LangId,ppEnumScript)
1343 #define IMultiLanguage3_ValidateCodePageEx(This,uiCodePage,hwnd,dwfIODControl) (This)->lpVtbl->ValidateCodePageEx(This,uiCodePage,hwnd,dwfIODControl)
1344 #define IMultiLanguage3_DetectOutboundCodePage(This,dwFlags,lpWideCharStr,cchWideChar,puiPreferredCodePages,nPreferredCodePages,puiDetectedCodePages,pnDetectedCodePages,lpSpecialChar) (This)->lpVtbl->DetectOutboundCodePage(This,dwFlags,lpWideCharStr,cchWideChar,puiPreferredCodePages,nPreferredCodePages,puiDetectedCodePages,pnDetectedCodePages,lpSpecialChar)
1345 #define IMultiLanguage3_DetectOutboundCodePageInIStream(This,dwFlags,pStrIn,puiPreferredCodePages,nPreferredCodePages,puiDetectedCodePages,pnDetectedCodePages,lpSpecialChar) (This)->lpVtbl->DetectOutboundCodePageInIStream(This,dwFlags,pStrIn,puiPreferredCodePages,nPreferredCodePages,puiDetectedCodePages,pnDetectedCodePages,lpSpecialChar)
1346 #endif
1347 #endif
1348   HRESULT WINAPI IMultiLanguage3_DetectOutboundCodePage_Proxy(IMultiLanguage3 *This,DWORD dwFlags,LPCWSTR lpWideCharStr,UINT cchWideChar,UINT *puiPreferredCodePages,UINT nPreferredCodePages,UINT *puiDetectedCodePages,UINT *pnDetectedCodePages,WCHAR *lpSpecialChar);
1349   void __RPC_STUB IMultiLanguage3_DetectOutboundCodePage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1350   HRESULT WINAPI IMultiLanguage3_DetectOutboundCodePageInIStream_Proxy(IMultiLanguage3 *This,DWORD dwFlags,IStream *pStrIn,UINT *puiPreferredCodePages,UINT nPreferredCodePages,UINT *puiDetectedCodePages,UINT *pnDetectedCodePages,WCHAR *lpSpecialChar);
1351   void __RPC_STUB IMultiLanguage3_DetectOutboundCodePageInIStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1352 #endif
1353 
1354   EXTERN_C const CLSID CLSID_CMultiLanguage;
1355 #ifdef __cplusplus
1356   class CMultiLanguage;
1357 #endif
1358 #endif
1359 
1360 #ifndef _MLANG_H_API_DEF_
1361 #define _MLANG_H_API_DEF_
1362   STDAPI LcidToRfc1766A(LCID Locale,LPSTR pszRfc1766,int iMaxLength);
1363   STDAPI LcidToRfc1766W(LCID Locale,LPWSTR pszRfc1766,int nChar);
1364 
1365 #define LcidToRfc1766 __MINGW_NAME_AW(LcidToRfc1766)
1366 
1367   STDAPI Rfc1766ToLcidA(LCID *pLocale,LPCSTR pszRfc1766);
1368   STDAPI Rfc1766ToLcidW(LCID *pLocale,LPCWSTR pszRfc1766);
1369 
1370 #define Rfc1766ToLcid __MINGW_NAME_AW(Rfc1766ToLcid)
1371 
1372   STDAPI IsConvertINetStringAvailable(DWORD dwSrcEncoding,DWORD dwDstEncoding);
1373   STDAPI ConvertINetString(LPDWORD lpdwMode,DWORD dwSrcEncoding,DWORD dwDstEncoding,LPCSTR lpSrcStr,LPINT lpnSrcSize,LPSTR lpDstStr,LPINT lpnDstSize);
1374   STDAPI ConvertINetMultiByteToUnicode(LPDWORD lpdwMode,DWORD dwEncoding,LPCSTR lpSrcStr,LPINT lpnMultiCharCount,LPWSTR lpDstStr,LPINT lpnWideCharCount);
1375   STDAPI ConvertINetUnicodeToMultiByte(LPDWORD lpdwMode,DWORD dwEncoding,LPCWSTR lpSrcStr,LPINT lpnWideCharCount,LPSTR lpDstStr,LPINT lpnMultiCharCount);
1376 #endif
1377 
1378   extern RPC_IF_HANDLE __MIDL_itf_mlang_0131_v0_0_c_ifspec;
1379   extern RPC_IF_HANDLE __MIDL_itf_mlang_0131_v0_0_s_ifspec;
1380 
1381 #ifdef __cplusplus
1382 }
1383 #endif
1384 #endif
1385