749 lines
20 KiB
Plaintext
749 lines
20 KiB
Plaintext
/*
|
|
* 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
|
|
*/
|
|
|
|
#ifndef DO_NO_IMPORTS
|
|
import "unknwn.idl";
|
|
#endif
|
|
|
|
interface IStream;
|
|
|
|
/* FIXME: LANGID 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(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
|
|
{
|
|
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] 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);")
|
|
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);")
|