| /* |
| * 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; |
| |
| 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; |
| |
| typedef enum tagMLCPF |
| { |
| MLDETECTF_MAILNEWS = 0x0001, |
| MLDETECTF_BROWSER = 0x0002, |
| MLDETECTF_VALID = 0x0004, |
| MLDETECTF_VALID_NLS = 0x0008, |
| MLDETECTF_PRESERVE_ORDER = 0x0010, |
| MLDETECTF_PREFERRED_ONLY = 0x0020, |
| MLDETECTF_FILTER_SPECIALCHAR = 0x0040, |
| MLDETECTF_EURO_UTF8 = 0x0080 |
| } MLCP; |
| |
| 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);") |