WindowsXP-SP1/shell/ext/mlang/mimedb.cpp

928 lines
61 KiB
C++
Raw Permalink Normal View History

2001-01-01 00:00:00 +01:00
#include "private.h"
// Table pre-sorted by charset for binary search !!!
const MIMECHARSET MimeCharSet[] =
{
// { Charset, CodePage, InternetEncoding, Flags }
{ L"_autodetect", 50932, 50932, MIMECONTF_MIME_LATEST | MIMECONTF_MIME_IE4 },
{ L"_autodetect_all", 50001, 50001, MIMECONTF_MIME_LATEST},
{ L"_autodetect_kr", 50949, 50949, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"_iso-2022-jp$ESC", 932, 50221, MIMECONTF_MIME_IE4 },
{ L"_iso-2022-jp$SIO", 932, 50222, MIMECONTF_MIME_IE4 },
{ L"437", 1252, 437, MIMECONTF_MIME_LATEST},
{ L"ANSI_X3.4-1968", 1252, 20127, MIMECONTF_MIME_LATEST},
{ L"ANSI_X3.4-1968", 1252, 1252, MIMECONTF_MIME_IE4},
{ L"ANSI_X3.4-1986", 1252, 20127, MIMECONTF_MIME_LATEST},
{ L"ANSI_X3.4-1986", 1252, 1252, MIMECONTF_MIME_IE4},
{ L"arabic", 1256, 28596, MIMECONTF_MIME_LATEST},
{ L"arabic", 1256, 1256, MIMECONTF_MIME_IE4},
{ L"ascii", 1252, 20127, MIMECONTF_MIME_LATEST},
{ L"ascii", 1252, 1252, MIMECONTF_MIME_IE4},
{ L"ASMO-708", 1256, 708, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"Big5", 950, 950, MIMECONTF_MIME_LATEST | MIMECONTF_MIME_IE4 },
{ L"Big5-HKSCS", 950, 950, MIMECONTF_MIME_LATEST},
{ L"CCSID00858", 1252, 858, MIMECONTF_MIME_LATEST },
{ L"CCSID00924", 1252, 20924, MIMECONTF_MIME_LATEST },
{ L"CCSID01140", 1252, 1140, MIMECONTF_MIME_LATEST },
{ L"CCSID01141", 1252, 1141, MIMECONTF_MIME_LATEST },
{ L"CCSID01142", 1252, 1142, MIMECONTF_MIME_LATEST },
{ L"CCSID01143", 1252, 1143, MIMECONTF_MIME_LATEST },
{ L"CCSID01144", 1252, 1144, MIMECONTF_MIME_LATEST },
{ L"CCSID01145", 1252, 1145, MIMECONTF_MIME_LATEST },
{ L"CCSID01146", 1252, 1146, MIMECONTF_MIME_LATEST },
{ L"CCSID01147", 1252, 1147, MIMECONTF_MIME_LATEST },
{ L"CCSID01148", 1252, 1148, MIMECONTF_MIME_LATEST },
{ L"CCSID01149", 1252, 1149, MIMECONTF_MIME_LATEST },
{ L"chinese", 936, 936, MIMECONTF_MIME_LATEST | MIMECONTF_MIME_IE4 },
{ L"cn-big5", 950, 950, MIMECONTF_MIME_LATEST},
{ L"CN-GB", 936, 936, MIMECONTF_MIME_LATEST },
{ L"CP00858", 1252, 858, MIMECONTF_MIME_LATEST },
{ L"CP00924", 1252, 20924, MIMECONTF_MIME_LATEST },
{ L"CP01140", 1252, 1140, MIMECONTF_MIME_LATEST },
{ L"CP01141", 1252, 1141, MIMECONTF_MIME_LATEST },
{ L"CP01142", 1252, 1142, MIMECONTF_MIME_LATEST },
{ L"CP01143", 1252, 1143, MIMECONTF_MIME_LATEST },
{ L"CP01144", 1252, 1144, MIMECONTF_MIME_LATEST },
{ L"CP01145", 1252, 1145, MIMECONTF_MIME_LATEST },
{ L"CP01146", 1252, 1146, MIMECONTF_MIME_LATEST },
{ L"CP01147", 1252, 1147, MIMECONTF_MIME_LATEST },
{ L"CP01148", 1252, 1148, MIMECONTF_MIME_LATEST },
{ L"CP01149", 1252, 1149, MIMECONTF_MIME_LATEST },
{ L"cp037", 1252, 37, MIMECONTF_MIME_LATEST },
{ L"cp1025", 1251, 21025, MIMECONTF_MIME_LATEST },
{ L"CP1026", 1254, 1026, MIMECONTF_MIME_LATEST },
{ L"cp1256", 1256, 1256, MIMECONTF_MIME_LATEST },
{ L"CP273", 1252, 20273, MIMECONTF_MIME_LATEST },
{ L"CP278", 1252, 20278, MIMECONTF_MIME_LATEST },
{ L"CP280", 1252, 20280, MIMECONTF_MIME_LATEST },
{ L"CP284", 1252, 20284, MIMECONTF_MIME_LATEST },
{ L"CP285", 1252, 20285, MIMECONTF_MIME_LATEST },
{ L"cp290", 932, 20290, MIMECONTF_MIME_LATEST },
{ L"cp297", 1252, 20297, MIMECONTF_MIME_LATEST },
{ L"cp367", 1252, 20127, MIMECONTF_MIME_LATEST},
{ L"cp367", 1252, 1252, MIMECONTF_MIME_IE4},
{ L"cp420", 1256, 20420, MIMECONTF_MIME_LATEST },
{ L"cp423", 1253, 20423, MIMECONTF_MIME_LATEST },
{ L"cp424", 1255, 20424, MIMECONTF_MIME_LATEST },
{ L"cp437", 1252, 437, MIMECONTF_MIME_LATEST},
{ L"CP500", 1252, 500, MIMECONTF_MIME_LATEST },
{ L"cp819", 1252, 28591, MIMECONTF_MIME_LATEST},
{ L"cp819", 1252, 1252, MIMECONTF_MIME_IE4},
{ L"cp850", 1252, 850, MIMECONTF_MIME_LATEST },
{ L"cp852", 1250, 852, MIMECONTF_MIME_LATEST},
{ L"cp852", 852, 852, MIMECONTF_MIME_IE4 },
{ L"cp855", 1250, 855, MIMECONTF_MIME_LATEST },
{ L"cp857", 1254, 857, MIMECONTF_MIME_LATEST },
{ L"cp858", 1252, 858, MIMECONTF_MIME_LATEST },
{ L"cp860", 1252, 860, MIMECONTF_MIME_LATEST },
{ L"cp861", 1252, 861, MIMECONTF_MIME_LATEST },
{ L"cp862", 1255, 862, MIMECONTF_MIME_LATEST },
{ L"cp863", 1252, 863, MIMECONTF_MIME_LATEST },
{ L"cp864", 1256, 864, MIMECONTF_MIME_LATEST },
{ L"cp865", 1252, 865, MIMECONTF_MIME_LATEST },
{ L"cp866", 1251, 866, MIMECONTF_MIME_LATEST },
{ L"cp866", 866, 866, MIMECONTF_MIME_IE4 },
{ L"cp869", 1253, 869, MIMECONTF_MIME_LATEST },
{ L"CP870", 1250, 870, MIMECONTF_MIME_LATEST },
{ L"CP871", 1252, 20871, MIMECONTF_MIME_LATEST },
{ L"cp875", 1253, 875, MIMECONTF_MIME_LATEST },
{ L"cp880", 1251, 20880, MIMECONTF_MIME_LATEST },
{ L"CP905", 1254, 20905, MIMECONTF_MIME_LATEST },
{ L"cp930", 932, 50930, MIMECONTF_MIME_LATEST },
{ L"cp933", 949, 50933, MIMECONTF_MIME_LATEST },
{ L"cp935", 936, 50935, MIMECONTF_MIME_LATEST },
{ L"cp937", 950, 50937, MIMECONTF_MIME_LATEST },
{ L"cp939", 932, 50939, MIMECONTF_MIME_LATEST },
{ L"csASCII", 1252, 20127, MIMECONTF_MIME_LATEST},
{ L"csASCII", 1252, 1252, MIMECONTF_MIME_IE4},
{ L"csbig5", 950, 950, MIMECONTF_MIME_LATEST | MIMECONTF_MIME_IE4 },
{ L"csEUCKR", 949, 51949, MIMECONTF_MIME_LATEST },
{ L"csEUCPkdFmtJapanese", 932, 51932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"csGB2312", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"csGB231280", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"csIBM037", 1252, 37, MIMECONTF_MIME_LATEST },
{ L"csIBM1026", 1254, 1026, MIMECONTF_MIME_LATEST },
{ L"csIBM273", 1252, 20273, MIMECONTF_MIME_LATEST },
{ L"csIBM277", 1252, 20277, MIMECONTF_MIME_LATEST },
{ L"csIBM278", 1252, 20278, MIMECONTF_MIME_LATEST },
{ L"csIBM280", 1252, 20280, MIMECONTF_MIME_LATEST },
{ L"csIBM284", 1252, 20284, MIMECONTF_MIME_LATEST },
{ L"csIBM285", 1252, 20285, MIMECONTF_MIME_LATEST },
{ L"csIBM290", 932, 20290, MIMECONTF_MIME_LATEST },
{ L"csIBM297", 1252, 20297, MIMECONTF_MIME_LATEST },
{ L"csIBM420", 1256, 20420, MIMECONTF_MIME_LATEST },
{ L"csIBM423", 1253, 20423, MIMECONTF_MIME_LATEST },
{ L"csIBM424", 1255, 20424, MIMECONTF_MIME_LATEST },
{ L"csIBM500", 1252, 500, MIMECONTF_MIME_LATEST },
{ L"csIBM870", 1250, 870, MIMECONTF_MIME_LATEST },
{ L"csIBM871", 1252, 20871, MIMECONTF_MIME_LATEST },
{ L"csIBM880", 1251, 20880, MIMECONTF_MIME_LATEST },
{ L"csIBM905", 1254, 20905, MIMECONTF_MIME_LATEST },
{ L"csIBMThai", 874, 20838, MIMECONTF_MIME_LATEST },
{ L"csISO2022JP", 932, 50221, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"csISO2022KR", 949, 50225, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"csISO58GB231280", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"csISOLatin1", 1252, 28591, MIMECONTF_MIME_LATEST},
{ L"csISOLatin2", 1250, 28592, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"csISOLatin3", 1254, 28593, MIMECONTF_MIME_LATEST},
{ L"csISOLatin4", 1257, 28594, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"csISOLatin5", 1254, 28599, MIMECONTF_MIME_LATEST },
{ L"csISOLatin5", 1251, 28595, MIMECONTF_MIME_IE4},
{ L"csISOLatin9", 1252, 28605, MIMECONTF_MIME_LATEST },
{ L"csISOLatinArabic", 1256, 28596, MIMECONTF_MIME_LATEST},
{ L"csISOLatinArabic", 1256, 1256, MIMECONTF_MIME_IE4},
{ L"csISOLatinCyrillic", 1251, 28595, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"csISOLatinGreek", 1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"csISOLatinHebrew", 1255, 28598, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"csKOI8R", 1251, 20866, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"csKSC56011987", 949, 949, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"csPC8CodePage437", 1252, 437, MIMECONTF_MIME_LATEST},
{ L"csShiftJIS", 932, 932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"csUnicode11UTF7", 1200, 65000, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"csWindows31J", 932, 932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"cyrillic", 1251, 28595, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"DIN_66003", 1252, 20106, MIMECONTF_MIME_LATEST},
{ L"DOS-720", 1256, 720, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"DOS-862", 1255, 862, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"DOS-874", 874, 874, MIMECONTF_MIME_LATEST},
{ L"ebcdic-cp-ar1", 1256, 20420, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-be", 1252, 500, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-ca", 1252, 37, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-ch", 1252, 500, MIMECONTF_MIME_LATEST },
{ L"EBCDIC-CP-DK", 1252, 20277, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-es", 1252, 20284, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-fi", 1252, 20278, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-fr", 1252, 20297, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-gb", 1252, 20285, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-gr", 1253, 20423, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-he", 1255, 20424, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-is", 1252, 20871, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-it", 1252, 20280, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-nl", 1252, 37, MIMECONTF_MIME_LATEST },
{ L"EBCDIC-CP-NO", 1252, 20277, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-roece", 1250, 870, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-se", 1252, 20278, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-tr", 1254, 20905, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-us", 1252, 37, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-wt", 1252, 37, MIMECONTF_MIME_LATEST },
{ L"ebcdic-cp-yu", 1250, 870, MIMECONTF_MIME_LATEST },
{ L"EBCDIC-Cyrillic", 1251, 20880, MIMECONTF_MIME_LATEST },
{ L"ebcdic-de-273+euro", 1252, 1141, MIMECONTF_MIME_LATEST },
{ L"ebcdic-dk-277+euro", 1252, 1142, MIMECONTF_MIME_LATEST },
{ L"ebcdic-es-284+euro", 1252, 1145, MIMECONTF_MIME_LATEST },
{ L"ebcdic-fi-278+euro", 1252, 1143, MIMECONTF_MIME_LATEST },
{ L"ebcdic-fr-297+euro", 1252, 1147, MIMECONTF_MIME_LATEST },
{ L"ebcdic-gb-285+euro", 1252, 1146, MIMECONTF_MIME_LATEST },
{ L"ebcdic-international-500+euro", 1252, 1148, MIMECONTF_MIME_LATEST },
{ L"ebcdic-is-871+euro", 1252, 1149, MIMECONTF_MIME_LATEST },
{ L"ebcdic-it-280+euro", 1252, 1144, MIMECONTF_MIME_LATEST },
{ L"EBCDIC-JP-kana", 932, 20290, MIMECONTF_MIME_LATEST },
{ L"ebcdic-Latin9--euro", 1252, 20924, MIMECONTF_MIME_LATEST },
{ L"ebcdic-no-277+euro", 1252, 1142, MIMECONTF_MIME_LATEST },
{ L"ebcdic-se-278+euro", 1252, 1143, MIMECONTF_MIME_LATEST },
{ L"ebcdic-us-37+euro", 1252, 1140, MIMECONTF_MIME_LATEST },
{ L"ECMA-114", 1256, 28596, MIMECONTF_MIME_LATEST},
{ L"ECMA-114", 1256, 1256, MIMECONTF_MIME_IE4},
{ L"ECMA-118", 1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"ELOT_928", 1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"euc-cn", 936, 51936, MIMECONTF_MIME_LATEST},
{ L"euc-jp", 932, 51932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"euc-kr", 949, 51949, MIMECONTF_MIME_LATEST },
{ L"euc-kr", 949, 949, MIMECONTF_MIME_IE4 },
{ L"Extended_UNIX_Code_Packed_Format_for_Japanese", 932, 51932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"GB_2312-80", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"GB18030", 936, 54936, MIMECONTF_MIME_LATEST},
{ L"GB2312", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"GB2312-80", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"GB231280", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"GBK", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"German", 1252, 20106, MIMECONTF_MIME_LATEST},
{ L"greek", 1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"greek8", 1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"hebrew", 1255, 28598, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"hz-gb-2312", 936, 52936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"IBM00858", 1252, 858, MIMECONTF_MIME_LATEST },
{ L"IBM00924", 1252, 20924, MIMECONTF_MIME_LATEST },
{ L"IBM01047", 1252, 1047, MIMECONTF_MIME_LATEST },
{ L"IBM01140", 1252, 1140, MIMECONTF_MIME_LATEST },
{ L"IBM01141", 1252, 1141, MIMECONTF_MIME_LATEST },
{ L"IBM01142", 1252, 1142, MIMECONTF_MIME_LATEST },
{ L"IBM01143", 1252, 1143, MIMECONTF_MIME_LATEST },
{ L"IBM01144", 1252, 1144, MIMECONTF_MIME_LATEST },
{ L"IBM01145", 1252, 1145, MIMECONTF_MIME_LATEST },
{ L"IBM01146", 1252, 1146, MIMECONTF_MIME_LATEST },
{ L"IBM01147", 1252, 1147, MIMECONTF_MIME_LATEST },
{ L"IBM01148", 1252, 1148, MIMECONTF_MIME_LATEST },
{ L"IBM01149", 1252, 1149, MIMECONTF_MIME_LATEST },
{ L"IBM037", 1252, 37, MIMECONTF_MIME_LATEST },
{ L"IBM1026", 1254, 1026, MIMECONTF_MIME_LATEST },
{ L"IBM273", 1252, 20273, MIMECONTF_MIME_LATEST },
{ L"IBM277", 1252, 20277, MIMECONTF_MIME_LATEST },
{ L"IBM278", 1252, 20278, MIMECONTF_MIME_LATEST },
{ L"IBM280", 1252, 20280, MIMECONTF_MIME_LATEST },
{ L"IBM284", 1252, 20284, MIMECONTF_MIME_LATEST },
{ L"IBM285", 1252, 20285, MIMECONTF_MIME_LATEST },
{ L"IBM290", 932, 20290, MIMECONTF_MIME_LATEST },
{ L"IBM297", 1252, 20297, MIMECONTF_MIME_LATEST },
{ L"IBM367", 1252, 20127, MIMECONTF_MIME_LATEST},
{ L"IBM367", 1252, 1252, MIMECONTF_MIME_IE4},
{ L"IBM420", 1256, 20420, MIMECONTF_MIME_LATEST },
{ L"IBM423", 1253, 20423, MIMECONTF_MIME_LATEST },
{ L"IBM424", 1255, 20424, MIMECONTF_MIME_LATEST },
{ L"IBM437", 1252, 437, MIMECONTF_MIME_LATEST},
{ L"IBM500", 1252, 500, MIMECONTF_MIME_LATEST },
{ L"ibm737", 1252, 737, MIMECONTF_MIME_LATEST},
{ L"ibm775", 1257, 775, MIMECONTF_MIME_LATEST},
{ L"ibm819", 1252, 28591, MIMECONTF_MIME_LATEST},
{ L"ibm819", 1252, 1252, MIMECONTF_MIME_IE4},
{ L"IBM850", 1252, 850, MIMECONTF_MIME_LATEST },
{ L"IBM852", 1250, 852, MIMECONTF_MIME_LATEST },
{ L"IBM852", 852, 852, MIMECONTF_MIME_IE4 },
{ L"IBM855", 1250, 855, MIMECONTF_MIME_LATEST },
{ L"IBM857", 1254, 857, MIMECONTF_MIME_LATEST },
{ L"IBM860", 1252, 860, MIMECONTF_MIME_LATEST },
{ L"IBM861", 1252, 861, MIMECONTF_MIME_LATEST },
{ L"IBM862", 1255, 862, MIMECONTF_MIME_LATEST },
{ L"IBM863", 1252, 863, MIMECONTF_MIME_LATEST },
{ L"IBM864", 1256, 864, MIMECONTF_MIME_LATEST },
{ L"IBM865", 1252, 865, MIMECONTF_MIME_LATEST },
{ L"IBM866", 1251, 866, MIMECONTF_MIME_LATEST },
{ L"IBM866", 866, 866, MIMECONTF_MIME_IE4 },
{ L"IBM869", 1253, 869, MIMECONTF_MIME_LATEST },
{ L"IBM870", 1250, 870, MIMECONTF_MIME_LATEST },
{ L"IBM871", 1252, 20871, MIMECONTF_MIME_LATEST },
{ L"IBM880", 1251, 20880, MIMECONTF_MIME_LATEST },
{ L"IBM905", 1254, 20905, MIMECONTF_MIME_LATEST },
{ L"IBM-Thai", 874, 20838, MIMECONTF_MIME_LATEST },
{ L"irv", 1252, 20105, MIMECONTF_MIME_LATEST},
{ L"ISO_646.irv:1991", 1252, 20127, MIMECONTF_MIME_LATEST},
{ L"ISO_646.irv:1991", 1252, 1252, MIMECONTF_MIME_IE4},
{ L"iso_8859-1", 1252, 28591, MIMECONTF_MIME_LATEST},
{ L"iso_8859-1", 1252, 1252, MIMECONTF_MIME_IE4 },
{ L"iso_8859-1:1987", 1252, 28591, MIMECONTF_MIME_LATEST },
{ L"iso_8859-1:1987", 1252, 1252, MIMECONTF_MIME_IE4 },
{ L"ISO_8859-15", 1252, 28605, MIMECONTF_MIME_LATEST},
{ L"iso_8859-2", 1250, 28592, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"iso_8859-2:1987", 1250, 28592, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"ISO_8859-3", 1254, 28593, MIMECONTF_MIME_LATEST},
{ L"ISO_8859-3:1988", 1254, 28593, MIMECONTF_MIME_LATEST},
{ L"ISO_8859-4", 1257, 28594, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"ISO_8859-4:1988", 1257, 28594, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"ISO_8859-5", 1251, 28595, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"ISO_8859-5:1988", 1251, 28595, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"ISO_8859-6", 1256, 28596, MIMECONTF_MIME_LATEST},
{ L"ISO_8859-6", 1256, 1256, MIMECONTF_MIME_IE4},
{ L"ISO_8859-6:1987", 1256, 28596, MIMECONTF_MIME_LATEST},
{ L"ISO_8859-6:1987", 1256, 1256, MIMECONTF_MIME_IE4},
{ L"ISO_8859-7", 1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"ISO_8859-7:1987", 1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"ISO_8859-8", 1255, 28598, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"ISO_8859-8:1988", 1255, 28598, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"ISO_8859-8-I", 1255, 1255, MIMECONTF_MIME_IE4 },
{ L"ISO_8859-9", 1254, 28599, MIMECONTF_MIME_LATEST},
{ L"ISO_8859-9", 1254, 1254, MIMECONTF_MIME_IE4 },
{ L"ISO_8859-9:1989", 1254, 28599, MIMECONTF_MIME_LATEST},
{ L"ISO_8859-9:1989", 1254, 1254, MIMECONTF_MIME_IE4 },
{ L"iso-2022-jp", 932, 50220, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"iso-2022-jpeuc", 932, 51932, MIMECONTF_MIME_LATEST},
{ L"iso-2022-kr", 949, 50225, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"iso-2022-kr-7", 949, 50225, MIMECONTF_MIME_LATEST},
{ L"iso-2022-kr-7bit", 949, 50225, MIMECONTF_MIME_LATEST},
{ L"iso-2022-kr-8", 949, 51949, MIMECONTF_MIME_LATEST },
{ L"iso-2022-kr-8bit", 949, 51949, MIMECONTF_MIME_LATEST },
{ L"ISO646-US", 1252, 20127, MIMECONTF_MIME_LATEST },
{ L"ISO646-US", 1252, 1252, MIMECONTF_MIME_IE4},
{ L"iso8859-1", 1252, 28591, MIMECONTF_MIME_LATEST },
{ L"iso8859-1", 1252, 1252, MIMECONTF_MIME_IE4 },
{ L"iso-8859-1", 1252, 28591, MIMECONTF_MIME_LATEST},
{ L"iso-8859-1", 1252, 1252, MIMECONTF_MIME_IE4},
{ L"iso-8859-11", 874, 874, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"iso-8859-13", 1257, 28603, MIMECONTF_MIME_LATEST},
{ L"iso-8859-15", 1252, 28605, MIMECONTF_MIME_LATEST},
{ L"iso8859-2", 1250, 28592, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"iso-8859-2", 1250, 28592, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"iso-8859-3", 1254, 28593, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"iso-8859-4", 1257, 28594, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"iso-8859-5", 1251, 28595, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"iso-8859-6", 1256, 28596, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"iso-8859-7", 1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"iso-8859-8", 1255, 28598, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"ISO-8859-8 Visual", 1255, 28598, MIMECONTF_MIME_LATEST},
{ L"ISO-8859-8 Visual", 1255, 1255, MIMECONTF_MIME_IE4},
{ L"iso-8859-8-i", 1255, 38598, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"iso-8859-9", 1254, 28599, MIMECONTF_MIME_LATEST},
{ L"iso-8859-9", 1254, 1254, MIMECONTF_MIME_IE4 },
{ L"iso-ir-100", 1252, 28591, MIMECONTF_MIME_LATEST},
{ L"iso-ir-100", 1252, 1252, MIMECONTF_MIME_IE4 },
{ L"iso-ir-101", 1250, 28592, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"iso-ir-109", 1254, 28593, MIMECONTF_MIME_LATEST},
{ L"iso-ir-110", 1257, 28594, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"iso-ir-126", 1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"iso-ir-127", 1256, 28596, MIMECONTF_MIME_LATEST },
{ L"iso-ir-127", 1256, 1256, MIMECONTF_MIME_IE4},
{ L"iso-ir-138", 1255, 28598, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"iso-ir-144", 1251, 28595, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"iso-ir-148", 1254, 28599, MIMECONTF_MIME_LATEST},
{ L"iso-ir-148", 1254, 1254, MIMECONTF_MIME_IE4 },
{ L"iso-ir-149", 949, 949, MIMECONTF_MIME_LATEST},
{ L"iso-ir-58", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"iso-ir-6", 1252, 20127, MIMECONTF_MIME_LATEST},
{ L"iso-ir-6", 1252, 1252, MIMECONTF_MIME_IE4},
{ L"Johab", 1361, 1361, MIMECONTF_MIME_LATEST},
{ L"koi", 1251, 20866, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"koi8", 1251, 20866, MIMECONTF_MIME_LATEST},
{ L"koi8r", 1251, 20866, MIMECONTF_MIME_LATEST},
{ L"koi8-r", 1251, 20866, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"koi8-ru", 1251, 21866, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"koi8-u", 1251, 21866, MIMECONTF_MIME_LATEST},
{ L"korean", 949, 949, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"ks_c_5601", 949, 949, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"ks_c_5601_1987", 949, 949, MIMECONTF_MIME_LATEST},
{ L"ks_c_5601-1987", 949, 949, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"ks_c_5601-1989", 949, 949, MIMECONTF_MIME_LATEST},
{ L"KSC_5601", 949, 949, MIMECONTF_MIME_LATEST},
{ L"KSC5601", 949, 949, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"ks-c5601", 949, 949, MIMECONTF_MIME_LATEST},
{ L"ks-c-5601", 949, 949, MIMECONTF_MIME_LATEST},
{ L"l1", 1252, 28591, MIMECONTF_MIME_LATEST},
{ L"l2", 1250, 28592, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"l3", 1254, 28593, MIMECONTF_MIME_LATEST},
{ L"l4", 1257, 28594, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"l5", 1254, 28599, MIMECONTF_MIME_LATEST },
{ L"l5", 1251, 28595, MIMECONTF_MIME_IE4 },
{ L"l9", 1252, 28605, MIMECONTF_MIME_LATEST },
{ L"latin1", 1252, 28591, MIMECONTF_MIME_LATEST },
{ L"latin1", 1252, 1252, MIMECONTF_MIME_IE4 },
{ L"latin2", 1250, 28592, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"latin3", 1254, 28593, MIMECONTF_MIME_LATEST},
{ L"latin4", 1257, 28594, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"latin5", 1254, 28599, MIMECONTF_MIME_LATEST},
{ L"latin5", 1254, 1254, MIMECONTF_MIME_IE4},
{ L"latin9", 1252, 28605, MIMECONTF_MIME_LATEST},
{ L"logical", 1255, 28598, MIMECONTF_MIME_LATEST},
{ L"logical", 1255, 1255, MIMECONTF_MIME_IE4},
{ L"macintosh", 1252, 10000, MIMECONTF_MIME_LATEST},
{ L"ms_Kanji", 932, 932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"Norwegian", 1252, 20108, MIMECONTF_MIME_LATEST},
{ L"NS_4551-1", 1252, 20108, MIMECONTF_MIME_LATEST},
{ L"PC-Multilingual-850+euro", 1252, 858, MIMECONTF_MIME_LATEST },
{ L"SEN_850200_B", 1252, 20107, MIMECONTF_MIME_LATEST},
{ L"shift_jis", 932, 932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"shift-jis", 932, 932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"sjis", 932, 932, MIMECONTF_MIME_LATEST},
{ L"Swedish", 1252, 20107, MIMECONTF_MIME_LATEST},
{ L"TIS-620", 874, 874, MIMECONTF_MIME_LATEST},
{ L"unicode", 1200, 1200, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"unicode-1-1-utf-7", 1200, 65000, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"unicode-1-1-utf-8", 1200, 65001, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"unicode-2-0-utf-7", 1200, 65000, MIMECONTF_MIME_LATEST},
{ L"unicode-2-0-utf-8",1200, 65001, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"unicodeFFFE", 1200, 1201, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"us", 1252, 20127, MIMECONTF_MIME_LATEST},
{ L"us", 1252, 1252, MIMECONTF_MIME_IE4},
{ L"us-ascii", 1252, 20127, MIMECONTF_MIME_LATEST},
{ L"us-ascii", 1252, 1252, MIMECONTF_MIME_IE4},
{ L"utf-16", 1200, 1200, MIMECONTF_MIME_LATEST },
{ L"UTF-16BE", 1200, 1201, MIMECONTF_MIME_LATEST },
{ L"UTF-16LE", 1200, 1200, MIMECONTF_MIME_LATEST },
{ L"utf-7", 1200, 65000, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"utf-8", 1200, 65001, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"visual", 1255, 28598, MIMECONTF_MIME_LATEST},
{ L"visual", 1255, 1255, MIMECONTF_MIME_IE4 },
{ L"windows-1250", 1250, 1250, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"windows-1251", 1251, 1251, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"windows-1252", 1252, 1252, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"windows-1253", 1253, 1253, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"Windows-1254", 1254, 1254, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"windows-1255", 1255, 1255, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"windows-1256", 1256, 1256, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"windows-1257", 1257, 1257, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"windows-1258", 1258, 1258, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"windows-874", 874, 874, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"x-ansi", 1252, 1252, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"x-Chinese-CNS", 950, 20000, MIMECONTF_MIME_LATEST},
{ L"x-Chinese-Eten", 950, 20002, MIMECONTF_MIME_LATEST},
{ L"x-cp1250", 1250, 1250, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"x-cp1251", 1251, 1251, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"x-cp20001", 1252, 20001, MIMECONTF_MIME_LATEST },
{ L"x-cp20003", 1252, 20003, MIMECONTF_MIME_LATEST },
{ L"x-cp20004", 1252, 20004, MIMECONTF_MIME_LATEST },
{ L"x-cp20005", 1252, 20005, MIMECONTF_MIME_LATEST },
{ L"x-cp20261", 1252, 20261, MIMECONTF_MIME_LATEST },
{ L"x-cp20269", 1252, 20269, MIMECONTF_MIME_LATEST },
{ L"x-cp20936", 1252, 20936, MIMECONTF_MIME_LATEST },
{ L"x-cp20949", 1252, 20949, MIMECONTF_MIME_LATEST },
{ L"x-cp21027", 1252, 21027, MIMECONTF_MIME_LATEST },
{ L"x-cp50227", 1252, 50227, MIMECONTF_MIME_LATEST },
{ L"x-cp50229", 1252, 50229, MIMECONTF_MIME_LATEST },
{ L"X-EBCDIC-JapaneseAndUSCanada", 932, 50931, MIMECONTF_MIME_LATEST },
{ L"X-EBCDIC-KoreanExtended", 949, 20833, MIMECONTF_MIME_LATEST },
{ L"x-euc", 932, 51932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"x-euc-cn", 936, 51936, MIMECONTF_MIME_LATEST},
{ L"x-euc-jp", 932, 51932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"x-Europa", 1252, 29001, MIMECONTF_MIME_LATEST},
{ L"x-IA5", 1252, 20105, MIMECONTF_MIME_LATEST},
{ L"x-IA5-German", 1252, 20106, MIMECONTF_MIME_LATEST},
{ L"x-IA5-Norwegian", 1252, 20108, MIMECONTF_MIME_LATEST},
{ L"x-IA5-Swedish", 1252, 20107, MIMECONTF_MIME_LATEST},
{ L"x-iscii-as", 57006, 57006, MIMECONTF_MIME_LATEST},
{ L"x-iscii-be", 57003, 57003, MIMECONTF_MIME_LATEST},
{ L"x-iscii-de", 57002, 57002, MIMECONTF_MIME_LATEST},
{ L"x-iscii-gu", 57010, 57010, MIMECONTF_MIME_LATEST},
{ L"x-iscii-ka", 57008, 57008, MIMECONTF_MIME_LATEST},
{ L"x-iscii-ma", 57009, 57009, MIMECONTF_MIME_LATEST},
{ L"x-iscii-or", 57007, 57007, MIMECONTF_MIME_LATEST},
{ L"x-iscii-pa", 57011, 57011, MIMECONTF_MIME_LATEST},
{ L"x-iscii-ta", 57004, 57004, MIMECONTF_MIME_LATEST},
{ L"x-iscii-te", 57005, 57005, MIMECONTF_MIME_LATEST},
{ L"x-mac-arabic", 1256, 10004, MIMECONTF_MIME_LATEST},
{ L"x-mac-ce", 1250, 10029, MIMECONTF_MIME_LATEST},
{ L"x-mac-chinesesimp", 936, 10008, MIMECONTF_MIME_LATEST},
{ L"x-mac-chinesetrad", 950, 10002, MIMECONTF_MIME_LATEST},
{ L"x-mac-croatian", 1250, 10082, MIMECONTF_MIME_LATEST},
{ L"x-mac-cyrillic", 1251, 10007, MIMECONTF_MIME_LATEST},
{ L"x-mac-greek", 1253, 10006, MIMECONTF_MIME_LATEST},
{ L"x-mac-hebrew", 1255, 10005, MIMECONTF_MIME_LATEST},
{ L"x-mac-icelandic", 1252, 10079, MIMECONTF_MIME_LATEST},
{ L"x-mac-japanese", 932, 10001, MIMECONTF_MIME_LATEST},
{ L"x-mac-korean", 949, 10003, MIMECONTF_MIME_LATEST},
{ L"x-mac-romanian", 1250, 10010, MIMECONTF_MIME_LATEST},
{ L"x-mac-thai", 874, 10021, MIMECONTF_MIME_LATEST},
{ L"x-mac-turkish", 1254, 10081, MIMECONTF_MIME_LATEST},
{ L"x-mac-ukrainian", 1251, 10017, MIMECONTF_MIME_LATEST},
{ L"x-ms-cp932", 932, 932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"x-sjis", 932, 932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
{ L"x-unicode-1-1-utf-7", 1200, 65000, MIMECONTF_MIME_LATEST},
{ L"x-unicode-1-1-utf-8", 1200, 65001, MIMECONTF_MIME_LATEST},
{ L"x-unicode-2-0-utf-7", 1200, 65000, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"x-unicode-2-0-utf-8", 1200, 65001, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"x-user-defined", 50000, 50000, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
{ L"x-x-big5", 950, 950, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
// { Charset, CodePage, InternetEncoding, Flags }
};
// Hard code sorted table by code page description and family code page.
MIMECODEPAGE MimeCodePage[] =
{
// { CodePage, HeaderCharset, BodyCharset, WebCharset, FixedWidthFont, ProportionalFont, Description, FamilyCodePage, Flags }
{ 864, NULL, L"IBM864", NULL, 0, 0, IDS_DESC_864, 1256, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 708, NULL, L"ASMO-708", NULL, 0, 0, IDS_DESC_708, 1256, 0x00000606|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 708, NULL, L"ASMO-708", NULL, 0, 0, IDS_DESC_708, 1256, 0x00000707|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 51256, NULL, L"_autodetect_arabic", L"windows-1256", 0, 0, IDS_DESC_51256, 1256, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT },
{ 720, NULL, L"DOS-720", NULL, 0, 0, IDS_DESC_720, 1256, 0x00000606|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 720, NULL, L"DOS-720", NULL, 0, 0, IDS_DESC_720, 1256, 0x00000707|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 28596, NULL, L"iso-8859-6", NULL, 0, 0, IDS_DESC_28596, 1256, 0x00000707|MIMECONTF_MIME_LATEST|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 10004, NULL, L"x-mac-arabic", NULL, 0, 0, IDS_DESC_10004, 1256, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1256, NULL, L"windows-1256", NULL, IDS_FONT_ARABIC_FIXED, IDS_FONT_ARABIC_PROP, IDS_DESC_1256, 0, 0x00000303|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1256, NULL, L"windows-1256", L"windows-1256", IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1256, 0, 0x00000707| MIMECONTF_MIME_IE4},
{ 50001, NULL, L"_autodetect_all", NULL, 0, 0, IDS_DESC_50001, 0, 0x00000007|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT},
{ 775, NULL, L"ibm775", NULL, 0, 0, IDS_DESC_775, 1257, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 28594, NULL, L"iso-8859-4", NULL, 0, 0, IDS_DESC_28594, 1257, 0x00000303|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 28594, NULL, L"iso-8859-4", NULL, 0, 0, IDS_DESC_28594, 1257, 0x00000301|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 1257, L"windows-1257", L"windows-1257", L"windows-1257", IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1257, 0, 0x00000707|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1257, NULL, L"iso-8859-4", L"windows-1257", IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1257, 0, 0x00000707|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 852, NULL, L"ibm852", NULL, 0, 0, IDS_DESC_852, 1250, 0x00000202|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 28592, NULL, L"iso-8859-2", NULL, 0, 0, IDS_DESC_28592, 1250, 0x00000707|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 10029, NULL, L"x-mac-ce", NULL, 0, 0, IDS_DESC_10029, 1250, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1250, L"windows-1250", L"iso-8859-2", L"windows-1250", IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1250, 0, 0x00000303|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1250, NULL, L"iso-8859-2", L"windows-1250", IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1250, 0, 0x00000303|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 50936, NULL, L"_autodetect_chs", NULL, 0, 0, IDS_DESC_50936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_IMPORT },
{ 51936, NULL, L"EUC-CN", NULL, 0, 0, IDS_DESC_51936, 936, 0x00000000|MIMECONTF_MIME_LATEST|MIMECONTF_EXPORT|MIMECONTF_IMPORT},
{ 54936, NULL, L"GB18030", NULL, IDS_FONT_CHINESE_FIXED, IDS_FONT_CHINESE_PROP, IDS_DESC_54936, 936, 0x00000707|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 936, NULL, L"gb2312", NULL, IDS_FONT_CHINESE_FIXED, IDS_FONT_CHINESE_PROP, IDS_DESC_936, 0, 0x00000707|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20936, NULL, L"x-cp20936", NULL, 0, 0, IDS_DESC_20936, 936, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 52936, NULL, L"hz-gb-2312", NULL, 0, 0, IDS_DESC_52936, 936, 0x00000303|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 50227, NULL, L"x-cp50227", NULL, 0, 0, IDS_DESC_50227, 936, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 10008, NULL, L"x-mac-chinesesimp", NULL, 0, 0, IDS_DESC_10008, 936, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 50950, NULL, L"_autodetect_cht", NULL, 0, 0, IDS_DESC_50950, 950, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT},
{ 950, NULL, L"big5", NULL, IDS_FONT_TAIWAN_FIXED, IDS_FONT_TAIWAN_PROP, IDS_DESC_950, 0, 0x00000707|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20000, NULL, L"x-Chinese-CNS", NULL, 0, 0, IDS_DESC_20000, 950, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20002, NULL, L"x-Chinese-Eten", NULL, 0, 0, IDS_DESC_20002, 950, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 50229, NULL, L"x-cp50229", NULL, 0, 0, IDS_DESC_50229, 950, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 10002, NULL, L"x-mac-chinesetrad", NULL, 0, 0, IDS_DESC_10002, 950, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 10082, NULL, L"x-mac-croatian", NULL, 0, 0, IDS_DESC_10082, 1250, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 51251, NULL, L"_auto_detect_cyrillic", L"windows-1251", 0, 0, IDS_DESC_51251, 1251, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT},
{ 866, NULL, L"cp866", NULL, 0, 0, IDS_DESC_866, 1251, 0x00000202|MIMECONTF_MIME_LATEST|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 28595, NULL, L"iso-8859-5", NULL, 0, 0, IDS_DESC_28595, 1251, 0x00000707|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 20866, NULL, L"koi8-r", NULL, 0, 0, IDS_DESC_20866, 1251, 0x00000707|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 21866, NULL, L"koi8-u", NULL, 0, 0, IDS_DESC_21866, 1251, 0x00000707|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 21866, NULL, L"koi8-ru", NULL, 0, 0, IDS_DESC_21866, 1251, 0x00000707|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 10007, NULL, L"x-mac-cyrillic", NULL, 0, 0, IDS_DESC_10007, 1251, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1251, L"windows-1251", L"koi8-r", L"windows-1251", IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1251, 0, 0x00000303|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 1251, NULL, L"koi8-r", L"windows-1251", IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1251, 0, 0x00000303|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 28603, NULL, L"iso-8859-13", NULL, 0, 0, IDS_DESC_28603, 1257, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 29001, NULL, L"x-Europa", NULL, 0, 0, IDS_DESC_29001, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 21027, NULL, L"x-cp21027", NULL, 0, 0, IDS_DESC_21027, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 863, NULL, L"IBM863", NULL, 0, 0, IDS_DESC_863, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20106, NULL, L"x-IA5-German", NULL, 0, 0, IDS_DESC_20106, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 51253, NULL, L"_auto_detect_greek", L"windows-1253", 0, 0, IDS_DESC_51253, 1253, MIMECONTF_MIME_LATEST| MIMECONTF_IMPORT},
{ 737, NULL, L"ibm737", NULL, 0, 0, IDS_DESC_737, 1253, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 28597, NULL, L"iso-8859-7", NULL, 0, 0, IDS_DESC_28597, 1253, 0x00000707|MIMECONTF_MIME_LATEST|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 10006, NULL, L"x-mac-greek", NULL, 0, 0, IDS_DESC_10006, 1253, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1253, L"windows-1253", L"iso-8859-7", L"windows-1253", IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1253, 0, 0x00000303|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1253, NULL, L"iso-8859-7", L"windows-1253", IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1253, 0, 0x00000303|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 869, NULL, L"ibm869", NULL, 0, 0, IDS_DESC_869, 1253, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 862, NULL, L"DOS-862", NULL, 0, 0, IDS_DESC_862, 1255, 0x00000606|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 862, NULL, L"DOS-862", NULL, 0, 0, IDS_DESC_862, 1255, 0x00000707|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 38598, NULL, L"iso-8859-8-i", NULL, 0, 0, IDS_DESC_38598, 1255, 0x00000707|MIMECONTF_MIME_LATEST|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 28598, NULL, L"iso-8859-8", NULL, 0, 0, IDS_DESC_28598, 1255, 0x00000606|MIMECONTF_MIME_LATEST|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 10005, NULL, L"x-mac-hebrew", NULL, 0, 0, IDS_DESC_10005, 1255, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1255, NULL, L"windows-1255", NULL, IDS_FONT_HEBREW_FIXED, IDS_FONT_HEBREW_PROP, IDS_DESC_1255, 0, 0x00000303|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 1255, NULL, L"iso-8859-8", L"windows-1255", IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1255, 0, 0x00000707|MIMECONTF_MIME_IE4},
{ 20003, NULL, L"x-cp20003", NULL, 0, 0, IDS_DESC_20003, 950, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20420, NULL, L"IBM420", NULL, 0, 0, IDS_DESC_20420, 1256, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20880, NULL, L"IBM880", NULL, 0, 0, IDS_DESC_20880, 1251, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 21025, NULL, L"cp1025", NULL, 0, 0, IDS_DESC_21025, 1251, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20277, NULL, L"IBM277", NULL, 0, 0, IDS_DESC_20277, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1142, NULL, L"IBM01142", NULL, 0, 0, IDS_DESC_1142, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20278, NULL, L"IBM278", NULL, 0, 0, IDS_DESC_20278, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1143, NULL, L"IBM01143", NULL, 0, 0, IDS_DESC_1143, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20297, NULL, L"IBM297", NULL, 0, 0, IDS_DESC_20297, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1147, NULL, L"IBM01147", NULL, 0, 0, IDS_DESC_1147, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20273, NULL, L"IBM273", NULL, 0, 0, IDS_DESC_20273, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1141, NULL, L"IBM01141", NULL, 0, 0, IDS_DESC_1141, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20423, NULL, L"IBM423", NULL, 0, 0, IDS_DESC_20423, 1253, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 875, NULL, L"cp875", NULL, 0, 0, IDS_DESC_875, 1253, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20424, NULL, L"IBM424", NULL, 0, 0, IDS_DESC_20424, 1255, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20871, NULL, L"IBM871", NULL, 0, 0, IDS_DESC_20871, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1149, NULL, L"IBM01149", NULL, 0, 0, IDS_DESC_1149, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 500, NULL, L"IBM500", NULL, 0, 0, IDS_DESC_500, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1148, NULL, L"IBM01148", NULL, 0, 0, IDS_DESC_1148, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20280, NULL, L"IBM280", NULL, 0, 0, IDS_DESC_20280, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1144, NULL, L"IBM01144", NULL, 0, 0, IDS_DESC_1144, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 50930, NULL, L"cp930", NULL, 0, 0, IDS_DESC_50930, 932, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 50939, NULL, L"cp939", NULL, 0, 0, IDS_DESC_50939, 932, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 50931, NULL, L"x-EBCDIC-JapaneseAndUSCanada", NULL, 0, 0, IDS_DESC_50931, 932, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20290, NULL, L"IBM290", NULL, 0, 0, IDS_DESC_20290, 932, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 50933, NULL, L"cp933", NULL, 0, 0, IDS_DESC_50933, 949, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20833, NULL, L"x-EBCDIC-KoreanExtended", NULL, 0, 0, IDS_DESC_20833, 949, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 870, NULL, L"IBM870", NULL, 0, 0, IDS_DESC_870, 1250, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 50935, NULL, L"cp935", NULL, 0, 0, IDS_DESC_50935, 936, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20284, NULL, L"IBM284", NULL, 0, 0, IDS_DESC_20284, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1145, NULL, L"IBM01145", NULL, 0, 0, IDS_DESC_1145, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20838, NULL, L"IBM-Thai", NULL, 0, 0, IDS_DESC_20838, 874, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 50937, NULL, L"cp937", NULL, 0, 0, IDS_DESC_50937, 950, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20905, NULL, L"IBM905", NULL, 0, 0, IDS_DESC_20905, 1254, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1026, NULL, L"IBM1026", NULL, 0, 0, IDS_DESC_1026, 1254, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20285, NULL, L"IBM285", NULL, 0, 0, IDS_DESC_20285, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1146, NULL, L"IBM01146", NULL, 0, 0, IDS_DESC_1146, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 37, NULL, L"IBM037", NULL, 0, 0, IDS_DESC_37, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1140, NULL, L"IBM01140", NULL, 0, 0, IDS_DESC_1140, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1047, NULL, L"IBM01047", NULL, 0, 0, IDS_DESC_1047, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20924, NULL, L"IBM00924", NULL, 0, 0, IDS_DESC_20924, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 861, NULL, L"ibm861", NULL, 0, 0, IDS_DESC_861, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 10079, NULL, L"x-mac-icelandic", NULL, 0, 0, IDS_DESC_10079, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 57006, NULL, L"x-iscii-as", NULL, 0, 0, IDS_DESC_57006, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 57003, NULL, L"x-iscii-be", NULL, 0, 0, IDS_DESC_57003, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 57002, NULL, L"x-iscii-de", NULL, IDS_FONT_DEVANAGARI_FIXED, IDS_FONT_DEVANAGARI_PROP, IDS_DESC_57002, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 57010, NULL, L"x-iscii-gu", NULL, 0, 0, IDS_DESC_57010, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 57008, NULL, L"x-iscii-ka", NULL, 0, 0, IDS_DESC_57008, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 57009, NULL, L"x-iscii-ma", NULL, 0, 0, IDS_DESC_57009, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 57007, NULL, L"x-iscii-or", NULL, 0, 0, IDS_DESC_57007, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 57011, NULL, L"x-iscii-pa", NULL, 0, 0, IDS_DESC_57011, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 57004, NULL, L"x-iscii-ta", NULL, IDS_FONT_TAMIL_FIXED, IDS_FONT_TAMIL_PROP, IDS_DESC_57004, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 57005, NULL, L"x-iscii-te", NULL, 0, 0, IDS_DESC_57005, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20269, NULL, L"x-cp20269", NULL, 0, 0, IDS_DESC_20269, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 50932, NULL, L"_autodetect", NULL, 0, 0, IDS_DESC_50932, 932, 0x00000007|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT},
{ 51932, NULL, L"euc-jp", NULL, 0, 0, IDS_DESC_51932, 932, 0x00000707|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 50220, NULL, L"iso-2022-jp", NULL, 0, 0, IDS_DESC_50220, 932, 0x00000101|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 20932, NULL, L"EUC-JP", NULL, 0, 0, IDS_DESC_20932, 932, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 50221, NULL, L"iso-2022-jp", L"csISO2022JP", 0, 0, IDS_DESC_50221, 932, 0x00000301|MIMECONTF_MIME_LATEST|MIMECONTF_EXPORT},
{ 50221, NULL, L"_iso-2022-jp$ESC", L"csISO2022JP", 0, 0, IDS_DESC_50221, 932, 0x00000301|MIMECONTF_MIME_IE4|MIMECONTF_EXPORT},
{ 50222, NULL, L"iso-2022-jp", NULL, 0, 0, IDS_DESC_50222, 932, MIMECONTF_MIME_LATEST|MIMECONTF_EXPORT},
{ 50222, NULL, L"_iso-2022-jp$SIO", L"iso-2022-jp", 0, 0, IDS_DESC_50222, 932, MIMECONTF_MIME_IE4|MIMECONTF_EXPORT},
{ 10001, NULL, L"x-mac-japanese", NULL, 0, 0, IDS_DESC_10001, 932, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 932, NULL, L"iso-2022-jp", L"shift_jis", IDS_FONT_JAPANESE_FIXED, IDS_FONT_JAPANESE_PROP, IDS_DESC_932, 0, 0x00000707|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 949, NULL, L"ks_c_5601-1987", NULL, IDS_FONT_KOREAN_FIXED, IDS_FONT_KOREAN_PROP, IDS_DESC_949, 0, 0x00000707|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 949, L"euc-kr", L"euc-kr", L"ks_c_5601-1987", IDS_FONT_KOREAN_FIXED4, IDS_FONT_KOREAN_PROP4, IDS_DESC_949, 0, 0x00000707| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 50949, NULL, L"_autodetect_kr", NULL, 0, 0, IDS_DESC_50949, 949, 0x00000001|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT},
{ 51949, NULL, L"euc-kr", NULL, 0, 0, IDS_DESC_51949, 949, 0x00000000|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT|MIMECONTF_MAILNEWS|MIMECONTF_SAVABLE_MAILNEWS},
{ 51949, NULL, L"euc-kr", NULL, 0, 0, IDS_DESC_51949, 949, 0x00000000| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 50225, L"euc-kr", L"iso-2022-kr", L"iso-2022-kr", 0, 0, IDS_DESC_50225, 949, 0x00000001|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 50225, NULL, L"iso-2022-kr", L"iso-2022-kr", 0, 0, IDS_DESC_50225, 949, 0x00000101| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 1361, NULL, L"Johab", NULL,IDS_FONT_KOREAN_FIXED, IDS_FONT_KOREAN_PROP, IDS_DESC_1361, 949, 0x00000000|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 10003, NULL, L"x-mac-korean", NULL, 0, 0, IDS_DESC_10003, 949, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20949, NULL, L"x-cp20949", NULL, 0, 0, IDS_DESC_20949, 949, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 28593, NULL, L"iso-8859-3", NULL, 0, 0, IDS_DESC_28593, 1254, 0x00000501|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 28605, NULL, L"iso-8859-15", NULL, 0, 0, IDS_DESC_28605, 1252, 0x00000701|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 865, NULL, L"IBM865", NULL, 0, 0, IDS_DESC_865, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 20108, NULL, L"x-IA5-Norwegian", NULL, 0, 0, IDS_DESC_20108, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 855, NULL, L"IBM855", NULL, 0, 0, IDS_DESC_855, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 437, NULL, L"IBM437", NULL, 0, 0, IDS_DESC_437, 1252, 0x00000000|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 858, NULL, L"IBM00858", NULL, 0, 0, IDS_DESC_858, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 860, NULL, L"IBM860", NULL, 0, 0, IDS_DESC_860, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 10010, NULL, L"x-mac-romanian", NULL, 0, 0, IDS_DESC_10010, 1250, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20107, NULL, L"x-IA5-Swedish", NULL, 0, 0, IDS_DESC_20107, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20261, NULL, L"x-cp20261", NULL, 0, 0, IDS_DESC_20261, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20001, NULL, L"x-cp20001", NULL, 0, 0, IDS_DESC_20001, 950, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20004, NULL, L"x-cp20004", NULL, 0, 0, IDS_DESC_20004, 950, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 10021, NULL, L"x-mac-thai", NULL, IDS_FONT_THAI_FIXED, IDS_FONT_THAI_PROP, IDS_DESC_10021, 874, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 874, NULL, L"windows-874", NULL, IDS_FONT_THAI_FIXED, IDS_FONT_THAI_PROP, IDS_DESC_874, 0, 0x00000707|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 874, NULL, L"windows-874", NULL, IDS_FONT_THAI_FIXED2, IDS_FONT_THAI_PROP2, IDS_DESC_874, 0, 0x00000707|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 857, NULL, L"ibm857", NULL, 0, 0, IDS_DESC_857, 1254, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 28599, NULL, L"iso-8859-9", NULL, 0, 0, IDS_DESC_28599, 1254, 0x00000707|MIMECONTF_MIME_LATEST| MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 10081, NULL, L"x-mac-turkish", NULL, 0, 0, IDS_DESC_10081, 1254, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1254, L"windows-1254", L"iso-8859-9", L"windows-1254", IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1254, 0, 0x00000707|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 10017, NULL, L"x-mac-ukrainian", NULL, 0, 0, IDS_DESC_10017, 1251, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 1254, NULL, L"iso-8859-9", L"iso-8859-9", IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1254, 0, 0x00000707|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 1200, NULL, L"unicode", NULL, IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1200, 0, 0x00000204|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 1201, NULL, L"unicodeFFFE", NULL, 0, 0, IDS_DESC_1201, 1200, 0x00000000|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 65000, NULL, L"utf-7", NULL, 0, 0, IDS_DESC_65000, 1200, 0x00000101|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 65001, NULL, L"utf-8", NULL, 0, 0, IDS_DESC_65001, 1200, 0x00000303|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 20127, NULL, L"us-ascii", NULL, 0, 0, IDS_DESC_20127, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT|MIMECONTF_MAILNEWS|MIMECONTF_SAVABLE_MAILNEWS},
{ 50000, NULL, L"x-user-defined", NULL, IDS_FONT_WESTERN_FIXED, IDS_FONT_UNICODE_PROP, IDS_DESC_50000, 0, 0x00000707|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 1258, NULL, L"windows-1258", NULL, IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1258, 0, 0x00000303|MIMECONTF_MIME_LATEST|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 20005, NULL, L"x-cp20005", NULL, 0, 0, IDS_DESC_20005, 950, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1252, NULL, L"iso-8859-1", NULL, IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1252_IE4, 0, 0x00000707| MIMECONTF_MIME_IE4},
{ 850, NULL, L"ibm850", NULL, 0, 0, IDS_DESC_850, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 20105, NULL, L"x-IA5", NULL, 0, 0, IDS_DESC_20105, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 28591, NULL, L"iso-8859-1", NULL, 0, 0, IDS_DESC_28591, 1252, 0x00000703|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 10000, NULL, L"macintosh", NULL, 0, 0, IDS_DESC_10000, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
{ 1252, L"Windows-1252", L"iso-8859-1", L"Windows-1252", IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1252, 0, 0x00000707|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0},
// { CodePage, HeaderCharset, BodyCharset, WebCharset, FixedWidthFont, ProportionalFont, Description, FamilyCodePage, Flags }
};
#ifdef UNIX
/* Convert from little endian to big endian format */
#define CONVERTLONG(a,b,c,d) (((unsigned long )a) + \
((unsigned long )b << 8) + \
((unsigned long )c << 16) + \
((unsigned long )d << 24))
#endif /* UNIX */
//
// Globals
//
CMimeDatabase *g_pMimeDatabase = NULL;
//
// CMimeDatabase implementation
//
STDAPI CMimeDatabase::GetNumberOfCodePageInfo(UINT *pcCodePage)
{
HRESULT hr = S_OK;
if (pcCodePage)
{
*pcCodePage = 0;
for (int i=0;i<ARRAYSIZE(MimeCodePage);i++)
{
if (MimeCodePage[i].dwFlags & dwMimeSource)
(*pcCodePage)++;
}
}
else
hr = E_INVALIDARG;
return hr;
}
STDAPI CMimeDatabase::GetCodePageInfo(UINT uiCodePage, LANGID LangId, PMIMECPINFO pcpInfo )
{
int idx;
HRESULT hr = E_FAIL;
DebugMsg(DM_TRACE, TEXT("CMimeDatabase::GetCodePageInfo called."));
for (idx=0; idx < ARRAYSIZE(MimeCodePage); idx++)
{
if ((uiCodePage == MimeCodePage[idx].uiCodePage) &&
(MimeCodePage[idx].dwFlags & dwMimeSource))
break;
}
if (idx < ARRAYSIZE(MimeCodePage))
{
hr = GetCodePageInfoWithIndex(idx, LangId, pcpInfo);
}
return hr;
}
STDAPI CMimeDatabase::GetCodePageInfoWithIndex(UINT uidx, LANGID LangId, PMIMECPINFO pcpInfo)
{
HRESULT hr = E_FAIL;
LANGID langid = LangId;
CHARSETINFO rCharsetInfo;
DebugMsg(DM_TRACE, TEXT("CMimeDatabase::GetCodePageInfoWithIndex called."));
if (uidx >= ARRAYSIZE(MimeCodePage))
return hr;
if (!_LoadStringExW(g_hInst, MimeCodePage[uidx].uidDescription, pcpInfo->wszDescription, MAX_MIMECP_NAME, langid))
{
// Last try, switch to English, US
langid = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US);
if (!_LoadStringExW(g_hInst, MimeCodePage[uidx].uidDescription, pcpInfo->wszDescription, MAX_MIMECP_NAME, langid))
return hr;
}
if ((0 == MimeCodePage[uidx].uidFixedWidthFont || 0 == MimeCodePage[uidx].uidProportionalFont))
{
pcpInfo->wszFixedWidthFont[0] = 0;
pcpInfo->wszProportionalFont[0] = 0;
if (0 != MimeCodePage[uidx].uiFamilyCodePage)
{
for (UINT j = 0; j < ARRAYSIZE(MimeCodePage); j++)
{
if (MimeCodePage[uidx].uiFamilyCodePage == MimeCodePage[j].uiCodePage)
{
_LoadStringExW(g_hInst, MimeCodePage[j].uidFixedWidthFont, pcpInfo->wszFixedWidthFont, MAX_MIMEFACE_NAME, langid);
_LoadStringExW(g_hInst, MimeCodePage[j].uidProportionalFont, pcpInfo->wszProportionalFont, MAX_MIMEFACE_NAME, langid);
break;
}
}
}
}
else
{
_LoadStringExW(g_hInst, MimeCodePage[uidx].uidFixedWidthFont, pcpInfo->wszFixedWidthFont, MAX_MIMEFACE_NAME, langid);
_LoadStringExW(g_hInst, MimeCodePage[uidx].uidProportionalFont, pcpInfo->wszProportionalFont, MAX_MIMEFACE_NAME,langid);
}
// Copy internal buffer information
pcpInfo->dwFlags = MimeCodePage[uidx].dwFlags;
pcpInfo->uiCodePage = MimeCodePage[uidx].uiCodePage;
if (MimeCodePage[uidx].uiFamilyCodePage)
pcpInfo->uiFamilyCodePage = MimeCodePage[uidx].uiFamilyCodePage;
else
pcpInfo->uiFamilyCodePage = MimeCodePage[uidx].uiCodePage;
MLStrCpyNW(pcpInfo->wszBodyCharset, MimeCodePage[uidx].wszBodyCharset, MAX_MIMECSET_NAME);
if (MimeCodePage[uidx].wszWebCharset)
MLStrCpyNW(pcpInfo->wszWebCharset, MimeCodePage[uidx].wszWebCharset, MAX_MIMECSET_NAME);
else
MLStrCpyNW(pcpInfo->wszWebCharset, MimeCodePage[uidx].wszBodyCharset, MAX_MIMECSET_NAME);
if (MimeCodePage[uidx].wszHeaderCharset)
MLStrCpyNW(pcpInfo->wszHeaderCharset, MimeCodePage[uidx].wszHeaderCharset, MAX_MIMECSET_NAME);
else
MLStrCpyNW(pcpInfo->wszHeaderCharset, MimeCodePage[uidx].wszBodyCharset, MAX_MIMECSET_NAME);
if (0 != TranslateCharsetInfo(IntToPtr_(LPDWORD, pcpInfo->uiFamilyCodePage), &rCharsetInfo, TCI_SRCCODEPAGE))
pcpInfo->bGDICharset = (BYTE)rCharsetInfo.ciCharset;
else
pcpInfo->bGDICharset = DEFAULT_CHARSET;
if (1200 == pcpInfo->uiFamilyCodePage || 50000 == pcpInfo->uiFamilyCodePage || TRUE == _IsValidCodePage(pcpInfo->uiFamilyCodePage)) // 50000 means user defined
{
if (TRUE == CheckFont(pcpInfo->bGDICharset))
{
if (pcpInfo->uiCodePage == pcpInfo->uiFamilyCodePage || TRUE == _IsValidCodePage(pcpInfo->uiCodePage))
pcpInfo->dwFlags |= MIMECONTF_VALID|MIMECONTF_VALID_NLS;
else if (S_OK == IsConvertINetStringAvailable(pcpInfo->uiCodePage, pcpInfo->uiFamilyCodePage))
pcpInfo->dwFlags |= MIMECONTF_VALID|MIMECONTF_VALID_NLS;
}
else
{
if (pcpInfo->uiCodePage == pcpInfo->uiFamilyCodePage || TRUE == _IsValidCodePage(pcpInfo->uiCodePage))
pcpInfo->dwFlags |= MIMECONTF_VALID_NLS;
else if (S_OK == IsConvertINetStringAvailable(pcpInfo->uiCodePage, pcpInfo->uiFamilyCodePage))
pcpInfo->dwFlags |= MIMECONTF_VALID_NLS;
}
}
hr = S_OK;
return hr;
}
STDAPI CMimeDatabase::GetCharsetInfo(BSTR Charset, PMIMECSETINFO pcsetInfo)
{
int idx = -1;
int iStart, iEnd, iMiddle, iCmpResult;
HRESULT hr = E_FAIL;
DebugMsg(DM_TRACE, TEXT("CMimeDatabase::GetCharsetInfo called."));
iStart = 0;
iEnd = ARRAYSIZE(MimeCharSet) - 1;
while (iStart <= iEnd)
{
iMiddle = (iStart + iEnd) / 2;
iCmpResult = MLStrCmpIW(Charset, MimeCharSet[iMiddle].szCharset);
if (iCmpResult < 0)
iEnd = iMiddle - 1;
else if (iCmpResult > 0)
iStart = iMiddle + 1;
else
{
if (MimeCharSet[iMiddle].dwFlags & dwMimeSource)
{
idx = iMiddle;
}
else
// !!! Tricky, search neighbors for correct data which matches MIME version
// Only works for now, if we have data over two versions, we have to change here
if ((iMiddle+1 <= iEnd) &&
MimeCharSet[iMiddle+1].dwFlags & dwMimeSource &&
!MLStrCmpIW(Charset, MimeCharSet[iMiddle+1].szCharset))
{
idx = iMiddle+1;
}
else
if ((iMiddle-1 >= 0) &&
MimeCharSet[iMiddle-1].dwFlags & dwMimeSource &&
!MLStrCmpIW(Charset, MimeCharSet[iMiddle-1].szCharset))
{
idx = iMiddle-1;
}
else
{
idx = ARRAYSIZE(MimeCharSet);
}
break;
}
}
if (0 <= idx && idx < ARRAYSIZE(MimeCharSet) && pcsetInfo )
{
MLStrCpyNW(pcsetInfo->wszCharset, MimeCharSet[idx].szCharset, MAX_MIMECSET_NAME);
pcsetInfo->uiCodePage = MimeCharSet[idx].uiCodePage;
pcsetInfo->uiInternetEncoding = MimeCharSet[idx].uiInternetEncoding;
hr = S_OK;
}
return hr;
}
int CALLBACK EnumFontFamExProc(ENUMLOGFONTEX *lpelf, NEWTEXTMETRICEX *lpntm, int iFontType, LPARAM lParam)
{
LOGFONT *lplf;
BOOL *lpfOK = (BOOL *)lParam;
lplf = &(lpelf->elfLogFont);
// We don't use non TrueType fonts
if (iFontType == DEVICE_FONTTYPE || iFontType == RASTER_FONTTYPE)
return 1; // keep going but don't use this font
// We don't use the SYMBOL, Mac Charset fonts
if(lplf->lfCharSet == SYMBOL_CHARSET || lplf->lfCharSet == MAC_CHARSET)
return 1;
// We don't handle vertical fonts
if (TEXT('@') == lplf->lfFaceName[0])
return 1;
*lpfOK = TRUE;
return 0; // stop enumeration if we find any
}
BOOL CMimeDatabase::CheckFont(BYTE bGDICharset)
{
BOOL fRet = FALSE;
DebugMsg(DM_TRACE, TEXT("CMimeDatabase::CheckFont called."));
// It is safe to assume that system always support DEFAULT_CHAR and ANSI_CHARSET
if ((DEFAULT_CHARSET == bGDICharset) || (ANSI_CHARSET == bGDICharset))
fRet = TRUE;
else
{
HDC hDC;
LOGFONT lf;
HWND hWnd;
hWnd = GetTopWindow(GetDesktopWindow());
hDC = GetDC(hWnd);
if (NULL != hDC)
{
lf.lfFaceName[0] = TEXT('\0');
lf.lfPitchAndFamily = 0;
lf.lfCharSet = bGDICharset;
EnumFontFamiliesEx(hDC, &lf, (FONTENUMPROC)EnumFontFamExProc, (LPARAM)&fRet, 0);
}
ReleaseDC(hWnd, hDC);
}
return fRet;
}
// validates all cps that are in the same
// family of the given codepage
STDAPI CMimeDatabase::ValidateCP(UINT uiCodePage)
{
UINT i;
for (i = 0; i < ARRAYSIZE(MimeCodePage); i++)
{
if (MimeCodePage[i].uiFamilyCodePage == uiCodePage)
MimeCodePage[i].dwFlags |= MIMECONTF_VALID|MIMECONTF_VALID_NLS;
}
return S_OK; // never fail?
}