summaryrefslogtreecommitdiffstats
path: root/src/VBox/Devices/Graphics/shaderlib/wine/include/mlang.idl
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/Devices/Graphics/shaderlib/wine/include/mlang.idl')
-rw-r--r--src/VBox/Devices/Graphics/shaderlib/wine/include/mlang.idl766
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);")