350 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			350 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
#ifndef _MLANG_H
 | 
						|
#define _MLANG_H
 | 
						|
#if __GNUC__ >= 3
 | 
						|
#pragma GCC system_header
 | 
						|
#endif
 | 
						|
 | 
						|
#include <windows.h>
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
#pragma pack(push,1)
 | 
						|
 | 
						|
#define MAX_MIMECP_NAME   64
 | 
						|
#define MAX_MIMECSET_NAME 50
 | 
						|
#define MAX_SCRIPT_NAME   48
 | 
						|
#define MAX_MIMEFACE_NAME 32
 | 
						|
#define MAX_RFC1766_NAME   6
 | 
						|
#define MAX_LOCALE_NAME   32
 | 
						|
 | 
						|
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 enum tagMLCONVCHARF {
 | 
						|
    MLCONVCHARF_NONE = 0,
 | 
						|
    MLCONVCHARF_AUTODETECT = 1,
 | 
						|
    MLCONVCHARF_NCR_ENTITIZE = 2,
 | 
						|
    MLCONVCHARF_NAME_ENTITIZE = 4,
 | 
						|
    MLCONVCHARF_USEDEFCHAR = 8,
 | 
						|
    MLCONVCHARF_NOBESTFITCHARS = 16
 | 
						|
} 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
 | 
						|
} MLCP;
 | 
						|
typedef enum tagMLDETECTCP {
 | 
						|
    MLDETECTCP_NONE = 0,
 | 
						|
    MLDETECTCP_7BIT = 1,
 | 
						|
    MLDETECTCP_8BIT = 2,
 | 
						|
    MLDETECTCP_DBCS = 4,
 | 
						|
    MLDETECTCP_HTML = 8
 | 
						|
} MLDETECTCP;
 | 
						|
typedef enum tagSCRIPTFONTCONTF {
 | 
						|
    SCRIPTCONTF_FIXED_FONT = 0x00000001,
 | 
						|
    SCRIPTCONTF_PROPORTIONAL_FONT = 0x00000002,
 | 
						|
    SCRIPTCONTF_SCRIPT_USER = 0x00010000,
 | 
						|
    SCRIPTCONTF_SCRIPT_HIDE = 0x00020000,
 | 
						|
    SCRIPTCONTF_SCRIPT_SYSTEM = 0x00040000
 | 
						|
} SCRIPTFONTCONTF;
 | 
						|
typedef enum tagSCRIPTCONTF {
 | 
						|
    sidDefault,
 | 
						|
    sidMerge,
 | 
						|
    sidAsciiSym,
 | 
						|
    sidAsciiLatin,
 | 
						|
    sidLatin,
 | 
						|
    sidGreek,
 | 
						|
    sidCyrillic,
 | 
						|
    sidArmenian,
 | 
						|
    sidHebrew,
 | 
						|
    sidArabic,
 | 
						|
    sidDevanagari,
 | 
						|
    sidBengali,
 | 
						|
    sidGurmukhi,
 | 
						|
    sidGujarati,
 | 
						|
    sidOriya,
 | 
						|
    sidTamil,
 | 
						|
    sidTelugu,
 | 
						|
    sidKannada,
 | 
						|
    sidMalayalam,
 | 
						|
    sidThai,
 | 
						|
    sidLao,
 | 
						|
    sidTibetan,
 | 
						|
    sidGeorgian,
 | 
						|
    sidHangul,
 | 
						|
    sidKana,
 | 
						|
    sidBopomofo,
 | 
						|
    sidHan,
 | 
						|
    sidEthiopic,
 | 
						|
    sidCanSyllabic,
 | 
						|
    sidCherokee,
 | 
						|
    sidYi,
 | 
						|
    sidBraille,
 | 
						|
    sidRunic,
 | 
						|
    sidOgham,
 | 
						|
    sidSinhala,
 | 
						|
    sidSyriac,
 | 
						|
    sidBurmese,
 | 
						|
    sidKhmer,
 | 
						|
    sidThaana,
 | 
						|
    sidMongolian,
 | 
						|
    sidLim,
 | 
						|
    sidFEFirst = sidHangul,
 | 
						|
    sidFELast = sidHan
 | 
						|
} SCRIPTCONTF;
 | 
						|
  
 | 
						|
typedef struct tagDetectEncodingInfo {
 | 
						|
    UINT nLangID;
 | 
						|
    UINT nCodePage;
 | 
						|
    INT nDocPercent;
 | 
						|
    INT nConfidence;
 | 
						|
} DetectEncodingInfo, *pDetectEncodingInfo;
 | 
						|
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;
 | 
						|
typedef struct tagRFC1766INFO {
 | 
						|
    LCID lcid;
 | 
						|
    WCHAR wszRfc1766[MAX_RFC1766_NAME];
 | 
						|
    WCHAR wszLocaleName[MAX_LOCALE_NAME];
 | 
						|
} RFC1766INFO, *PRFC1766INFO;
 | 
						|
typedef BYTE SCRIPT_ID;  
 | 
						|
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;
 | 
						|
typedef struct tagUNICODERANGE {
 | 
						|
  WCHAR wcFrom;
 | 
						|
  WCHAR wcTo;
 | 
						|
} UNICODERANGE;
 | 
						|
 | 
						|
typedef struct tagSCRIPTFONTINFO SCRIPTFONTINFO;
 | 
						|
  
 | 
						|
EXTERN_C const IID IID_IEnumCodePage;
 | 
						|
#define INTERFACE IEnumCodePage
 | 
						|
DECLARE_INTERFACE_(IEnumCodePage,IUnknown)
 | 
						|
{
 | 
						|
        STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
						|
        STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
						|
        STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
						|
        STDMETHOD(Clone)(THIS_ IEnumCodePage**) PURE;
 | 
						|
        STDMETHOD(Next)(THIS_ ULONG,PMIMECPINFO,ULONG*) PURE;
 | 
						|
        STDMETHOD(Reset)(THIS) PURE;
 | 
						|
        STDMETHOD(Skip)(THIS_ ULONG) PURE;
 | 
						|
};
 | 
						|
#undef INTERFACE
 | 
						|
 | 
						|
EXTERN_C const IID IID_IEnumRfc1766;
 | 
						|
#define INTERFACE IEnumRfc1766
 | 
						|
DECLARE_INTERFACE_(IEnumRfc1766,IUnknown)
 | 
						|
{
 | 
						|
        STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
						|
        STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
						|
        STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
						|
        STDMETHOD(Clone)(THIS_ IEnumRfc1766**) PURE;
 | 
						|
        STDMETHOD(Next)(THIS_ ULONG,PRFC1766INFO,ULONG*) PURE;
 | 
						|
        STDMETHOD(Reset)(THIS) PURE;
 | 
						|
        STDMETHOD(Skip)(THIS_ ULONG) PURE;
 | 
						|
};
 | 
						|
#undef INTERFACE
 | 
						|
 | 
						|
EXTERN_C const IID IID_IEnumScript;
 | 
						|
#define INTERFACE IEnumScript
 | 
						|
DECLARE_INTERFACE_(IEnumScript,IUnknown)
 | 
						|
{
 | 
						|
        STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
						|
        STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
						|
        STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
						|
        STDMETHOD(Clone)(THIS_ IEnumScript**) PURE;
 | 
						|
        STDMETHOD(Next)(THIS_ ULONG,PSCRIPTINFO,ULONG*) PURE;
 | 
						|
        STDMETHOD(Reset)(THIS) PURE;
 | 
						|
        STDMETHOD(Skip)(THIS_ ULONG) PURE;
 | 
						|
};
 | 
						|
#undef INTERFACE
 | 
						|
 | 
						|
EXTERN_C const IID IID_IMLangCodePages;
 | 
						|
#define INTERFACE IMLangCodePages
 | 
						|
DECLARE_INTERFACE_(IMLangCodePages,IUnknown)
 | 
						|
{
 | 
						|
        STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
						|
        STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
						|
        STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
						|
        STDMETHOD(GetCharCodePages)(THIS_ WCHAR,DWORD*) PURE;
 | 
						|
        STDMETHOD(GetStrCodePages)(THIS_ const WCHAR *,long,DWORD,DWORD*,long*) PURE;
 | 
						|
        STDMETHOD(CodePageToCodePages)(THIS_ UINT,DWORD*) PURE;
 | 
						|
        STDMETHOD(CodePagesToCodePage)(THIS_ DWORD,UINT,UINT*) PURE;
 | 
						|
};
 | 
						|
#undef INTERFACE
 | 
						|
 | 
						|
EXTERN_C const IID IID_IMLangConvertCharset;
 | 
						|
#define INTERFACE IMLangConvertCharset
 | 
						|
DECLARE_INTERFACE_(IMLangConvertCharset,IUnknown)
 | 
						|
{
 | 
						|
        STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
						|
        STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
						|
        STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
						|
        STDMETHOD(Initialize)(THIS_ UINT,UINT,DWORD) PURE;
 | 
						|
        STDMETHOD(GetSourceCodePage)(THIS_ UINT*) PURE;
 | 
						|
        STDMETHOD(GetDestinationCodePage)(THIS_ UINT*) PURE;
 | 
						|
        STDMETHOD(GetProperty)(THIS_ DWORD*) PURE;
 | 
						|
        STDMETHOD(DoConversion)(THIS_ BYTE*,UINT*,BYTE*,UINT*) PURE;
 | 
						|
        STDMETHOD(DoConversionToUnicode)(THIS_ CHAR*,UINT*,WCHAR*,UINT*) PURE;
 | 
						|
        STDMETHOD(DoConversionFromUnicode)(THIS_ WCHAR*,UINT*,CHAR*,UINT*) PURE;
 | 
						|
};
 | 
						|
#undef INTERFACE
 | 
						|
EXTERN_C const CLSID CLSID_CMLangConvertCharset;
 | 
						|
 | 
						|
EXTERN_C const IID IID_IMLangFontLink;
 | 
						|
#define INTERFACE IMLangFontLink
 | 
						|
DECLARE_INTERFACE_(IMLangFontLink,IMLangCodePages)
 | 
						|
{
 | 
						|
        STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
						|
        STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
						|
        STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
						|
        STDMETHOD(GetCharCodePages)(THIS_ WCHAR,DWORD*) PURE;
 | 
						|
        STDMETHOD(GetStrCodePages)(THIS_ const WCHAR *,long,DWORD,DWORD*,long*) PURE;
 | 
						|
        STDMETHOD(CodePageToCodePages)(THIS_ UINT,DWORD*) PURE;
 | 
						|
        STDMETHOD(CodePagesToCodePage)(THIS_ DWORD,UINT,UINT*) PURE;
 | 
						|
        STDMETHOD(GetFontCodePages)(THIS_ HDC,HFONT,DWORD*) PURE;
 | 
						|
        STDMETHOD(MapFont)(THIS_ HDC,DWORD,HFONT,HFONT*) PURE;
 | 
						|
        STDMETHOD(ReleaseFont)(THIS_ HFONT) PURE;
 | 
						|
        STDMETHOD(ResetFontMapping)(THIS) PURE;
 | 
						|
};
 | 
						|
#undef INTERFACE
 | 
						|
 | 
						|
EXTERN_C const IID IID_IMLangFontLink2;
 | 
						|
#define INTERFACE IMLangFontLink2
 | 
						|
DECLARE_INTERFACE_(IMLangFontLink2,IMLangCodePages)
 | 
						|
{
 | 
						|
        STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
						|
        STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
						|
        STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
						|
        STDMETHOD(GetCharCodePages)(THIS_ WCHAR,DWORD*) PURE;
 | 
						|
        STDMETHOD(GetStrCodePages)(THIS_ const WCHAR *,long,DWORD,DWORD*,long*) PURE;
 | 
						|
        STDMETHOD(CodePageToCodePages)(THIS_ UINT,DWORD*) PURE;
 | 
						|
        STDMETHOD(CodePagesToCodePage)(THIS_ DWORD,UINT,UINT*) PURE;
 | 
						|
        STDMETHOD(GetFontCodePages)(THIS_ HDC,HFONT,DWORD*) PURE;
 | 
						|
        STDMETHOD(ReleaseFont)(THIS_ HFONT) PURE;
 | 
						|
        STDMETHOD(ResetFontMapping)(THIS) PURE;
 | 
						|
        STDMETHOD(MapFont)(THIS_ HDC,DWORD,WCHAR,HFONT*) PURE;
 | 
						|
        STDMETHOD(GetFontUnicodeRange)(THIS_ HDC,UINT*,UNICODERANGE*) PURE;
 | 
						|
        STDMETHOD(GetScriptFontInfo)(THIS_ SCRIPT_ID,DWORD,UINT*,SCRIPTFONTINFO*) PURE;
 | 
						|
        STDMETHOD(CodePageToScriptID)(THIS) PURE;
 | 
						|
};
 | 
						|
#undef INTERFACE
 | 
						|
 | 
						|
EXTERN_C const IID IID_IMLangLineBreakConsole;
 | 
						|
#define INTERFACE IMLangLineBreakConsole
 | 
						|
DECLARE_INTERFACE_(IMLangLineBreakConsole,IMLangCodePages)
 | 
						|
{
 | 
						|
        STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
						|
        STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
						|
        STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
						|
        STDMETHOD(BreakLineML)(THIS) PURE;
 | 
						|
        STDMETHOD(BreakLineW)(THIS_ LCID,const WCHAR*,long,long,long*,long*) PURE;
 | 
						|
        STDMETHOD(BreakLineA)(THIS_ LCID,UINT,const CHAR*,long,long,long*,long*) PURE;
 | 
						|
};
 | 
						|
#undef INTERFACE
 | 
						|
 | 
						|
EXTERN_C const IID IID_IMultiLanguage;
 | 
						|
#define INTERFACE IMultiLanguage
 | 
						|
DECLARE_INTERFACE_(IMultiLanguage,IUnknown)
 | 
						|
{
 | 
						|
        STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
						|
        STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
						|
        STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
						|
        STDMETHOD(GetNumberOfCodePageInfo)(THIS_ UINT*) PURE;
 | 
						|
        STDMETHOD(GetCodePageInfo)(THIS_ UINT,PMIMECPINFO) PURE;
 | 
						|
        STDMETHOD(GetFamilyCodePage)(THIS_ UINT,UINT*) PURE;
 | 
						|
        STDMETHOD(EnumCodePages)(THIS_ DWORD,IEnumCodePage**) PURE;
 | 
						|
        STDMETHOD(GetCharsetInfo)(THIS_ BSTR,PMIMECSETINFO) PURE;
 | 
						|
        STDMETHOD(IsConvertible)(THIS_ DWORD,DWORD) PURE;
 | 
						|
        STDMETHOD(ConvertString)(THIS_ DWORD*,DWORD,DWORD,BYTE*,UINT*,BYTE*,UINT*) PURE;
 | 
						|
        STDMETHOD(ConvertStringToUnicode)(THIS_ DWORD*,DWORD,CHAR*,UINT*,WCHAR*,UINT*) PURE;
 | 
						|
        STDMETHOD(ConvertStringFromUnicode)(THIS_ DWORD*,DWORD,WCHAR*,UINT*,CHAR*,UINT*) PURE;
 | 
						|
        STDMETHOD(ConvertStringReset)(THIS) PURE;
 | 
						|
        STDMETHOD(GetRfc1766FromLcid)(THIS_ LCID,BSTR*) PURE;
 | 
						|
        STDMETHOD(GetLcidFromRfc1766)(THIS_ LCID*,BSTR) PURE;
 | 
						|
        STDMETHOD(EnumRfc1766)(THIS_ IEnumRfc1766**) PURE;
 | 
						|
        STDMETHOD(GetRfc1766Info)(THIS_ LCID,PRFC1766INFO) PURE;
 | 
						|
        STDMETHOD(CreateConvertCharset)(THIS_ UINT,UINT,DWORD,IMLangConvertCharset**) PURE;
 | 
						|
};
 | 
						|
#undef INTERFACE
 | 
						|
EXTERN_C const CLSID CLSID_CMultiLanguage;
 | 
						|
 | 
						|
EXTERN_C const IID IID_IMultiLanguage2;
 | 
						|
#define INTERFACE IMultiLanguage2
 | 
						|
DECLARE_INTERFACE_(IMultiLanguage2,IUnknown)
 | 
						|
{
 | 
						|
        STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
						|
        STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
						|
        STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
						|
        STDMETHOD(GetNumberOfCodePageInfo)(THIS_ UINT*) PURE;
 | 
						|
        STDMETHOD(GetCodePageInfo)(THIS_ UINT,PMIMECPINFO) PURE;
 | 
						|
        STDMETHOD(GetFamilyCodePage)(THIS_ UINT,UINT*) PURE;
 | 
						|
        STDMETHOD(EnumCodePages)(THIS_ DWORD,IEnumCodePage**) PURE;
 | 
						|
        STDMETHOD(GetCharsetInfo)(THIS_ BSTR,PMIMECSETINFO) PURE;
 | 
						|
        STDMETHOD(IsConvertible)(THIS_ DWORD,DWORD) PURE;
 | 
						|
        STDMETHOD(ConvertString)(THIS_ DWORD*,DWORD,DWORD,BYTE*,UINT*,BYTE*,UINT*) PURE;
 | 
						|
        STDMETHOD(ConvertStringToUnicode)(THIS_ DWORD*,DWORD,CHAR*,UINT*,WCHAR*,UINT*) PURE;
 | 
						|
        STDMETHOD(ConvertStringFromUnicode)(THIS_ DWORD*,DWORD,WCHAR*,UINT*,CHAR*,UINT*) PURE;
 | 
						|
        STDMETHOD(ConvertStringReset)(THIS) PURE;
 | 
						|
        STDMETHOD(GetRfc1766FromLcid)(THIS_ LCID,BSTR*) PURE;
 | 
						|
        STDMETHOD(GetLcidFromRfc1766)(THIS_ LCID*,BSTR) PURE;
 | 
						|
        STDMETHOD(EnumRfc1766)(THIS_ IEnumRfc1766**) PURE;
 | 
						|
        STDMETHOD(GetRfc1766Info)(THIS_ LCID,PRFC1766INFO) PURE;
 | 
						|
        STDMETHOD(CreateConvertCharset)(THIS_ UINT,UINT,DWORD,IMLangConvertCharset**) PURE;
 | 
						|
        STDMETHOD(ConvertStringInIStream)(THIS_ DWORD*,DWORD,WCHAR*,DWORD,DWORD,IStream*,IStream*) PURE;
 | 
						|
        STDMETHOD(ConvertStringToUnicodeEx)(THIS_ DWORD*,DWORD,CHAR*,UINT*,WCHAR*,UINT*,DWORD,WCHAR*) PURE;
 | 
						|
        STDMETHOD(ConvertStringFromUnicodeEx)(THIS_ DWORD*,DWORD,WCHAR*,UINT*,CHAR*,UINT*,DWORD,WCHAR*) PURE;
 | 
						|
        STDMETHOD(DetectCodepageInIStream)(THIS_ DWORD,DWORD,IStream*,DetectEncodingInfo*,INT*) PURE;
 | 
						|
        STDMETHOD(DetectInputCodepage)(THIS_ DWORD,DWORD,CHAR*,INT*,DetectEncodingInfo*,INT*) PURE;
 | 
						|
        STDMETHOD(ValidateCodePage)(THIS) PURE;
 | 
						|
        STDMETHOD(GetCodePageDescription)(THIS_ UINT,LCID,LPWSTR,int) PURE;
 | 
						|
        STDMETHOD(IsCodePageInstallable)(THIS) PURE;
 | 
						|
        STDMETHOD(SetMimeDBSource)(THIS_ MIMECONTF) PURE;
 | 
						|
        STDMETHOD(GetNumberOfScripts)(THIS_ UINT*) PURE;
 | 
						|
        STDMETHOD(EnumScripts)(THIS_ DWORD,LANGID,IEnumScript**) PURE;
 | 
						|
};
 | 
						|
#undef INTERFACE
 | 
						|
 | 
						|
  
 | 
						|
#pragma pack(pop)
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
#endif
 |