holdingarea/llvm/llvm-gcc4.2-2.7-x86-mingw32/include/mlang.h
branchbug235_bringup_0
changeset 20 d2d6724aef32
equal deleted inserted replaced
19:da7c1a80df0d 20:d2d6724aef32
       
     1 #ifndef _MLANG_H
       
     2 #define _MLANG_H
       
     3 #if __GNUC__ >= 3
       
     4 #pragma GCC system_header
       
     5 #endif
       
     6 
       
     7 #include <windows.h>
       
     8 
       
     9 #ifdef __cplusplus
       
    10 extern "C" {
       
    11 #endif
       
    12 #pragma pack(push,1)
       
    13 
       
    14 #define MAX_MIMECP_NAME   64
       
    15 #define MAX_MIMECSET_NAME 50
       
    16 #define MAX_SCRIPT_NAME   48
       
    17 #define MAX_MIMEFACE_NAME 32
       
    18 #define MAX_RFC1766_NAME   6
       
    19 #define MAX_LOCALE_NAME   32
       
    20 
       
    21 typedef enum tagMIMECONTF {
       
    22     MIMECONTF_MAILNEWS = 0x00000001,
       
    23     MIMECONTF_BROWSER = 0x00000002,
       
    24     MIMECONTF_MINIMAL = 0x00000004,
       
    25     MIMECONTF_IMPORT = 0x00000008,
       
    26     MIMECONTF_SAVABLE_MAILNEWS = 0x00000100,
       
    27     MIMECONTF_SAVABLE_BROWSER = 0x00000200,
       
    28     MIMECONTF_EXPORT = 0x00000400,
       
    29     MIMECONTF_PRIVCONVERTER = 0x00010000,
       
    30     MIMECONTF_VALID = 0x00020000,
       
    31     MIMECONTF_VALID_NLS = 0x00040000,
       
    32     MIMECONTF_MIME_IE4 = 0x10000000,
       
    33     MIMECONTF_MIME_LATEST = 0x20000000,
       
    34     MIMECONTF_MIME_REGISTRY = 0x40000000
       
    35 } MIMECONTF;
       
    36 typedef enum tagMLCONVCHARF {
       
    37     MLCONVCHARF_NONE = 0,
       
    38     MLCONVCHARF_AUTODETECT = 1,
       
    39     MLCONVCHARF_NCR_ENTITIZE = 2,
       
    40     MLCONVCHARF_NAME_ENTITIZE = 4,
       
    41     MLCONVCHARF_USEDEFCHAR = 8,
       
    42     MLCONVCHARF_NOBESTFITCHARS = 16
       
    43 } MLCONVCHAR;
       
    44 typedef enum tagMLCPF {
       
    45     MLDETECTF_MAILNEWS = 0x0001,
       
    46     MLDETECTF_BROWSER = 0x0002,
       
    47     MLDETECTF_VALID = 0x0004,
       
    48     MLDETECTF_VALID_NLS = 0x0008,
       
    49     MLDETECTF_PRESERVE_ORDER = 0x0010,
       
    50     MLDETECTF_PREFERRED_ONLY = 0x0020,
       
    51     MLDETECTF_FILTER_SPECIALCHAR = 0x0040
       
    52 } MLCP;
       
    53 typedef enum tagMLDETECTCP {
       
    54     MLDETECTCP_NONE = 0,
       
    55     MLDETECTCP_7BIT = 1,
       
    56     MLDETECTCP_8BIT = 2,
       
    57     MLDETECTCP_DBCS = 4,
       
    58     MLDETECTCP_HTML = 8
       
    59 } MLDETECTCP;
       
    60 typedef enum tagSCRIPTFONTCONTF {
       
    61     SCRIPTCONTF_FIXED_FONT = 0x00000001,
       
    62     SCRIPTCONTF_PROPORTIONAL_FONT = 0x00000002,
       
    63     SCRIPTCONTF_SCRIPT_USER = 0x00010000,
       
    64     SCRIPTCONTF_SCRIPT_HIDE = 0x00020000,
       
    65     SCRIPTCONTF_SCRIPT_SYSTEM = 0x00040000
       
    66 } SCRIPTFONTCONTF;
       
    67 typedef enum tagSCRIPTCONTF {
       
    68     sidDefault,
       
    69     sidMerge,
       
    70     sidAsciiSym,
       
    71     sidAsciiLatin,
       
    72     sidLatin,
       
    73     sidGreek,
       
    74     sidCyrillic,
       
    75     sidArmenian,
       
    76     sidHebrew,
       
    77     sidArabic,
       
    78     sidDevanagari,
       
    79     sidBengali,
       
    80     sidGurmukhi,
       
    81     sidGujarati,
       
    82     sidOriya,
       
    83     sidTamil,
       
    84     sidTelugu,
       
    85     sidKannada,
       
    86     sidMalayalam,
       
    87     sidThai,
       
    88     sidLao,
       
    89     sidTibetan,
       
    90     sidGeorgian,
       
    91     sidHangul,
       
    92     sidKana,
       
    93     sidBopomofo,
       
    94     sidHan,
       
    95     sidEthiopic,
       
    96     sidCanSyllabic,
       
    97     sidCherokee,
       
    98     sidYi,
       
    99     sidBraille,
       
   100     sidRunic,
       
   101     sidOgham,
       
   102     sidSinhala,
       
   103     sidSyriac,
       
   104     sidBurmese,
       
   105     sidKhmer,
       
   106     sidThaana,
       
   107     sidMongolian,
       
   108     sidLim,
       
   109     sidFEFirst = sidHangul,
       
   110     sidFELast = sidHan
       
   111 } SCRIPTCONTF;
       
   112   
       
   113 typedef struct tagDetectEncodingInfo {
       
   114     UINT nLangID;
       
   115     UINT nCodePage;
       
   116     INT nDocPercent;
       
   117     INT nConfidence;
       
   118 } DetectEncodingInfo, *pDetectEncodingInfo;
       
   119 typedef struct tagMIMECPINFO {
       
   120     DWORD dwFlags;
       
   121     UINT uiCodePage;
       
   122     UINT uiFamilyCodePage;
       
   123     WCHAR wszDescription[MAX_MIMECP_NAME];
       
   124     WCHAR wszWebCharset[MAX_MIMECSET_NAME];
       
   125     WCHAR wszHeaderCharset[MAX_MIMECSET_NAME];
       
   126     WCHAR wszBodyCharset[MAX_MIMECSET_NAME];
       
   127     WCHAR wszFixedWidthFont[MAX_MIMEFACE_NAME];
       
   128     WCHAR wszProportionalFont[MAX_MIMEFACE_NAME];
       
   129     BYTE bGDICharset;
       
   130 } MIMECPINFO, *PMIMECPINFO;
       
   131 typedef struct tagMIMECSETINFO {
       
   132     UINT uiCodePage;
       
   133     UINT uiInternetEncoding;
       
   134     WCHAR wszCharset[MAX_MIMECSET_NAME];
       
   135 } MIMECSETINFO, *PMIMECSETINFO;
       
   136 typedef struct tagRFC1766INFO {
       
   137     LCID lcid;
       
   138     WCHAR wszRfc1766[MAX_RFC1766_NAME];
       
   139     WCHAR wszLocaleName[MAX_LOCALE_NAME];
       
   140 } RFC1766INFO, *PRFC1766INFO;
       
   141 typedef BYTE SCRIPT_ID;  
       
   142 typedef struct tagSCRIPTINFO {
       
   143     SCRIPT_ID ScriptId;
       
   144     UINT uiCodePage;
       
   145     WCHAR wszDescription[MAX_SCRIPT_NAME];
       
   146     WCHAR wszFixedWidthFont[MAX_MIMEFACE_NAME];
       
   147     WCHAR wszProportionalFont[MAX_MIMEFACE_NAME];
       
   148 } SCRIPTINFO, *PSCRIPTINFO;
       
   149 typedef struct tagUNICODERANGE {
       
   150   WCHAR wcFrom;
       
   151   WCHAR wcTo;
       
   152 } UNICODERANGE;
       
   153 
       
   154 typedef struct tagSCRIPTFONTINFO SCRIPTFONTINFO;
       
   155   
       
   156 EXTERN_C const IID IID_IEnumCodePage;
       
   157 #define INTERFACE IEnumCodePage
       
   158 DECLARE_INTERFACE_(IEnumCodePage,IUnknown)
       
   159 {
       
   160         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   161         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   162         STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   163         STDMETHOD(Clone)(THIS_ IEnumCodePage**) PURE;
       
   164         STDMETHOD(Next)(THIS_ ULONG,PMIMECPINFO,ULONG*) PURE;
       
   165         STDMETHOD(Reset)(THIS) PURE;
       
   166         STDMETHOD(Skip)(THIS_ ULONG) PURE;
       
   167 };
       
   168 #undef INTERFACE
       
   169 
       
   170 EXTERN_C const IID IID_IEnumRfc1766;
       
   171 #define INTERFACE IEnumRfc1766
       
   172 DECLARE_INTERFACE_(IEnumRfc1766,IUnknown)
       
   173 {
       
   174         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   175         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   176         STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   177         STDMETHOD(Clone)(THIS_ IEnumRfc1766**) PURE;
       
   178         STDMETHOD(Next)(THIS_ ULONG,PRFC1766INFO,ULONG*) PURE;
       
   179         STDMETHOD(Reset)(THIS) PURE;
       
   180         STDMETHOD(Skip)(THIS_ ULONG) PURE;
       
   181 };
       
   182 #undef INTERFACE
       
   183 
       
   184 EXTERN_C const IID IID_IEnumScript;
       
   185 #define INTERFACE IEnumScript
       
   186 DECLARE_INTERFACE_(IEnumScript,IUnknown)
       
   187 {
       
   188         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   189         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   190         STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   191         STDMETHOD(Clone)(THIS_ IEnumScript**) PURE;
       
   192         STDMETHOD(Next)(THIS_ ULONG,PSCRIPTINFO,ULONG*) PURE;
       
   193         STDMETHOD(Reset)(THIS) PURE;
       
   194         STDMETHOD(Skip)(THIS_ ULONG) PURE;
       
   195 };
       
   196 #undef INTERFACE
       
   197 
       
   198 EXTERN_C const IID IID_IMLangCodePages;
       
   199 #define INTERFACE IMLangCodePages
       
   200 DECLARE_INTERFACE_(IMLangCodePages,IUnknown)
       
   201 {
       
   202         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   203         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   204         STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   205         STDMETHOD(GetCharCodePages)(THIS_ WCHAR,DWORD*) PURE;
       
   206         STDMETHOD(GetStrCodePages)(THIS_ const WCHAR *,long,DWORD,DWORD*,long*) PURE;
       
   207         STDMETHOD(CodePageToCodePages)(THIS_ UINT,DWORD*) PURE;
       
   208         STDMETHOD(CodePagesToCodePage)(THIS_ DWORD,UINT,UINT*) PURE;
       
   209 };
       
   210 #undef INTERFACE
       
   211 
       
   212 EXTERN_C const IID IID_IMLangConvertCharset;
       
   213 #define INTERFACE IMLangConvertCharset
       
   214 DECLARE_INTERFACE_(IMLangConvertCharset,IUnknown)
       
   215 {
       
   216         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   217         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   218         STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   219         STDMETHOD(Initialize)(THIS_ UINT,UINT,DWORD) PURE;
       
   220         STDMETHOD(GetSourceCodePage)(THIS_ UINT*) PURE;
       
   221         STDMETHOD(GetDestinationCodePage)(THIS_ UINT*) PURE;
       
   222         STDMETHOD(GetProperty)(THIS_ DWORD*) PURE;
       
   223         STDMETHOD(DoConversion)(THIS_ BYTE*,UINT*,BYTE*,UINT*) PURE;
       
   224         STDMETHOD(DoConversionToUnicode)(THIS_ CHAR*,UINT*,WCHAR*,UINT*) PURE;
       
   225         STDMETHOD(DoConversionFromUnicode)(THIS_ WCHAR*,UINT*,CHAR*,UINT*) PURE;
       
   226 };
       
   227 #undef INTERFACE
       
   228 EXTERN_C const CLSID CLSID_CMLangConvertCharset;
       
   229 
       
   230 EXTERN_C const IID IID_IMLangFontLink;
       
   231 #define INTERFACE IMLangFontLink
       
   232 DECLARE_INTERFACE_(IMLangFontLink,IMLangCodePages)
       
   233 {
       
   234         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   235         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   236         STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   237         STDMETHOD(GetCharCodePages)(THIS_ WCHAR,DWORD*) PURE;
       
   238         STDMETHOD(GetStrCodePages)(THIS_ const WCHAR *,long,DWORD,DWORD*,long*) PURE;
       
   239         STDMETHOD(CodePageToCodePages)(THIS_ UINT,DWORD*) PURE;
       
   240         STDMETHOD(CodePagesToCodePage)(THIS_ DWORD,UINT,UINT*) PURE;
       
   241         STDMETHOD(GetFontCodePages)(THIS_ HDC,HFONT,DWORD*) PURE;
       
   242         STDMETHOD(ReleaseFont)(THIS_ HFONT) PURE;
       
   243         STDMETHOD(ResetFontMapping)(THIS) PURE;
       
   244         STDMETHOD(MapFont)(THIS_ HDC,DWORD,WCHAR,HFONT*) PURE;
       
   245 };
       
   246 #undef INTERFACE
       
   247 
       
   248 EXTERN_C const IID IID_IMLangFontLink2;
       
   249 #define INTERFACE IMLangFontLink2
       
   250 DECLARE_INTERFACE_(IMLangFontLink2,IMLangCodePages)
       
   251 {
       
   252         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   253         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   254         STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   255         STDMETHOD(GetCharCodePages)(THIS_ WCHAR,DWORD*) PURE;
       
   256         STDMETHOD(GetStrCodePages)(THIS_ const WCHAR *,long,DWORD,DWORD*,long*) PURE;
       
   257         STDMETHOD(CodePageToCodePages)(THIS_ UINT,DWORD*) PURE;
       
   258         STDMETHOD(CodePagesToCodePage)(THIS_ DWORD,UINT,UINT*) PURE;
       
   259         STDMETHOD(GetFontCodePages)(THIS_ HDC,HFONT,DWORD*) PURE;
       
   260         STDMETHOD(ReleaseFont)(THIS_ HFONT) PURE;
       
   261         STDMETHOD(ResetFontMapping)(THIS) PURE;
       
   262         STDMETHOD(MapFont)(THIS_ HDC,DWORD,WCHAR,HFONT*) PURE;
       
   263         STDMETHOD(GetFontUnicodeRange)(THIS_ HDC,UINT*,UNICODERANGE*) PURE;
       
   264         STDMETHOD(GetScriptFontInfo)(THIS_ SCRIPT_ID,DWORD,UINT*,SCRIPTFONTINFO*) PURE;
       
   265         STDMETHOD(CodePageToScriptID)(THIS) PURE;
       
   266 };
       
   267 #undef INTERFACE
       
   268 
       
   269 EXTERN_C const IID IID_IMLangLineBreakConsole;
       
   270 #define INTERFACE IMLangLineBreakConsole
       
   271 DECLARE_INTERFACE_(IMLangLineBreakConsole,IMLangCodePages)
       
   272 {
       
   273         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   274         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   275         STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   276         STDMETHOD(BreakLineML)(THIS) PURE;
       
   277         STDMETHOD(BreakLineW)(THIS_ LCID,const WCHAR*,long,long,long*,long*) PURE;
       
   278         STDMETHOD(BreakLineA)(THIS_ LCID,UINT,const CHAR*,long,long,long*,long*) PURE;
       
   279 };
       
   280 #undef INTERFACE
       
   281 
       
   282 EXTERN_C const IID IID_IMultiLanguage;
       
   283 #define INTERFACE IMultiLanguage
       
   284 DECLARE_INTERFACE_(IMultiLanguage,IUnknown)
       
   285 {
       
   286         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   287         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   288         STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   289         STDMETHOD(GetNumberOfCodePageInfo)(THIS_ UINT*) PURE;
       
   290         STDMETHOD(GetCodePageInfo)(THIS_ UINT,PMIMECPINFO) PURE;
       
   291         STDMETHOD(GetFamilyCodePage)(THIS_ UINT,UINT*) PURE;
       
   292         STDMETHOD(EnumCodePages)(THIS_ DWORD,IEnumCodePage**) PURE;
       
   293         STDMETHOD(GetCharsetInfo)(THIS_ BSTR,PMIMECSETINFO) PURE;
       
   294         STDMETHOD(IsConvertible)(THIS_ DWORD,DWORD) PURE;
       
   295         STDMETHOD(ConvertString)(THIS_ DWORD*,DWORD,DWORD,BYTE*,UINT*,BYTE*,UINT*) PURE;
       
   296         STDMETHOD(ConvertStringToUnicode)(THIS_ DWORD*,DWORD,CHAR*,UINT*,WCHAR*,UINT*) PURE;
       
   297         STDMETHOD(ConvertStringFromUnicode)(THIS_ DWORD*,DWORD,WCHAR*,UINT*,CHAR*,UINT*) PURE;
       
   298         STDMETHOD(ConvertStringReset)(THIS) PURE;
       
   299         STDMETHOD(GetRfc1766FromLcid)(THIS_ LCID,BSTR*) PURE;
       
   300         STDMETHOD(GetLcidFromRfc1766)(THIS_ LCID*,BSTR) PURE;
       
   301         STDMETHOD(EnumRfc1766)(THIS_ IEnumRfc1766**) PURE;
       
   302         STDMETHOD(GetRfc1766Info)(THIS_ LCID,PRFC1766INFO) PURE;
       
   303         STDMETHOD(CreateConvertCharset)(THIS_ UINT,UINT,DWORD,IMLangConvertCharset**) PURE;
       
   304 };
       
   305 #undef INTERFACE
       
   306 EXTERN_C const CLSID CLSID_CMultiLanguage;
       
   307 
       
   308 EXTERN_C const IID IID_IMultiLanguage2;
       
   309 #define INTERFACE IMultiLanguage2
       
   310 DECLARE_INTERFACE_(IMultiLanguage2,IUnknown)
       
   311 {
       
   312         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   313         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   314         STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   315         STDMETHOD(GetNumberOfCodePageInfo)(THIS_ UINT*) PURE;
       
   316         STDMETHOD(GetCodePageInfo)(THIS_ UINT,PMIMECPINFO) PURE;
       
   317         STDMETHOD(GetFamilyCodePage)(THIS_ UINT,UINT*) PURE;
       
   318         STDMETHOD(EnumCodePages)(THIS_ DWORD,IEnumCodePage**) PURE;
       
   319         STDMETHOD(GetCharsetInfo)(THIS_ BSTR,PMIMECSETINFO) PURE;
       
   320         STDMETHOD(IsConvertible)(THIS_ DWORD,DWORD) PURE;
       
   321         STDMETHOD(ConvertString)(THIS_ DWORD*,DWORD,DWORD,BYTE*,UINT*,BYTE*,UINT*) PURE;
       
   322         STDMETHOD(ConvertStringToUnicode)(THIS_ DWORD*,DWORD,CHAR*,UINT*,WCHAR*,UINT*) PURE;
       
   323         STDMETHOD(ConvertStringFromUnicode)(THIS_ DWORD*,DWORD,WCHAR*,UINT*,CHAR*,UINT*) PURE;
       
   324         STDMETHOD(ConvertStringReset)(THIS) PURE;
       
   325         STDMETHOD(GetRfc1766FromLcid)(THIS_ LCID,BSTR*) PURE;
       
   326         STDMETHOD(GetLcidFromRfc1766)(THIS_ LCID*,BSTR) PURE;
       
   327         STDMETHOD(EnumRfc1766)(THIS_ IEnumRfc1766**) PURE;
       
   328         STDMETHOD(GetRfc1766Info)(THIS_ LCID,PRFC1766INFO) PURE;
       
   329         STDMETHOD(CreateConvertCharset)(THIS_ UINT,UINT,DWORD,IMLangConvertCharset**) PURE;
       
   330         STDMETHOD(ConvertStringInIStream)(THIS_ DWORD*,DWORD,WCHAR*,DWORD,DWORD,IStream*,IStream*) PURE;
       
   331         STDMETHOD(ConvertStringToUnicodeEx)(THIS_ DWORD*,DWORD,CHAR*,UINT*,WCHAR*,UINT*,DWORD,WCHAR*) PURE;
       
   332         STDMETHOD(ConvertStringFromUnicodeEx)(THIS_ DWORD*,DWORD,WCHAR*,UINT*,CHAR*,UINT*,DWORD,WCHAR*) PURE;
       
   333         STDMETHOD(DetectCodepageInIStream)(THIS_ DWORD,DWORD,IStream*,DetectEncodingInfo*,INT*) PURE;
       
   334         STDMETHOD(DetectInputCodepage)(THIS_ DWORD,DWORD,CHAR*,INT*,DetectEncodingInfo*,INT*) PURE;
       
   335         STDMETHOD(ValidateCodePage)(THIS) PURE;
       
   336         STDMETHOD(GetCodePageDescription)(THIS_ UINT,LCID,LPWSTR,int) PURE;
       
   337         STDMETHOD(IsCodePageInstallable)(THIS) PURE;
       
   338         STDMETHOD(SetMimeDBSource)(THIS_ MIMECONTF) PURE;
       
   339         STDMETHOD(GetNumberOfScripts)(THIS_ UINT*) PURE;
       
   340         STDMETHOD(EnumScripts)(THIS_ DWORD,LANGID,IEnumScript**) PURE;
       
   341 };
       
   342 #undef INTERFACE
       
   343 
       
   344   
       
   345 #pragma pack(pop)
       
   346 #ifdef __cplusplus
       
   347 }
       
   348 #endif
       
   349 #endif