diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 16:49:04 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 16:49:04 +0000 |
commit | 16f504a9dca3fe3b70568f67b7d41241ae485288 (patch) | |
tree | c60f36ada0496ba928b7161059ba5ab1ab224f9d /src/VBox/Devices/Graphics/shaderlib/wine/include/mlang.idl | |
parent | Initial commit. (diff) | |
download | virtualbox-upstream.tar.xz virtualbox-upstream.zip |
Adding upstream version 7.0.6-dfsg.upstream/7.0.6-dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/VBox/Devices/Graphics/shaderlib/wine/include/mlang.idl')
-rw-r--r-- | src/VBox/Devices/Graphics/shaderlib/wine/include/mlang.idl | 766 |
1 files changed, 766 insertions, 0 deletions
diff --git a/src/VBox/Devices/Graphics/shaderlib/wine/include/mlang.idl b/src/VBox/Devices/Graphics/shaderlib/wine/include/mlang.idl new file mode 100644 index 00000000..110fd217 --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/wine/include/mlang.idl @@ -0,0 +1,766 @@ +/* + * 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 + */ + +/* + * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice + * other than GPL or LGPL is available it will apply instead, Oracle elects to use only + * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where + * a choice of LGPL license versions is made available with the language indicating + * that LGPLv2 or any later version may be used, or where a choice of which version + * of the LGPL is applied is otherwise unspecified. + */ + +#ifndef DO_NO_IMPORTS +import "unknwn.idl"; +#endif + +interface IStream; + +cpp_quote("#define CPIOD_PEEK 0x40000000") +cpp_quote("#define CPIOD_FORCE_PROMPT 0x80000000") + +[ + object, + uuid(359f3443-bd4a-11d0-b188-00aa0038c969), + pointer_default(unique) +] +interface IMLangCodePages : IUnknown +{ + HRESULT GetCharCodePages( + [in] WCHAR chSrc, + [out] 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(dccfc162-2b38-11d2-b7ec-00c04f8f5d9a), + pointer_default(unique) +] +interface IMLangFontLink2 : IMLangCodePages +{ + typedef struct tagUNICODERANGE + { + WCHAR wcFrom; + WCHAR wcTo; + } UNICODERANGE; + + typedef [unique] IMLangFontLink2 *PMLANGFONTLINK2; + + HRESULT GetFontCodePages( + [in] HDC hDC, + [in] HFONT hFont, + [out] DWORD *pdwCodePages ); + + HRESULT ReleaseFont( + [in] HFONT hFont); + + HRESULT ResetFontMapping(); + + HRESULT MapFont( + [in] HDC hDC, + [in] DWORD dwCodePages, + [in] WCHAR chSrc, + [out] HFONT *pFont); + + HRESULT GetFontUnicodeRanges( + [in] HDC hDC, + [in,out] UINT *puiRanges, + [out] UNICODERANGE* pUranges); + + HRESULT GetScriptFontInfo( + [in] SCRIPT_ID sid, + [in] DWORD dwFlags, + [in,out] UINT *puiFonts, + [out] SCRIPTFONTINFO* pScriptFont); + + HRESULT CodePageToScriptID( + [in] UINT uiCodePage, + [out] SCRIPT_ID *pSid); +} + +[ + object, + uuid(c04d65ce-b70d-11d0-b188-00aa0038c969), + pointer_default(unique) +] +interface IMLangString : IUnknown +{ +#ifdef NEWMLSTR + HRESULT LockMLStr( + [in] LONG lPos, + [in] DWORD dwFlags, + [out] DWORD* pdwCookie, + [out] LONG* plActualPos, + [out] LONG* plActualLen); + + HRESULT UnlockMLStr( + [in] DWORD dwCookie); +#else + HRESULT Sync( + [in] BOOL fNoAccess); +#endif + HRESULT GetLength( + [out, retval] LONG* plLen); + HRESULT SetMLStr( + [in] LONG lDestPos, + [in] LONG lDestLen, + [in] IUnknown *pSrcMLStr, + [in] LONG lSrcPos, + [in] LONG lSrcLen); +#ifdef NEWMLSTR + HRESULT RegisterAttr( + [in] IUnknown *pUnk, + [out] DWORD* pdwCookie); + HRESULT UnregisterAttr( + [in] DWORD dwCookie); + HRESULT EnumAttr( + [out] IEnumUnknown **ppEnumUnk); + HRESULT FindAttr( + [in] REFIID riid, + [in] LPARAM lParam, + [out] IUnknown **ppUnk); +#else + HRESULT GetMLStr( + [in] LONG lSrcPos, + [in] LONG lSrcLen, + [in] IUnknown *pUnkOuter, + [in] DWORD dwClsContext, + [in] const IID* piid, + [out] IUnknown** ppDestMLStr, + [out] LONG* plDestPos, + [out] LONG* plDestLen); +#endif +} + +[ + object, + uuid(f5be2ee1-bfd7-11d0-b188-00aa0038c969), + pointer_default(unique) +] +interface IMLangLineBreakConsole : IUnknown +{ + HRESULT BreakLineML( + [in] IMLangString* pSrcMLStr, + [in] LONG lSrcPos, + [in] LONG lSrcLen, + [in] LONG cMinColumns, + [in] LONG cMaxColumns, + [out] LONG* plLineLen, + [out] LONG* plSkipLen); + + HRESULT BreakLineW( + [in] LCID locale, + [in, size_is(cchSrc)] const WCHAR* pszSrc, + [in] LONG cchSrc, + [in] LONG cMaxColumns, + [out] LONG* pcchLine, + [out] LONG* pcchSkip ); + + HRESULT BreakLineA( + [in] LCID locale, + [in] UINT uCodePage, + [in, size_is(cchSrc)] const CHAR* pszSrc, + [in] LONG cchSrc, + [in] LONG cMaxColumns, + [out] LONG* pcchLine, + [out] LONG* pcchSkip); +} + +[ + 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, + uuid(d66d6f98-cdaa-11d0-b822-00c04fc9b31f), + pointer_default(unique) +] +interface IMLangConvertCharset : IUnknown +{ + typedef enum tagMLCONVCHARF + { + MLCONVCHARF_AUTODETECT = 1, + MLCONVCHARF_ENTITIZE = 2, + MLCONVCHARF_NCR_ENTITIZE = 2, + MLCONVCHARF_NAME_ENTITIZE = 4, + MLCONVCHARF_USEDEFCHAR = 8, + MLCONVCHARF_NOBESTFITCHARS = 16, + MLCONVCHARF_DETECTJPN = 32 + } MLCONVCHAR; + + 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); +} + +[ + uuid(d66d6f99-cdaa-11d0-b822-00c04fc9b31f) +] +coclass CMLangConvertCharset +{ + [default] interface IMLangConvertCharset; +}; + +[ + 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,size_is(cchWideChar)] 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); +} + +[ + object, + uuid(4e5868ab-b157-4623-9acc-6a1d9caebe04), + pointer_default(unique) +] +interface IMultiLanguage3 : IMultiLanguage2 +{ + typedef [unique] IMultiLanguage3 *LPMULTILANGUAGE3; + HRESULT DetectOutboundCodePage( + [in] DWORD dwFlags, + [in] LPCWSTR lpWideCharStr, + [in] UINT cchWideChar, + [in] UINT *puiPreferredCodePages, + [in] UINT nPreferredCodePages, + [in] UINT *puiDetectedCodePages, + [in, out] UINT *pnDetectedCodePages, + [in] WCHAR *lpSpecialChar); + + HRESULT DetectOutboundCodePageInIStream( + [in] DWORD dwFlags, + [in] IStream *pStrIn, + [in] UINT *puiPreferredCodePages, + [in] UINT nPreferredCodePages, + [in] UINT *puiDetectedCodePages, + [in, out] UINT *pnDetectedCodePages, + [in] WCHAR *lpSpecialChar); +} + +[ + uuid(275C23E2-3747-11d0-9FEA-00AA003f8646) +] +coclass CMultiLanguage +{ + [default] interface IMultiLanguage; + interface IMLangCodePages; + interface IMLangFontLink; + /* interface IMLangLineBreakConsole; */ + interface IMLangFontLink2; +} + +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 **unknown);") +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);") |