|  | /* | 
|  | * Copyright (C) 2004 Mike McCormack | 
|  | * | 
|  | * This library is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU Lesser General Public | 
|  | * License as published by the Free Software Foundation; either | 
|  | * version 2.1 of the License, or (at your option) any later version. | 
|  | * | 
|  | * This library is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
|  | * Lesser General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU Lesser General Public | 
|  | * License along with this library; if not, write to the Free Software | 
|  | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
|  | */ | 
|  |  | 
|  | import "unknwn.idl"; | 
|  |  | 
|  | interface IStream; | 
|  |  | 
|  | /* FIXME: LANDID is defined in winnt.h and mlang.h in the platform SDK */ | 
|  | cpp_quote("#ifndef _WINNT_") | 
|  | typedef WORD LANGID; | 
|  | cpp_quote("#endif") | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(359f3443-bd4a-11d0-b188-00aa0038c969), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IMLangCodePages : IUnknown | 
|  | { | 
|  | HRESULT GetCharCodePages( | 
|  | [in] WCHAR chSrc, | 
|  | DWORD *pdwCodePages); | 
|  | HRESULT GetStrCodePages( | 
|  | [in, size_is(cchSrc)] const WCHAR *pszSrc, | 
|  | [in] long cchSrc, | 
|  | [in] DWORD dwPriorityCodePages, | 
|  | [out] DWORD *pdwCodePages, | 
|  | [out] long *pcchCodePages); | 
|  | HRESULT CodePageToCodePages( | 
|  | [in] UINT uCodePage, | 
|  | [out] DWORD *pdwCodePages); | 
|  | HRESULT CodePagesToCodePage( | 
|  | [in] DWORD dwCodePages, | 
|  | [in] UINT uDefaultCodePage, | 
|  | [out] UINT *puCodePage); | 
|  | } | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(359f3441-bd4a-11d0-b188-00aa0038c969), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IMLangFontLink : IMLangCodePages | 
|  | { | 
|  | HRESULT GetFontCodePages( | 
|  | [in] HDC hDC, | 
|  | [in] HFONT hFont, | 
|  | [out] DWORD *pdwCodePages ); | 
|  |  | 
|  | HRESULT MapFont( | 
|  | [in] HDC hDC, | 
|  | [in] DWORD dwCodePages, | 
|  | [in] HFONT hSrcFont, | 
|  | [out] HFONT *phDestFont); | 
|  |  | 
|  | HRESULT ReleaseFont( | 
|  | [in] HFONT hFont); | 
|  |  | 
|  | HRESULT ResetFontMapping(); | 
|  | } | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(ae5f1430-388b-11d2-8380-00c04f8f5da1), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IEnumScript : IUnknown | 
|  | { | 
|  | const USHORT MAX_SCRIPT_NAME = 48; | 
|  | const USHORT MAX_MIMEFACE_NAME = 32; | 
|  |  | 
|  | typedef BYTE SCRIPT_ID; | 
|  | typedef __int64 SCRIPT_IDS; | 
|  |  | 
|  | typedef enum tagSCRIPTCONTF | 
|  | { | 
|  | sidDefault = 0, | 
|  | sidMerge = sidDefault + 1, | 
|  | sidAsciiSym = sidMerge + 1, | 
|  | sidAsciiLatin = sidAsciiSym + 1, | 
|  | sidLatin = sidAsciiLatin + 1, | 
|  | sidGreek = sidLatin + 1, | 
|  | sidCyrillic = sidGreek + 1, | 
|  | sidArmenian = sidCyrillic + 1, | 
|  | sidHebrew = sidArmenian + 1, | 
|  | sidArabic = sidHebrew + 1, | 
|  | sidDevanagari = sidArabic + 1, | 
|  | sidBengali = sidDevanagari + 1, | 
|  | sidGurmukhi = sidBengali + 1, | 
|  | sidGujarati = sidGurmukhi + 1, | 
|  | sidOriya = sidGujarati + 1, | 
|  | sidTamil = sidOriya + 1, | 
|  | sidTelugu = sidTamil + 1, | 
|  | sidKannada = sidTelugu + 1, | 
|  | sidMalayalam = sidKannada + 1, | 
|  | sidThai = sidMalayalam + 1, | 
|  | sidLao = sidThai + 1, | 
|  | sidTibetan = sidLao + 1, | 
|  | sidGeorgian = sidTibetan + 1, | 
|  | sidHangul = sidGeorgian + 1, | 
|  | sidKana = sidHangul + 1, | 
|  | sidBopomofo = sidKana + 1, | 
|  | sidHan = sidBopomofo + 1, | 
|  | sidEthiopic = sidHan + 1, | 
|  | sidCanSyllabic = sidEthiopic + 1, | 
|  | sidCherokee = sidCanSyllabic + 1, | 
|  | sidYi = sidCherokee + 1, | 
|  | sidBraille = sidYi + 1, | 
|  | sidRunic = sidBraille + 1, | 
|  | sidOgham = sidRunic + 1, | 
|  | sidSinhala = sidOgham + 1, | 
|  | sidSyriac = sidSinhala + 1, | 
|  | sidBurmese = sidSyriac + 1, | 
|  | sidKhmer = sidBurmese + 1, | 
|  | sidThaana = sidKhmer + 1, | 
|  | sidMongolian = sidThaana + 1, | 
|  | sidUserDefined = sidMongolian + 1, | 
|  | sidLim = sidUserDefined + 1, | 
|  | sidFEFirst = sidHangul, | 
|  | sidFELast = sidHan | 
|  | } SCRIPTCONTF; | 
|  |  | 
|  | typedef enum tagSCRIPTFONTCONTF | 
|  | { | 
|  | SCRIPTCONTF_FIXED_FONT = 0x1, | 
|  | SCRIPTCONTF_PROPORTIONAL_FONT = 0x2, | 
|  | SCRIPTCONTF_SCRIPT_USER = 0x10000, | 
|  | SCRIPTCONTF_SCRIPT_HIDE = 0x20000, | 
|  | SCRIPTCONTF_SCRIPT_SYSTEM = 0x40000 | 
|  | } SCRIPTFONTCONTF; | 
|  |  | 
|  | typedef struct tagSCRIPFONTINFO | 
|  | { | 
|  | SCRIPT_IDS scripts; | 
|  | WCHAR wszFont[MAX_MIMEFACE_NAME]; | 
|  | } SCRIPTFONTINFO, *PSCRIPTFONTINFO; | 
|  |  | 
|  | typedef struct tagSCRIPTINFO { | 
|  | SCRIPT_ID ScriptId; | 
|  | UINT uiCodePage; | 
|  | WCHAR wszDescription[MAX_SCRIPT_NAME]; | 
|  | WCHAR wszFixedWidthFont[MAX_MIMEFACE_NAME]; | 
|  | WCHAR wszProportionalFont[MAX_MIMEFACE_NAME]; | 
|  | } SCRIPTINFO, *PSCRIPTINFO; | 
|  |  | 
|  | HRESULT Clone( | 
|  | [out] IEnumScript **ppEnum); | 
|  |  | 
|  | HRESULT Next( | 
|  | [in] ULONG celt, | 
|  | [out] PSCRIPTINFO rgelt, | 
|  | [out] ULONG *pceltFetched); | 
|  |  | 
|  | HRESULT Reset(); | 
|  |  | 
|  | HRESULT Skip( | 
|  | [in] ULONG celt); | 
|  | } | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(275c23e3-3747-11d0-9fea-00aa003f8646), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IEnumCodePage : IUnknown | 
|  | { | 
|  | const USHORT MAX_MIMECP_NAME = 64; | 
|  | const USHORT MAX_MIMECSET_NAME = 50; | 
|  |  | 
|  | typedef enum tagMIMECONTF | 
|  | { | 
|  | MIMECONTF_MAILNEWS = 0x00000001, | 
|  | MIMECONTF_BROWSER = 0x00000002, | 
|  | MIMECONTF_MINIMAL = 0x00000004, | 
|  | MIMECONTF_IMPORT = 0x00000008, | 
|  | MIMECONTF_SAVABLE_MAILNEWS = 0x00000100, | 
|  | MIMECONTF_SAVABLE_BROWSER = 0x00000200, | 
|  | MIMECONTF_EXPORT = 0x00000400, | 
|  | MIMECONTF_PRIVCONVERTER = 0x00010000, | 
|  | MIMECONTF_VALID = 0x00020000, | 
|  | MIMECONTF_VALID_NLS = 0x00040000, | 
|  | MIMECONTF_MIME_IE4 = 0x10000000, | 
|  | MIMECONTF_MIME_LATEST = 0x20000000, | 
|  | MIMECONTF_MIME_REGISTRY = 0x40000000 | 
|  | } MIMECONTF; | 
|  |  | 
|  | typedef struct tagMIMECPINFO { | 
|  | DWORD dwFlags; | 
|  | UINT uiCodePage; | 
|  | UINT uiFamilyCodePage; | 
|  | WCHAR wszDescription[MAX_MIMECP_NAME]; | 
|  | WCHAR wszWebCharset[MAX_MIMECSET_NAME]; | 
|  | WCHAR wszHeaderCharset[MAX_MIMECSET_NAME]; | 
|  | WCHAR wszBodyCharset[MAX_MIMECSET_NAME]; | 
|  | WCHAR wszFixedWidthFont[MAX_MIMEFACE_NAME]; | 
|  | WCHAR wszProportionalFont[MAX_MIMEFACE_NAME]; | 
|  | BYTE bGDICharset; | 
|  | } MIMECPINFO, *PMIMECPINFO; | 
|  |  | 
|  | typedef struct tagMIMECSETINFO | 
|  | { | 
|  | UINT uiCodePage; | 
|  | UINT uiInternetEncoding; | 
|  | WCHAR wszCharset[MAX_MIMECSET_NAME]; | 
|  | } MIMECSETINFO, *PMIMECSETINFO; | 
|  |  | 
|  | HRESULT Clone( | 
|  | [out] IEnumCodePage **ppEnum); | 
|  |  | 
|  | HRESULT Next( | 
|  | [in] ULONG celt, | 
|  | [out] PMIMECPINFO rgelt, | 
|  | [out] ULONG *pceltFetched); | 
|  |  | 
|  | HRESULT Reset(); | 
|  |  | 
|  | HRESULT Skip( | 
|  | [in] ULONG celt); | 
|  | } | 
|  |  | 
|  | [ | 
|  | object, | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IMLangConvertCharset : IUnknown | 
|  | { | 
|  | HRESULT Initialize( | 
|  | [in] UINT uiSrcCodePage, | 
|  | [in] UINT uiDstCodePage, | 
|  | [in] DWORD dwProperty); | 
|  |  | 
|  | HRESULT GetSourceCodePage( | 
|  | [out] UINT *puiSrcCodePage); | 
|  |  | 
|  | HRESULT GetDestinationCodePage( | 
|  | [out] UINT *puiDstCodePage); | 
|  |  | 
|  | HRESULT GetProperty( | 
|  | [out] DWORD *pdwProperty); | 
|  |  | 
|  | HRESULT DoConversion( | 
|  | [in] BYTE *pSrcStr, | 
|  | [in,out] UINT *pcSrcSize, | 
|  | [in] BYTE *pDstStr, | 
|  | [in,out] UINT *pcDstSize); | 
|  |  | 
|  | HRESULT DoConversionToUnicode( | 
|  | [in] CHAR *pSrcStr, | 
|  | [in,out] UINT *pcSrcSize, | 
|  | [in] WCHAR *pDstStr, | 
|  | [in,out] UINT *pcDstSize); | 
|  |  | 
|  | HRESULT DoConversionFromUnicode( | 
|  | [in] WCHAR *pSrcStr, | 
|  | [in,out] UINT *pcSrcSize, | 
|  | [in] CHAR *pDstStr, | 
|  | [in,out] UINT *pcDstSize); | 
|  | } | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(3dc39d1d-c030-11d0-b81b-00c04fc9b31f), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IEnumRfc1766 : IUnknown | 
|  | { | 
|  | const USHORT MAX_RFC1766_NAME = 6; | 
|  | const USHORT MAX_LOCALE_NAME = 32; | 
|  |  | 
|  | typedef struct tagRFC1766INFO | 
|  | { | 
|  | LCID lcid; | 
|  | WCHAR wszRfc1766[MAX_RFC1766_NAME]; | 
|  | WCHAR wszLocaleName[MAX_LOCALE_NAME]; | 
|  | } RFC1766INFO, *PRFC1766INFO; | 
|  |  | 
|  | HRESULT Clone( | 
|  | [out] IEnumRfc1766 **ppEnum); | 
|  |  | 
|  | HRESULT Next( | 
|  | [in] ULONG celt, | 
|  | [out] PRFC1766INFO rgelt, | 
|  | [out] ULONG *pceltFetched); | 
|  |  | 
|  | HRESULT Reset(); | 
|  |  | 
|  | HRESULT Skip( | 
|  | [in] ULONG celt); | 
|  | } | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(275c23e1-3747-11d0-9fea-00aa003f8646), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IMultiLanguage : IUnknown | 
|  | { | 
|  | HRESULT GetNumberOfCodePageInfo( | 
|  | [out] UINT *pcCodePage); | 
|  |  | 
|  | HRESULT GetCodePageInfo( | 
|  | [in] UINT uiCodePage, | 
|  | [out] PMIMECPINFO pCodePageInfo); | 
|  |  | 
|  | HRESULT GetFamilyCodePage( | 
|  | [in] UINT uiCodePage, | 
|  | [out] UINT *puiFamilyCodePage); | 
|  |  | 
|  | HRESULT EnumCodePages( | 
|  | [in] DWORD grfFlags, | 
|  | [out] IEnumCodePage **ppEnumCodePage); | 
|  |  | 
|  | HRESULT GetCharsetInfo( | 
|  | [in] BSTR Charset, | 
|  | [in] PMIMECSETINFO pCharsetInfo); | 
|  |  | 
|  | HRESULT IsConvertible( | 
|  | [in] DWORD dwSrcEncoding, | 
|  | [in] DWORD dwDstEncoding); | 
|  |  | 
|  | HRESULT ConvertString( | 
|  | [in,out] DWORD *pdwMode, | 
|  | [in] DWORD dwSrcEncoding, | 
|  | [in] DWORD dwDstEncoding, | 
|  | [in] BYTE *pSrcStr, | 
|  | [in,out] UINT *pcSrcSize, | 
|  | [in] BYTE *pDstStr, | 
|  | [in,out] UINT *pcDstSize); | 
|  |  | 
|  | HRESULT ConvertStringToUnicode( | 
|  | [in,out] DWORD *pdwMode, | 
|  | [in] DWORD dwEncoding, | 
|  | [in] CHAR *pSrcStr, | 
|  | [in,out] UINT *pcSrcSize, | 
|  | [in] WCHAR *pDstStr, | 
|  | [in,out] UINT *pcDstSize); | 
|  |  | 
|  | HRESULT ConvertStringFromUnicode( | 
|  | [in,out] DWORD *pdwMode, | 
|  | [in] DWORD dwEncoding, | 
|  | [in] WCHAR *pSrcStr, | 
|  | [in,out] UINT *pcSrcSize, | 
|  | [in] CHAR *pDstStr, | 
|  | [in,out] UINT *pcDstSize); | 
|  |  | 
|  | HRESULT ConvertStringReset(); | 
|  |  | 
|  | HRESULT GetRfc1766FromLcid( | 
|  | [in] LCID Locale, | 
|  | [out] BSTR *pbstrRfc1766); | 
|  |  | 
|  | HRESULT GetLcidFromRfc1766( | 
|  | [out] LCID *pLocale, | 
|  | [in] BSTR bstrRfc1766); | 
|  |  | 
|  | HRESULT EnumRfc1766( | 
|  | [out] IEnumRfc1766 **ppEnumRfc1766); | 
|  |  | 
|  | HRESULT GetRfc1766Info( | 
|  | [in] LCID Locale, | 
|  | [out] PRFC1766INFO pRfc1766Info); | 
|  |  | 
|  | HRESULT CreateConvertCharset( | 
|  | [in] UINT uiSrcCodePage, | 
|  | [in] UINT uiDstCodePage, | 
|  | [in] DWORD dwProperty, | 
|  | [out] IMLangConvertCharset **ppMLangConvertCharset); | 
|  |  | 
|  | } | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(dccfc164-2b38-11d2-b7ec-00c04f8f5d9a), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IMultiLanguage2 : IUnknown | 
|  | { | 
|  | typedef struct tagDetectEncodingInfo | 
|  | { | 
|  | UINT nLangID; | 
|  | UINT nCodePage; | 
|  | INT nDocPercent; | 
|  | INT nConfidence; | 
|  | } DetectEncodingInfo, *pDetectEncodingInfo; | 
|  |  | 
|  | HRESULT GetNumberOfCodePageInfo( | 
|  | [out] UINT *pcCodePage); | 
|  |  | 
|  | HRESULT GetCodePageInfo( | 
|  | [in] UINT uiCodePage, | 
|  | [in] LANGID LangId, | 
|  | [out] PMIMECPINFO pCodePageInfo); | 
|  |  | 
|  | HRESULT GetFamilyCodePage( | 
|  | [in] UINT uiCodePage, | 
|  | [out] UINT *puiFamilyCodePage); | 
|  |  | 
|  | HRESULT EnumCodePages( | 
|  | [in] DWORD grfFlags, | 
|  | [in] LANGID LangId, | 
|  | [out] IEnumCodePage **ppEnumCodePage); | 
|  |  | 
|  | HRESULT GetCharsetInfo( | 
|  | [in] BSTR Charset, | 
|  | [in] PMIMECSETINFO pCharsetInfo); | 
|  |  | 
|  | HRESULT IsConvertible( | 
|  | [in] DWORD dwSrcEncoding, | 
|  | [in] DWORD dwDstEncoding); | 
|  |  | 
|  | HRESULT ConvertString( | 
|  | [in,out] DWORD *pdwMode, | 
|  | [in] DWORD dwSrcEncoding, | 
|  | [in] DWORD dwDstEncoding, | 
|  | [in] BYTE *pSrcStr, | 
|  | [in,out] UINT *pcSrcSize, | 
|  | [in] BYTE *pDstStr, | 
|  | [in,out] UINT *pcDstSize); | 
|  |  | 
|  | HRESULT ConvertStringToUnicode( | 
|  | [in,out] DWORD *pdwMode, | 
|  | [in] DWORD dwEncoding, | 
|  | [in] CHAR *pSrcStr, | 
|  | [in,out] UINT *pcSrcSize, | 
|  | [in] WCHAR *pDstStr, | 
|  | [in,out] UINT *pcDstSize); | 
|  |  | 
|  | HRESULT ConvertStringFromUnicode( | 
|  | [in,out] DWORD *pdwMode, | 
|  | [in] DWORD dwEncoding, | 
|  | [in] WCHAR *pSrcStr, | 
|  | [in,out] UINT *pcSrcSize, | 
|  | [in] CHAR *pDstStr, | 
|  | [in,out] UINT *pcDstSize); | 
|  |  | 
|  | HRESULT ConvertStringReset(); | 
|  |  | 
|  | HRESULT GetRfc1766FromLcid( | 
|  | [in] LCID Locale, | 
|  | [out] BSTR *pbstrRfc1766); | 
|  |  | 
|  | HRESULT GetLcidFromRfc1766( | 
|  | [out] LCID *pLocale, | 
|  | [in] BSTR bstrRfc1766); | 
|  |  | 
|  | HRESULT EnumRfc1766( | 
|  | [in] LANGID LangId, | 
|  | [out] IEnumRfc1766 **ppEnumRfc1766); | 
|  |  | 
|  | HRESULT GetRfc1766Info( | 
|  | [in] LCID Locale, | 
|  | [in] LANGID LangId, | 
|  | [out] PRFC1766INFO pRfc1766Info); | 
|  |  | 
|  | HRESULT CreateConvertCharset( | 
|  | [in] UINT uiSrcCodePage, | 
|  | [in] UINT uiDstCodePage, | 
|  | [in] DWORD dwProperty, | 
|  | [out] IMLangConvertCharset **ppMLangConvertCharset); | 
|  |  | 
|  | HRESULT ConvertStringInIStream( | 
|  | [in,out] DWORD *pdwMode, | 
|  | [in] DWORD dwFlag, | 
|  | [in] WCHAR *lpFallBack, | 
|  | [in] DWORD dwSrcEncoding, | 
|  | [in] DWORD dwDstEncoding, | 
|  | [in] IStream *pstmIn, | 
|  | [in] IStream *pstmOut); | 
|  |  | 
|  | HRESULT ConvertStringToUnicodeEx( | 
|  | [in,out] DWORD *pdwMode, | 
|  | [in] DWORD dwEncoding, | 
|  | [in] CHAR *pSrcStr, | 
|  | [in,out] UINT *pcSrcSize, | 
|  | [in] WCHAR *pDstStr, | 
|  | [in,out] UINT *pcDstSize, | 
|  | [in] DWORD dwFlag, | 
|  | [in] WCHAR *lpFallBack); | 
|  |  | 
|  | HRESULT ConvertStringFromUnicodeEx( | 
|  | [in,out] DWORD *pdwMode, | 
|  | [in] DWORD dwEncoding, | 
|  | [in] WCHAR *pSrcStr, | 
|  | [in,out] UINT *pcSrcSize, | 
|  | [in] CHAR *pDstStr, | 
|  | [in,out] UINT *pcDstSize, | 
|  | [in] DWORD dwFlag, | 
|  | [in] WCHAR *lpFallBack); | 
|  |  | 
|  | HRESULT DetectCodepageInIStream( | 
|  | [in] DWORD dwFlag, | 
|  | [in] DWORD dwPrefWinCodePage, | 
|  | [in] IStream *pstmIn, | 
|  | [in,out] DetectEncodingInfo *lpEncoding, | 
|  | [in,out] INT *pnScores); | 
|  |  | 
|  | HRESULT DetectInputCodepage( | 
|  | [in] DWORD dwFlag, | 
|  | [in] DWORD dwPrefWinCodePage, | 
|  | [in] CHAR *pSrcStr, | 
|  | [in,out] INT *pcSrcSize, | 
|  | [in,out] DetectEncodingInfo *lpEncoding, | 
|  | [in,out] INT *pnScores); | 
|  |  | 
|  | HRESULT ValidateCodePage( | 
|  | [in] UINT uiCodePage, | 
|  | [in] HWND hwnd); | 
|  |  | 
|  | HRESULT GetCodePageDescription( | 
|  | [in] UINT uiCodePage, | 
|  | [in] LCID lcid, | 
|  | [in,out] LPWSTR lpWideCharStr, | 
|  | [in] int cchWideChar); | 
|  |  | 
|  | HRESULT IsCodePageInstallable( | 
|  | [in] UINT uiCodePage); | 
|  |  | 
|  | HRESULT SetMimeDBSource( | 
|  | [in] MIMECONTF dwSource); | 
|  |  | 
|  | HRESULT GetNumberOfScripts( | 
|  | [out] UINT *pnScripts); | 
|  |  | 
|  | HRESULT EnumScripts( | 
|  | [in] DWORD dwFlags, | 
|  | [in] LANGID LangId, | 
|  | [out] IEnumScript **ppEnumScript); | 
|  |  | 
|  | HRESULT ValidateCodePageEx( /* undocumented on MSDN */ | 
|  | [in] UINT uiCodePage, | 
|  | [in] HWND hwnd, | 
|  | [in] DWORD dwfIODControl); | 
|  | } | 
|  |  | 
|  | [ | 
|  | uuid(275C23E2-3747-11d0-9FEA-00AA003f8646) | 
|  | ] | 
|  | coclass CMultiLanguage | 
|  | { | 
|  | [default] interface IMultiLanguage; | 
|  | interface IMLangCodePages; | 
|  | interface IMLangFontLink; | 
|  | /* interface IMLangLineBreakConsole; */ | 
|  | } | 
|  |  | 
|  | cpp_quote("STDAPI LcidToRfc1766A(LCID, LPSTR, INT);") | 
|  | cpp_quote("STDAPI LcidToRfc1766W(LCID, LPWSTR, INT);") | 
|  | cpp_quote("#define LcidToRfc1766 WINELIB_NAME_AW(LcidToRfc1766)") | 
|  |  | 
|  | cpp_quote("STDAPI Rfc1766ToLcidA(LCID *, LPCSTR);") | 
|  | cpp_quote("STDAPI Rfc1766ToLcidW(LCID *, LPCWSTR);") | 
|  | cpp_quote("#define Rfc1766ToLcid WINELIB_NAME_AW(Rfc1766ToLcid)") | 
|  |  | 
|  | cpp_quote("STDAPI GetGlobalFontLinkObject(void);") | 
|  | cpp_quote("STDAPI IsConvertINetStringAvailable(DWORD, DWORD);") | 
|  | cpp_quote("STDAPI ConvertINetString(LPDWORD, DWORD, DWORD, LPCSTR, LPINT, LPSTR, LPINT);") | 
|  | cpp_quote("STDAPI ConvertINetMultiByteToUnicode(LPDWORD, DWORD, LPCSTR, LPINT, LPWSTR, LPINT);") | 
|  | cpp_quote("STDAPI ConvertINetUnicodeToMultiByte(LPDWORD, DWORD, LPCWSTR, LPINT, LPSTR, LPINT);") |