mimedb.cpp
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 51k
Category:

Windows Kernel

Development Platform:

Visual C++

  1. #include "private.h"
  2. // Table pre-sorted by charset for binary search !!!
  3. const MIMECHARSET MimeCharSet[] =
  4. {
  5. //  { Charset, CodePage, InternetEncoding, Flags }
  6.     { L"_autodetect", 50932, 50932, MIMECONTF_MIME_LATEST | MIMECONTF_MIME_IE4 },
  7.     { L"_autodetect_all", 50001, 50001, MIMECONTF_MIME_LATEST},
  8.     { L"_autodetect_kr", 50949, 50949, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  9.     { L"_iso-2022-jp$ESC", 932, 50221, MIMECONTF_MIME_IE4  },
  10.     { L"_iso-2022-jp$SIO", 932, 50222, MIMECONTF_MIME_IE4  },
  11.     { L"437", 1252, 437, MIMECONTF_MIME_LATEST},
  12.     { L"ANSI_X3.4-1968", 1252, 20127, MIMECONTF_MIME_LATEST},
  13.     { L"ANSI_X3.4-1968", 1252, 1252, MIMECONTF_MIME_IE4},
  14.     { L"ANSI_X3.4-1986", 1252, 20127, MIMECONTF_MIME_LATEST},
  15.     { L"ANSI_X3.4-1986", 1252, 1252, MIMECONTF_MIME_IE4},
  16.     { L"arabic", 1256, 28596, MIMECONTF_MIME_LATEST},
  17.     { L"arabic", 1256, 1256, MIMECONTF_MIME_IE4},
  18.     { L"ascii", 1252, 20127, MIMECONTF_MIME_LATEST},
  19.     { L"ascii", 1252, 1252, MIMECONTF_MIME_IE4},
  20.     { L"ASMO-708", 1256, 708, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  21.     { L"Big5", 950, 950, MIMECONTF_MIME_LATEST | MIMECONTF_MIME_IE4 },
  22.     { L"chinese", 936, 936, MIMECONTF_MIME_LATEST | MIMECONTF_MIME_IE4  },
  23.     { L"cn-big5", 950, 950, MIMECONTF_MIME_LATEST},
  24.     { L"CN-GB", 936, 936, MIMECONTF_MIME_LATEST },
  25.     { L"CP1026", 1254, 1026, MIMECONTF_MIME_LATEST},
  26.     { L"cp1256", 1256, 1256, MIMECONTF_MIME_LATEST },
  27.     { L"cp367", 1252, 20127, MIMECONTF_MIME_LATEST},
  28.     { L"cp367", 1252, 1252, MIMECONTF_MIME_IE4},
  29.     { L"cp437", 1252, 437, MIMECONTF_MIME_LATEST},
  30.     { L"CP500", 1252, 775, MIMECONTF_MIME_LATEST},
  31.     { L"cp819", 1252, 28591, MIMECONTF_MIME_LATEST},
  32.     { L"cp819", 1252, 1252, MIMECONTF_MIME_IE4},
  33.     { L"cp852", 852, 852, MIMECONTF_MIME_LATEST | MIMECONTF_MIME_IE4  },
  34.     { L"cp866", 866, 866, MIMECONTF_MIME_LATEST | MIMECONTF_MIME_IE4  },
  35.     { L"CP870", 1250, 870, MIMECONTF_MIME_LATEST},
  36.     { L"csASCII", 1252, 20127, MIMECONTF_MIME_LATEST},
  37.     { L"csASCII", 1252, 1252, MIMECONTF_MIME_IE4},
  38.     { L"csbig5", 950, 950, MIMECONTF_MIME_LATEST | MIMECONTF_MIME_IE4 },
  39.     { L"csEUCKR", 949, 51949, MIMECONTF_MIME_LATEST },
  40.     { L"csEUCPkdFmtJapanese", 932, 51932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  41.     { L"csGB2312", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  42.     { L"csGB231280", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  43.     { L"csISO2022JP", 932, 50221, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  44.     { L"csISO2022KR", 949, 50225, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  45.     { L"csISO58GB231280", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  46.     { L"csISOLatin1", 1252, 28591, MIMECONTF_MIME_LATEST},
  47.     { L"csISOLatin2", 1250, 28592, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  48.     { L"csISOLatin3", 1254, 28593, MIMECONTF_MIME_LATEST},
  49.     { L"csISOLatin4", 1257, 28594, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  50.     { L"csISOLatin5", 1254, 28599, MIMECONTF_MIME_LATEST },
  51.     { L"csISOLatin5", 1251, 28595, MIMECONTF_MIME_IE4},
  52.     { L"csISOLatin9", 1252, 28605, MIMECONTF_MIME_LATEST },
  53.     { L"csISOLatinArabic", 1256, 28596, MIMECONTF_MIME_LATEST},
  54.     { L"csISOLatinArabic", 1256, 1256, MIMECONTF_MIME_IE4},
  55.     { L"csISOLatinCyrillic", 1251, 28595, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  56.     { L"csISOLatinGreek",  1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  57.     { L"csISOLatinHebrew", 1255, 28598, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  58.     { L"csKOI8R", 1251, 20866, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  59.     { L"csKSC56011987", 949, 949, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  60.     { L"csPC8CodePage437", 1252, 437, MIMECONTF_MIME_LATEST},
  61.     { L"csShiftJIS", 932, 932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  62.     { L"csUnicode11UTF7", 1200, 65000, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  63.     { L"csWindows31J", 932, 932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  64.     { L"cyrillic", 1251, 28595, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  65.     { L"DIN_66003", 1252, 20106, MIMECONTF_MIME_LATEST},
  66.     { L"DOS-720", 1256, 720, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  67.     { L"DOS-862", 1255, 862, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  68.     { L"DOS-874", 874, 874, MIMECONTF_MIME_LATEST},
  69.     { L"ebcdic-cp-us", 1252, 37, MIMECONTF_MIME_LATEST},
  70.     { L"ECMA-114", 1256, 28596, MIMECONTF_MIME_LATEST},
  71.     { L"ECMA-114", 1256, 1256, MIMECONTF_MIME_IE4},
  72.     { L"ECMA-118",  1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  73.     { L"ELOT_928",  1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  74.     { L"euc-cn", 936, 51936, MIMECONTF_MIME_LATEST},
  75.     { L"euc-jp", 932, 51932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  76.     { L"euc-kr", 949, 51949, MIMECONTF_MIME_LATEST },
  77.     { L"euc-kr", 949, 949, MIMECONTF_MIME_IE4 },
  78.     { L"Extended_UNIX_Code_Packed_Format_for_Japanese", 932, 51932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  79.     { L"GB_2312-80", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  80.     { L"GB2312", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  81.     { L"GB231280", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  82.     { L"GB2312-80", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  83.     { L"GBK", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  84.     { L"German", 1252, 20106, MIMECONTF_MIME_LATEST},
  85.     { L"greek",  1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  86.     { L"greek8",  1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  87.     { L"hebrew", 1255, 28598, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  88.     { L"hz-gb-2312", 936, 52936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  89.     { L"IBM367", 1252, 20127, MIMECONTF_MIME_LATEST},
  90.     { L"IBM367", 1252, 1252, MIMECONTF_MIME_IE4},
  91.     { L"IBM437", 1252, 437, MIMECONTF_MIME_LATEST},
  92.     { L"ibm737", 1252, 737, MIMECONTF_MIME_LATEST},
  93.     { L"ibm775", 1257, 775, MIMECONTF_MIME_LATEST},
  94.     { L"ibm819", 1252, 28591, MIMECONTF_MIME_LATEST},
  95.     { L"ibm819", 1252, 1252, MIMECONTF_MIME_IE4},
  96.     { L"ibm850", 1252, 850, MIMECONTF_MIME_LATEST},
  97.     { L"ibm852", 852, 852, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  98.     { L"ibm857", 1254, 857, MIMECONTF_MIME_LATEST},
  99.     { L"ibm861", 1252, 861, MIMECONTF_MIME_LATEST},
  100.     { L"ibm866", 866, 866, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  101.     { L"ibm869", 1253, 869, MIMECONTF_MIME_LATEST},
  102.     { L"irv", 1252, 20105, MIMECONTF_MIME_LATEST},
  103.     { L"ISO_646.irv:1991", 1252, 20127, MIMECONTF_MIME_LATEST},
  104.     { L"ISO_646.irv:1991", 1252, 1252,  MIMECONTF_MIME_IE4},
  105.     { L"iso_8859-1", 1252, 28591, MIMECONTF_MIME_LATEST},
  106.     { L"iso_8859-1", 1252, 1252,  MIMECONTF_MIME_IE4 },
  107.     { L"iso_8859-1:1987", 1252, 28591, MIMECONTF_MIME_LATEST },
  108.     { L"iso_8859-1:1987", 1252, 1252, MIMECONTF_MIME_IE4 },
  109.     { L"ISO_8859-15", 1252, 28605, MIMECONTF_MIME_LATEST},
  110.     { L"iso_8859-2", 1250, 28592, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  111.     { L"iso_8859-2:1987", 1250, 28592, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  112.     { L"ISO_8859-3", 1254, 28593, MIMECONTF_MIME_LATEST},
  113.     { L"ISO_8859-3:1988", 1254, 28593, MIMECONTF_MIME_LATEST},
  114.     { L"ISO_8859-4", 1257, 28594, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  115.     { L"ISO_8859-4:1988", 1257, 28594, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  116.     { L"ISO_8859-5", 1251, 28595, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  117.     { L"ISO_8859-5:1988", 1251, 28595, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  118.     { L"ISO_8859-6", 1256, 28596, MIMECONTF_MIME_LATEST},
  119.     { L"ISO_8859-6", 1256, 1256, MIMECONTF_MIME_IE4},
  120.     { L"ISO_8859-6:1987", 1256, 28596, MIMECONTF_MIME_LATEST},
  121.     { L"ISO_8859-6:1987", 1256, 1256, MIMECONTF_MIME_IE4},
  122.     { L"ISO_8859-7",  1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  123.     { L"ISO_8859-7:1987",  1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  124.     { L"ISO_8859-8", 1255, 28598, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  125.     { L"ISO_8859-8:1988", 1255, 28598, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  126.     { L"ISO_8859-8-I", 1255, 1255, MIMECONTF_MIME_IE4 },
  127.     { L"ISO_8859-9", 1254, 28599, MIMECONTF_MIME_LATEST},
  128.     { L"ISO_8859-9", 1254, 1254, MIMECONTF_MIME_IE4 },
  129.     { L"ISO_8859-9:1989", 1254, 28599, MIMECONTF_MIME_LATEST},
  130.     { L"ISO_8859-9:1989", 1254, 1254, MIMECONTF_MIME_IE4 },
  131.     { L"iso-2022-jp", 932, 50220, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  132.     { L"iso-2022-jpeuc", 932, 51932, MIMECONTF_MIME_LATEST},
  133.     { L"iso-2022-kr", 949, 50225, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  134.     { L"iso-2022-kr-7", 949, 50225, MIMECONTF_MIME_LATEST},
  135.     { L"iso-2022-kr-7bit", 949, 50225, MIMECONTF_MIME_LATEST},
  136.     { L"iso-2022-kr-8", 949, 51949, MIMECONTF_MIME_LATEST },
  137.     { L"iso-2022-kr-8bit", 949, 51949, MIMECONTF_MIME_LATEST },
  138.     { L"ISO646-US", 1252, 20127, MIMECONTF_MIME_LATEST },
  139.     { L"ISO646-US", 1252, 1252, MIMECONTF_MIME_IE4},
  140.     { L"iso8859-1", 1252, 28591, MIMECONTF_MIME_LATEST },
  141.     { L"iso8859-1", 1252, 1252, MIMECONTF_MIME_IE4 },
  142.     { L"iso-8859-1", 1252, 28591, MIMECONTF_MIME_LATEST},
  143.     { L"iso-8859-1", 1252, 1252, MIMECONTF_MIME_IE4},
  144.     { L"iso-8859-11", 874, 874, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  145.     { L"iso-8859-15", 1252, 28605, MIMECONTF_MIME_LATEST},
  146.     { L"iso8859-2", 1250, 28592, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  147.     { L"iso-8859-2", 1250, 28592, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  148.     { L"iso-8859-3", 1254, 28593, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  149.     { L"iso-8859-4", 1257, 28594, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  150.     { L"iso-8859-5", 1251, 28595, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  151.     { L"iso-8859-6", 1256, 28596, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  152.     { L"iso-8859-7", 1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  153.     { L"iso-8859-8", 1255, 28598, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  154.     { L"ISO-8859-8 Visual", 1255, 28598, MIMECONTF_MIME_LATEST},
  155.     { L"ISO-8859-8 Visual", 1255, 1255, MIMECONTF_MIME_IE4},
  156.     { L"iso-8859-8-i", 1255, 38598, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  157.     { L"iso-8859-9", 1254, 28599, MIMECONTF_MIME_LATEST},
  158.     { L"iso-8859-9", 1254, 1254, MIMECONTF_MIME_IE4 },
  159.     { L"iso-ir-100", 1252, 28591, MIMECONTF_MIME_LATEST},
  160.     { L"iso-ir-100", 1252, 1252, MIMECONTF_MIME_IE4 },
  161.     { L"iso-ir-101", 1250, 28592, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  162.     { L"iso-ir-109", 1254, 28593, MIMECONTF_MIME_LATEST},
  163.     { L"iso-ir-110", 1257, 28594, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  164.     { L"iso-ir-126",  1253, 28597, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  165.     { L"iso-ir-127", 1256, 28596, MIMECONTF_MIME_LATEST },
  166.     { L"iso-ir-127", 1256, 1256, MIMECONTF_MIME_IE4},
  167.     { L"iso-ir-138", 1255, 28598, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  168.     { L"iso-ir-144", 1251, 28595, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  169.     { L"iso-ir-148", 1254, 28599, MIMECONTF_MIME_LATEST},
  170.     { L"iso-ir-148", 1254, 1254, MIMECONTF_MIME_IE4 },
  171.     { L"iso-ir-149", 949, 949, MIMECONTF_MIME_LATEST},
  172.     { L"iso-ir-58", 936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  173.     { L"iso-ir-6", 1252, 20127, MIMECONTF_MIME_LATEST},
  174.     { L"iso-ir-6", 1252, 1252, MIMECONTF_MIME_IE4},
  175.     { L"Johab", 1361, 1361, MIMECONTF_MIME_LATEST},
  176.     { L"koi", 1251, 20866, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  177.     { L"koi8", 1251, 20866, MIMECONTF_MIME_LATEST},
  178.     { L"koi8r", 1251, 20866, MIMECONTF_MIME_LATEST},
  179.     { L"koi8-r", 1251, 20866, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  180.     { L"koi8-ru", 1251, 21866, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  181.     { L"koi8-u", 1251, 21866, MIMECONTF_MIME_LATEST},
  182.     { L"korean", 949, 949, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  183.     { L"ks_c_5601", 949, 949, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  184.     { L"ks_c_5601_1987", 949, 949, MIMECONTF_MIME_LATEST},
  185.     { L"ks_c_5601-1987", 949, 949, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  186.     { L"ks_c_5601-1989", 949, 949, MIMECONTF_MIME_LATEST},
  187.     { L"KSC_5601", 949, 949, MIMECONTF_MIME_LATEST},
  188.     { L"KSC5601", 949, 949, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  189.     { L"ks-c5601", 949, 949, MIMECONTF_MIME_LATEST},
  190.     { L"ks-c-5601", 949, 949, MIMECONTF_MIME_LATEST},
  191.     { L"l1", 1252, 28591, MIMECONTF_MIME_LATEST},
  192.     { L"l2", 1250, 28592, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  193.     { L"l3", 1254, 28593, MIMECONTF_MIME_LATEST},
  194.     { L"l4", 1257, 28594, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  195.     { L"l5", 1254, 28599, MIMECONTF_MIME_LATEST },
  196.     { L"l5", 1251, 28595, MIMECONTF_MIME_IE4 },
  197.     { L"l9", 1252, 28605, MIMECONTF_MIME_LATEST },
  198.     { L"latin1", 1252, 28591, MIMECONTF_MIME_LATEST },
  199.     { L"latin1", 1252, 1252,  MIMECONTF_MIME_IE4 },
  200.     { L"latin2", 1250, 28592, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  201.     { L"latin3", 1254, 28593, MIMECONTF_MIME_LATEST},
  202.     { L"latin4", 1257, 28594, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  203.     { L"latin5", 1254, 28599, MIMECONTF_MIME_LATEST},
  204.     { L"latin5", 1254, 1254, MIMECONTF_MIME_IE4},
  205.     { L"latin9", 1252, 28605, MIMECONTF_MIME_LATEST},
  206.     { L"logical", 1255, 28598, MIMECONTF_MIME_LATEST},
  207.     { L"logical", 1255, 1255, MIMECONTF_MIME_IE4},
  208.     { L"macintosh", 1252, 10000, MIMECONTF_MIME_LATEST},
  209.     { L"ms_Kanji", 932, 932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  210.     { L"Norwegian", 1252, 20108, MIMECONTF_MIME_LATEST},
  211.     { L"NS_4551-1", 1252, 20108, MIMECONTF_MIME_LATEST},
  212.     { L"SEN_850200_B", 1252, 20107, MIMECONTF_MIME_LATEST},
  213.     { L"shift_jis", 932, 932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  214.     { L"shift-jis", 932, 932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  215.     { L"sjis", 932, 932, MIMECONTF_MIME_LATEST},
  216.     { L"Swedish", 1252, 20107, MIMECONTF_MIME_LATEST},
  217.     { L"TIS-620", 874, 874, MIMECONTF_MIME_LATEST},
  218.     { L"unicode", 1200, 1200, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  219.     { L"unicode-1-1-utf-7", 1200, 65000, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  220.     { L"unicode-1-1-utf-8", 1200, 65001, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  221.     { L"unicode-2-0-utf-7", 1200, 65000, MIMECONTF_MIME_LATEST},
  222.     { L"unicode-2-0-utf-8",1200, 65001, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  223.     { L"unicodeFFFE", 1200, 1201, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  224.     { L"us", 1252, 20127, MIMECONTF_MIME_LATEST},
  225.     { L"us", 1252, 1252, MIMECONTF_MIME_IE4},
  226.     { L"us-ascii", 1252, 20127, MIMECONTF_MIME_LATEST},
  227.     { L"us-ascii", 1252, 1252, MIMECONTF_MIME_IE4},
  228.     { L"utf-16", 1200, 1200, MIMECONTF_MIME_LATEST },
  229.     { L"utf-7", 1200, 65000, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  230.     { L"utf-8", 1200, 65001, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  231.     { L"visual", 1255, 28598, MIMECONTF_MIME_LATEST},
  232.     { L"visual", 1255, 1255, MIMECONTF_MIME_IE4 },
  233.     { L"windows-1250", 1250, 1250, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  234.     { L"windows-1251", 1251, 1251, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  235.     { L"windows-1252", 1252, 1252, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  236.     { L"windows-1253", 1253, 1253, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  237.     { L"Windows-1254", 1254, 1254, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  238.     { L"windows-1255", 1255, 1255, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  239.     { L"windows-1256", 1256, 1256, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  240.     { L"windows-1257", 1257, 1257, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  241.     { L"windows-1258", 1258, 1258, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  242.     { L"windows-874", 874, 874, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  243.     { L"x-ansi", 1252, 1252, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  244.     { L"x-Chinese-CNS", 950, 20000, MIMECONTF_MIME_LATEST},
  245.     { L"x-Chinese-Eten", 950, 20002, MIMECONTF_MIME_LATEST},
  246.     { L"x-cp1250", 1250, 1250, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  247.     { L"x-cp1251", 1251, 1251, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  248.     { L"X-EBCDIC-Arabic", 1256, 20420, MIMECONTF_MIME_LATEST},
  249.     { L"x-ebcdic-cp-us-euro", 1252, 1140, MIMECONTF_MIME_LATEST},
  250.     { L"X-EBCDIC-CyrillicRussian", 1251, 20880, MIMECONTF_MIME_LATEST},
  251.     { L"X-EBCDIC-CyrillicSerbianBulgarian", 1251, 21025, MIMECONTF_MIME_LATEST},
  252.     { L"X-EBCDIC-DenmarkNorway", 1252, 20277, MIMECONTF_MIME_LATEST},
  253.     { L"x-ebcdic-denmarknorway-euro", 1252, 1142, MIMECONTF_MIME_LATEST},
  254.     { L"X-EBCDIC-FinlandSweden", 1252, 20278, MIMECONTF_MIME_LATEST},
  255.     { L"x-ebcdic-finlandsweden-euro", 1252, 1143, MIMECONTF_MIME_LATEST},
  256.     { L"X-EBCDIC-France", 1252, 202297, MIMECONTF_MIME_LATEST},
  257.     { L"x-ebcdic-france-euro", 1252, 1147, MIMECONTF_MIME_LATEST},
  258.     { L"X-EBCDIC-Germany", 1252, 20273, MIMECONTF_MIME_LATEST},
  259.     { L"x-ebcdic-germany-euro", 1252, 1141, MIMECONTF_MIME_LATEST},
  260.     { L"X-EBCDIC-Greek", 1253, 20423, MIMECONTF_MIME_LATEST},
  261.     { L"x-EBCDIC-GreekModern", 1253, 875, MIMECONTF_MIME_LATEST},
  262.     { L"X-EBCDIC-Hebrew", 1255, 20424, MIMECONTF_MIME_LATEST},
  263.     { L"X-EBCDIC-Icelandic", 1252, 20871, MIMECONTF_MIME_LATEST},
  264.     { L"x-ebcdic-icelandic-euro", 1252, 1149, MIMECONTF_MIME_LATEST},
  265.     { L"x-ebcdic-international-euro", 1252, 1148, MIMECONTF_MIME_LATEST},
  266.     { L"X-EBCDIC-Italy", 1252, 20280, MIMECONTF_MIME_LATEST},
  267.     { L"x-ebcdic-italy-euro", 1252, 1144, MIMECONTF_MIME_LATEST},
  268.     { L"X-EBCDIC-JapaneseAndJapaneseLatin", 932, 50939, MIMECONTF_MIME_LATEST},
  269.     { L"X-EBCDIC-JapaneseAndKana", 932, 50930, MIMECONTF_MIME_LATEST},
  270.     { L"X-EBCDIC-JapaneseAndUSCanada", 932, 50931, MIMECONTF_MIME_LATEST},
  271.     { L"X-EBCDIC-JapaneseKatakana", 932, 20290, MIMECONTF_MIME_LATEST},
  272.     { L"X-EBCDIC-KoreanAndKoreanExtended", 949, 50933, MIMECONTF_MIME_LATEST},
  273.     { L"X-EBCDIC-KoreanExtended", 949, 20833, MIMECONTF_MIME_LATEST},
  274.     { L"X-EBCDIC-SimplifiedChinese", 936, 50935, MIMECONTF_MIME_LATEST},
  275.     { L"X-EBCDIC-Spain", 1252, 20284, MIMECONTF_MIME_LATEST},
  276.     { L"x-ebcdic-spain-euro", 1252, 1145, MIMECONTF_MIME_LATEST},
  277.     { L"X-EBCDIC-Thai", 874, 20838, MIMECONTF_MIME_LATEST},
  278.     { L"X-EBCDIC-TraditionalChinese", 950, 50937, MIMECONTF_MIME_LATEST},
  279.     { L"X-EBCDIC-Turkish", 1254, 20905, MIMECONTF_MIME_LATEST},
  280.     { L"X-EBCDIC-UK", 1252, 20285, MIMECONTF_MIME_LATEST},
  281.     { L"x-ebcdic-uk-euro", 1252, 1146, MIMECONTF_MIME_LATEST},
  282.     { L"x-euc", 932, 51932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  283.     { L"x-euc-cn", 936, 51936, MIMECONTF_MIME_LATEST},
  284.     { L"x-euc-jp", 932, 51932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  285.     { L"x-Europa", 1252, 29001, MIMECONTF_MIME_LATEST},
  286.     { L"x-IA5", 1252, 20105, MIMECONTF_MIME_LATEST},
  287.     { L"x-IA5-German", 1252, 20106, MIMECONTF_MIME_LATEST},
  288.     { L"x-IA5-Norwegian", 1252, 20108, MIMECONTF_MIME_LATEST},
  289.     { L"x-IA5-Swedish", 1252, 20107, MIMECONTF_MIME_LATEST},
  290.     { L"x-iscii-as", 57006, 57006, MIMECONTF_MIME_LATEST},
  291.     { L"x-iscii-be", 57003, 57003, MIMECONTF_MIME_LATEST},
  292.     { L"x-iscii-de", 57002, 57002, MIMECONTF_MIME_LATEST},
  293.     { L"x-iscii-gu", 57010, 57010, MIMECONTF_MIME_LATEST},
  294.     { L"x-iscii-ka", 57008, 57008, MIMECONTF_MIME_LATEST},
  295.     { L"x-iscii-ma", 57009, 57009, MIMECONTF_MIME_LATEST},
  296.     { L"x-iscii-or", 57007, 57007, MIMECONTF_MIME_LATEST},
  297.     { L"x-iscii-pa", 57011, 57011, MIMECONTF_MIME_LATEST},
  298.     { L"x-iscii-ta", 57004, 57004, MIMECONTF_MIME_LATEST},
  299.     { L"x-iscii-te", 57005, 57005, MIMECONTF_MIME_LATEST},
  300.     { L"x-mac-arabic", 1256, 10004, MIMECONTF_MIME_LATEST},
  301.     { L"x-mac-ce", 1250, 10029, MIMECONTF_MIME_LATEST},
  302.     { L"x-mac-chinesesimp", 936, 10008, MIMECONTF_MIME_LATEST},
  303.     { L"x-mac-chinesetrad", 950, 10002, MIMECONTF_MIME_LATEST},
  304.     { L"x-mac-cyrillic", 1251, 10007, MIMECONTF_MIME_LATEST},
  305.     { L"x-mac-greek", 1253, 10006, MIMECONTF_MIME_LATEST},
  306.     { L"x-mac-hebrew", 1255, 10005, MIMECONTF_MIME_LATEST},
  307.     { L"x-mac-icelandic", 1252, 10079, MIMECONTF_MIME_LATEST},
  308.     { L"x-mac-japanese", 932, 10001, MIMECONTF_MIME_LATEST},
  309.     { L"x-mac-korean", 949, 10003, MIMECONTF_MIME_LATEST},
  310.     { L"x-mac-turkish", 1254, 10081, MIMECONTF_MIME_LATEST},
  311.     { L"x-ms-cp932", 932, 932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  312.     { L"x-sjis", 932, 932, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4 },
  313.     { L"x-unicode-1-1-utf-7", 1200, 65000, MIMECONTF_MIME_LATEST},
  314.     { L"x-unicode-1-1-utf-8", 1200, 65001, MIMECONTF_MIME_LATEST},
  315.     { L"x-unicode-2-0-utf-7", 1200, 65000, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  316.     { L"x-unicode-2-0-utf-8", 1200, 65001, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  317.     { L"x-user-defined", 50000, 50000, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  318.     { L"x-x-big5", 950, 950, MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4},
  319. //  { Charset, CodePage, InternetEncoding, Flags }
  320. };
  321. // Hard code sorted table by code page description and family code page.
  322. MIMECODEPAGE MimeCodePage[] =
  323. {
  324. //  { CodePage, HeaderCharset, BodyCharset, WebCharset, FixedWidthFont, ProportionalFont, Description, FamilyCodePage, Flags }
  325.     { 708, NULL, L"ASMO-708", NULL, 0, 0, IDS_DESC_708, 1256, 0x00000606|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  326.     { 708, NULL, L"ASMO-708", NULL, 0, 0, IDS_DESC_708, 1256, 0x00000707|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  327.     { 51256, NULL, L"_autodetect_arabic", L"windows-1256", 0,  0, IDS_DESC_51256, 1256, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT },
  328.     { 720, NULL, L"DOS-720", NULL, 0, 0, IDS_DESC_720, 1256, 0x00000606|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  329.     { 720, NULL, L"DOS-720", NULL, 0, 0, IDS_DESC_720, 1256, 0x00000707|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  330.     { 28596, NULL, L"iso-8859-6", NULL, 0, 0, IDS_DESC_28596, 1256, 0x00000707|MIMECONTF_MIME_LATEST|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  331.     { 10004, NULL, L"x-mac-arabic", NULL, 0, 0, IDS_DESC_10004, 1256, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  332.     { 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 },
  333.     { 1256, NULL, L"windows-1256", L"windows-1256", IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1256, 0, 0x00000707| MIMECONTF_MIME_IE4},
  334.     { 50001, NULL, L"_autodetect_all", NULL, 0, 0, IDS_DESC_50001, 0, 0x00000007|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT},
  335.     { 775, NULL, L"ibm775", NULL, 0, 0, IDS_DESC_775, 1257, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  336.     { 28594, NULL, L"iso-8859-4", NULL, 0, 0, IDS_DESC_28594, 1257, 0x00000303|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  337.     { 28594, NULL, L"iso-8859-4", NULL, 0, 0, IDS_DESC_28594, 1257, 0x00000301|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  338.     { 1257, L"windows-1257", L"iso-8859-4", L"windows-1257", IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1257, 0, 0x00000707|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  339.     { 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 },
  340.     { 852, NULL, L"ibm852", NULL, 0, 0, IDS_DESC_852, 1250, 0x00000202|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  341.     { 28592, NULL, L"iso-8859-2", NULL, 0, 0, IDS_DESC_28592, 1250, 0x00000707|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  342.     { 10029, NULL, L"x-mac-ce", NULL, 0, 0, IDS_DESC_10029, 1250, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  343.     { 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 },
  344.     { 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 },
  345.     { 50936, NULL, L"_autodetect_chs", NULL, 0, 0, IDS_DESC_50936, 936, MIMECONTF_MIME_LATEST| MIMECONTF_IMPORT },
  346.     { 51936, NULL, L"EUC-CN", NULL, 0, 0, IDS_DESC_51936, 936, 0x00000000|MIMECONTF_MIME_LATEST|MIMECONTF_EXPORT|MIMECONTF_IMPORT},
  347.     { 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 },
  348.     { 52936, NULL, L"hz-gb-2312", NULL, 0, 0, IDS_DESC_52936, 936, 0x00000303|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  349.     { 10008, NULL, L"x-mac-chinesesimp", NULL, 0, 0, IDS_DESC_10008, 936, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  350.     { 50950, NULL, L"_autodetect_cht", NULL, 0, 0, IDS_DESC_50950, 950, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT},
  351.     { 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 },
  352.     { 20000, NULL, L"x-Chinese-CNS", NULL, 0, 0, IDS_DESC_20000, 950, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  353.     { 20002, NULL, L"x-Chinese-Eten", NULL, 0, 0, IDS_DESC_20002, 950, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  354.     { 10002, NULL, L"x-mac-chinesetrad", NULL, 0, 0, IDS_DESC_10002, 950, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  355.     { 51251, NULL, L"_auto_detect_cyrillic", L"windows-1251", 0, 0, IDS_DESC_51251, 1251, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT},
  356.     { 866, NULL, L"cp866", NULL, 0, 0, IDS_DESC_866, 1251, 0x00000202|MIMECONTF_MIME_LATEST|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  357.     { 28595, NULL, L"iso-8859-5", NULL, 0, 0, IDS_DESC_28595, 1251, 0x00000707|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  358.     { 20866, NULL, L"koi8-r", NULL, 0, 0, IDS_DESC_20866, 1251, 0x00000707|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  359.     { 21866, NULL, L"koi8-u", NULL, 0, 0, IDS_DESC_21866, 1251, 0x00000707|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  360.     { 21866, NULL, L"koi8-ru", NULL, 0, 0, IDS_DESC_21866, 1251, 0x00000707|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  361.     { 10007, NULL, L"x-mac-cyrillic", NULL, 0, 0, IDS_DESC_10007, 1251, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  362.     { 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},
  363.     { 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},
  364.     { 28603, NULL, L"iso-8859-15", NULL, 0, 0, IDS_DESC_28603, 1257, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  365.     { 29001, NULL, L"x-Europa", NULL, 0, 0, IDS_DESC_29001, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  366.     { 20106, NULL, L"x-IA5-German", NULL, 0, 0, IDS_DESC_20106, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  367.     { 51253, NULL, L"_auto_detect_greek", L"windows-1253", 0, 0, IDS_DESC_51253, 1253, MIMECONTF_MIME_LATEST| MIMECONTF_IMPORT},
  368.     { 737, NULL, L"ibm737", NULL, 0, 0, IDS_DESC_737, 1253, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  369.     { 28597, NULL, L"iso-8859-7", NULL, 0, 0, IDS_DESC_28597, 1253, 0x00000707|MIMECONTF_MIME_LATEST|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  370.     { 10006, NULL, L"x-mac-greek", NULL, 0, 0, IDS_DESC_10006, 1253, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  371.     { 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 },
  372.     { 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 },
  373.     { 869, NULL, L"ibm869", NULL, 0, 0, IDS_DESC_869, 1253, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  374.     { 862, NULL, L"DOS-862", NULL, 0, 0, IDS_DESC_862, 1255, 0x00000606|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  375.     { 862, NULL, L"DOS-862", NULL, 0, 0, IDS_DESC_862, 1255, 0x00000707|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  376.     { 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},
  377.     { 28598, NULL, L"iso-8859-8", NULL, 0, 0, IDS_DESC_28598, 1255, 0x00000606|MIMECONTF_MIME_LATEST|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  378.     { 10005, NULL, L"x-mac-hebrew", NULL, 0, 0, IDS_DESC_10005, 1255, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  379.     { 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},
  380.     { 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},
  381.     { 20420, NULL, L"x-EBCDIC-Arabic", NULL, 0, 0, IDS_DESC_20420, 1256, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  382.     { 20880, NULL, L"x-EBCDIC-CyrillicRussian", NULL, 0, 0, IDS_DESC_20880, 1251, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  383.     { 21025, NULL, L"x-EBCDIC-CyrillicSerbianBulgarian", NULL, 0, 0, IDS_DESC_21025, 1251, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  384.     { 20277, NULL, L"x-EBCDIC-DenmarkNorway", NULL, 0, 0, IDS_DESC_20277, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  385.     { 1142, NULL, L"x-ebcdic-denmarknorway-euro", NULL, 0, 0, IDS_DESC_1142, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  386.     { 20278, NULL, L"x-EBCDIC-FinlandSweden", NULL, 0, 0, IDS_DESC_20278, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  387.     { 1143, NULL, L"x-ebcdic-finlandsweden-euro", NULL, 0, 0, IDS_DESC_1143, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  388.     { 20297, NULL, L"x-EBCDIC-France", NULL, 0, 0, IDS_DESC_20297, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  389.     { 1147, NULL, L"x-ebcdic-france-euro", NULL, 0, 0, IDS_DESC_1147, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  390.     { 20273, NULL, L"x-EBCDIC-Germany", NULL, 0, 0, IDS_DESC_20273, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  391.     { 1141, NULL, L"x-ebcdic-germany-euro", NULL, 0, 0, IDS_DESC_1141, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  392.     { 20423, NULL, L"x-EBCDIC-Greek", NULL, 0, 0, IDS_DESC_20423, 1253, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  393.     { 875, NULL, L"x-EBCDIC-GreekModern", NULL, 0, 0, IDS_DESC_875, 1253, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  394.     { 20424, NULL, L"x-EBCDIC-Hebrew", NULL, 0, 0, IDS_DESC_20424, 1255, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  395.     { 20871, NULL, L"x-EBCDIC-Icelandic", NULL, 0, 0, IDS_DESC_20871, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  396.     { 1149, NULL, L"x-ebcdic-icelandic-euro", NULL, 0, 0, IDS_DESC_1149, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  397.     { 500, NULL, L"CP500", NULL, 0, 0, IDS_DESC_500, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  398.     { 1148, NULL, L"x-ebcdic-international-euro", NULL, 0, 0, IDS_DESC_1148, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  399.     { 20280, NULL, L"x-EBCDIC-Italy", NULL, 0, 0, IDS_DESC_20280, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  400.     { 1144, NULL, L"x-ebcdic-italy-euro", NULL, 0, 0, IDS_DESC_1144, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  401.     { 50930, NULL, L"x-EBCDIC-JapaneseAndKana", NULL, 0, 0, IDS_DESC_50930, 932, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  402.     { 50939, NULL, L"x-EBCDIC-JapaneseAndJapaneseLatin", NULL, 0, 0, IDS_DESC_50939, 932, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  403.     { 50931, NULL, L"x-EBCDIC-JapaneseAndUSCanada", NULL, 0, 0, IDS_DESC_50931, 932, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  404.     { 20290, NULL, L"x-EBCDIC-JapaneseKatakana", NULL, 0, 0, IDS_DESC_20290, 932, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  405.     { 50933, NULL, L"x-EBCDIC-KoreanAndKoreanExtended", NULL, 0, 0, IDS_DESC_50933, 949, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  406.     { 20833, NULL, L"x-EBCDIC-KoreanExtended", NULL, 0, 0, IDS_DESC_20833, 949, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  407.     { 870, NULL, L"CP870", NULL, 0, 0, IDS_DESC_870, 1250, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  408.     { 50935, NULL, L"x-EBCDIC-SimplifiedChinese", NULL, 0, 0, IDS_DESC_50935, 936, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  409.     { 20284, NULL, L"X-EBCDIC-Spain", NULL, 0, 0, IDS_DESC_20284, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  410.     { 1145, NULL, L"x-ebcdic-spain-euro", NULL, 0, 0, IDS_DESC_1145, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  411.     { 20838, NULL, L"x-EBCDIC-Thai", NULL, 0, 0, IDS_DESC_20838, 874, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  412.     { 50937, NULL, L"x-EBCDIC-TraditionalChinese", NULL, 0, 0, IDS_DESC_50937, 950, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  413.     { 20905, NULL, L"x-EBCDIC-Turkish", NULL, 0, 0, IDS_DESC_20905, 1254, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  414.     { 1026, NULL, L"CP1026", NULL, 0, 0, IDS_DESC_1026, 1254, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },    
  415.     { 20285, NULL, L"x-EBCDIC-UK", NULL, 0, 0, IDS_DESC_20285, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },    
  416.     { 1146, NULL, L"x-ebcdic-uk-euro", NULL, 0, 0, IDS_DESC_1146, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  417.     { 37, NULL, L"ebcdic-cp-us", NULL, 0, 0, IDS_DESC_37, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  418.     { 1140, NULL, L"x-ebcdic-cp-us-euro", NULL, 0, 0, IDS_DESC_1140, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  419.     { 861, NULL, L"ibm861", NULL, 0, 0, IDS_DESC_861, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  420.     { 10079, NULL, L"x-mac-icelandic", NULL, 0, 0, IDS_DESC_10079, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  421.     { 57006, NULL, L"x-iscii-as", NULL, 0, 0, IDS_DESC_57006, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  422.     { 57003, NULL, L"x-iscii-be", NULL, 0, 0, IDS_DESC_57003, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  423.     { 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 },
  424.     { 57010, NULL, L"x-iscii-gu", NULL, 0, 0, IDS_DESC_57010, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  425.     { 57008, NULL, L"x-iscii-ka", NULL, 0, 0, IDS_DESC_57008, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  426.     { 57009, NULL, L"x-iscii-ma", NULL, 0, 0, IDS_DESC_57009, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  427.     { 57007, NULL, L"x-iscii-or", NULL, 0, 0, IDS_DESC_57007, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  428.     { 57011, NULL, L"x-iscii-pa", NULL, 0, 0, IDS_DESC_57011, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  429.     { 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 },
  430.     { 57005, NULL, L"x-iscii-te", NULL, 0, 0, IDS_DESC_57005, 0, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  431.     { 50932, NULL, L"_autodetect", NULL, 0, 0, IDS_DESC_50932, 932, 0x00000007|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT},
  432.     { 51932, NULL, L"euc-jp", NULL, 0, 0, IDS_DESC_51932, 932, 0x00000707|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  433.     { 50220, NULL, L"iso-2022-jp", NULL, 0, 0, IDS_DESC_50220, 932, 0x00000101|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  434.     { 50221, NULL, L"iso-2022-jp", L"csISO2022JP", 0, 0, IDS_DESC_50221, 932, 0x00000301|MIMECONTF_MIME_LATEST|MIMECONTF_EXPORT},
  435.     { 50221, NULL, L"_iso-2022-jp$ESC", L"csISO2022JP", 0, 0, IDS_DESC_50221, 932, 0x00000301|MIMECONTF_MIME_IE4|MIMECONTF_EXPORT},
  436.     { 50222, NULL, L"iso-2022-jp", NULL, 0, 0, IDS_DESC_50222, 932, MIMECONTF_MIME_LATEST|MIMECONTF_EXPORT},
  437.     { 50222, NULL, L"_iso-2022-jp$SIO", L"iso-2022-jp", 0, 0, IDS_DESC_50222, 932, MIMECONTF_MIME_IE4|MIMECONTF_EXPORT},
  438.     { 10001, NULL, L"x-mac-japanese", NULL, 0, 0, IDS_DESC_10001, 932, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  439.     { 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},
  440.     { 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},
  441.     { 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},
  442.     { 50949, NULL, L"_autodetect_kr", NULL, 0, 0, IDS_DESC_50949, 949, 0x00000001|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT},
  443.     { 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},
  444.     { 51949, NULL, L"euc-kr", NULL, 0, 0, IDS_DESC_51949, 949, 0x00000000| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  445.     { 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},
  446.     { 50225, NULL, L"iso-2022-kr", L"iso-2022-kr", 0, 0, IDS_DESC_50225, 949, 0x00000101| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  447.     { 1361, NULL, L"Johab", NULL,IDS_FONT_KOREAN_FIXED, IDS_FONT_KOREAN_PROP, IDS_DESC_1361, 1361, 0x00000000|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  448.     { 10003, NULL, L"x-mac-korean", NULL, 0, 0, IDS_DESC_10003, 949, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  449.     { 28593, NULL, L"iso-8859-3", NULL, 0, 0, IDS_DESC_28593, 1254, 0x00000501|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  450.     { 28605, NULL, L"iso-8859-15", NULL, 0, 0, IDS_DESC_28605, 1252, 0x00000701|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  451.     { 20108, NULL, L"x-IA5-Norwegian", NULL, 0, 0, IDS_DESC_20108, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  452.     { 437, NULL, L"IBM437", NULL, 0, 0, IDS_DESC_437, 1252, 0x00000000|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  453.     { 20107, NULL, L"x-IA5-Swedish", NULL, 0, 0, IDS_DESC_20107, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  454.     { 874, NULL, L"windows-874", NULL, IDS_FONT_THAI_FIXED, IDS_FONT_THAI_PROP, IDS_DESC_874, 0, 0x00000707|MIMECONTF_MIME_LATEST|MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  455.     { 857, NULL, L"ibm857", NULL, 0, 0, IDS_DESC_857, 1254, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  456.     { 28599, NULL, L"iso-8859-9", NULL, 0, 0, IDS_DESC_28599, 1254, 0x00000707|MIMECONTF_MIME_LATEST| MIMECONTF_IMPORT|MIMECONTF_EXPORT},    
  457.     { 10081, NULL, L"x-mac-turkish", NULL, 0, 0, IDS_DESC_10081, 1254, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  458.     { 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},
  459.     { 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},
  460.     { 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},
  461.     { 1201, NULL, L"unicodeFFFE",   NULL, 0, 0, IDS_DESC_1201, 1200, 0x00000000|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  462.     { 65000, NULL, L"utf-7", NULL, 0, 0, IDS_DESC_65000, 1200, 0x00000101|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  463.     { 65001, NULL, L"utf-8", NULL, 0, 0, IDS_DESC_65001, 1200, 0x00000303|MIMECONTF_MIME_LATEST| MIMECONTF_MIME_IE4|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  464.     { 20127, NULL, L"us-ascii", NULL, 0, 0, IDS_DESC_20127, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT|MIMECONTF_MAILNEWS|MIMECONTF_SAVABLE_MAILNEWS},
  465.     { 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},
  466.     { 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},
  467.     { 1252, NULL, L"iso-8859-1", NULL, IDS_FONT_WESTERN_FIXED, IDS_FONT_WESTERN_PROP, IDS_DESC_1252_IE4, 0, 0x00000707| MIMECONTF_MIME_IE4},
  468.     { 850, NULL, L"ibm850", NULL, 0, 0, IDS_DESC_850, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  469.     { 20105, NULL, L"x-IA5", NULL, 0, 0, IDS_DESC_20105, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  470.     { 28591, NULL, L"iso-8859-1", NULL, 0, 0, IDS_DESC_28591, 1252, 0x00000703|MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT},
  471.     { 10000, NULL, L"macintosh", NULL, 0, 0, IDS_DESC_10000, 1252, MIMECONTF_MIME_LATEST|MIMECONTF_IMPORT|MIMECONTF_EXPORT },
  472.     { 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},
  473.     { 0, 0, 0, 0, 0, 0, 0, 0, 0},
  474. //  { CodePage, HeaderCharset, BodyCharset, WebCharset, FixedWidthFont, ProportionalFont, Description, FamilyCodePage, Flags }
  475. }; 
  476. #ifdef UNIX
  477. /* Convert from little endian to big endian format */
  478. #define CONVERTLONG(a,b,c,d) (((unsigned long )a) + 
  479.                            ((unsigned long )b << 8) + 
  480.                            ((unsigned long )c << 16) + 
  481.                            ((unsigned long )d << 24))
  482. #endif /* UNIX */
  483. //
  484. //  Globals
  485. //
  486. CMimeDatabase *g_pMimeDatabase = NULL;
  487. //
  488. //  CMimeDatabase implementation
  489. //
  490. STDAPI CMimeDatabase::GetNumberOfCodePageInfo(UINT *pcCodePage)
  491. {
  492.     HRESULT hr = S_OK;
  493.     if (pcCodePage)
  494.     {
  495.         *pcCodePage = 0;
  496.         for (int i=0;i<ARRAYSIZE(MimeCodePage);i++)
  497.         {
  498.             if (MimeCodePage[i].dwFlags & dwMimeSource)
  499.                (*pcCodePage)++;
  500.         }
  501.     }
  502.     else
  503.         hr = E_INVALIDARG;
  504.     return hr;
  505. }
  506. STDAPI CMimeDatabase::GetCodePageInfo(UINT uiCodePage, LANGID LangId, PMIMECPINFO pcpInfo )
  507. {
  508.     int idx;
  509.     HRESULT hr = E_FAIL;
  510.     DebugMsg(DM_TRACE, TEXT("CMimeDatabase::GetCodePageInfo called."));
  511.     for (idx=0; idx < ARRAYSIZE(MimeCodePage); idx++)
  512.     {
  513.         if ((uiCodePage == MimeCodePage[idx].uiCodePage) &&
  514.             (MimeCodePage[idx].dwFlags & dwMimeSource))
  515.             break;
  516.     }
  517.     if (idx < ARRAYSIZE(MimeCodePage))
  518.     {
  519.         hr = GetCodePageInfoWithIndex(idx, LangId, pcpInfo);
  520.     }
  521.     return hr;
  522. }
  523. STDAPI CMimeDatabase::GetCodePageInfoWithIndex(UINT uidx, LANGID LangId, PMIMECPINFO pcpInfo)
  524. {    
  525.     HRESULT hr = E_FAIL;
  526.     LANGID langid = LangId;
  527.     CHARSETINFO rCharsetInfo;
  528.     DebugMsg(DM_TRACE, TEXT("CMimeDatabase::GetCodePageInfoWithIndex called."));
  529.     if (uidx >= ARRAYSIZE(MimeCodePage))
  530.         return hr;  
  531.     if (!_LoadStringExW(g_hInst, MimeCodePage[uidx].uidDescription, pcpInfo->wszDescription, MAX_MIMECP_NAME, langid))
  532.     {
  533.             // Last try, switch to English, US
  534.             langid = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US);
  535.             if (!_LoadStringExW(g_hInst, MimeCodePage[uidx].uidDescription, pcpInfo->wszDescription, MAX_MIMECP_NAME, langid))
  536.                 return hr;
  537.     }
  538.     if ((0 == MimeCodePage[uidx].uidFixedWidthFont || 0 == MimeCodePage[uidx].uidProportionalFont))         
  539.     {
  540.         pcpInfo->wszFixedWidthFont[0] = 0;
  541.         pcpInfo->wszProportionalFont[0] = 0;
  542.         if (0 != MimeCodePage[uidx].uiFamilyCodePage)
  543.         {
  544.             for (UINT j = 0; j < ARRAYSIZE(MimeCodePage); j++)
  545.             {
  546.                 if (MimeCodePage[uidx].uiFamilyCodePage == MimeCodePage[j].uiCodePage)
  547.                 {
  548.                     _LoadStringExW(g_hInst, MimeCodePage[j].uidFixedWidthFont, pcpInfo->wszFixedWidthFont, MAX_MIMEFACE_NAME, langid);
  549.                     _LoadStringExW(g_hInst, MimeCodePage[j].uidProportionalFont, pcpInfo->wszProportionalFont, MAX_MIMEFACE_NAME, langid);
  550.                     break;
  551.                 }
  552.             }
  553.         }
  554.     }
  555.     else
  556.     {
  557.         _LoadStringExW(g_hInst, MimeCodePage[uidx].uidFixedWidthFont, pcpInfo->wszFixedWidthFont, MAX_MIMEFACE_NAME, langid);
  558.         _LoadStringExW(g_hInst, MimeCodePage[uidx].uidProportionalFont, pcpInfo->wszProportionalFont, MAX_MIMEFACE_NAME,langid);
  559.     }
  560.     // Copy internal buffer information
  561.     pcpInfo->dwFlags = MimeCodePage[uidx].dwFlags;
  562.     pcpInfo->uiCodePage = MimeCodePage[uidx].uiCodePage;
  563.     if (MimeCodePage[uidx].uiFamilyCodePage)
  564.         pcpInfo->uiFamilyCodePage = MimeCodePage[uidx].uiFamilyCodePage;
  565.     else
  566.         pcpInfo->uiFamilyCodePage = MimeCodePage[uidx].uiCodePage;
  567.     MLStrCpyNW(pcpInfo->wszBodyCharset, MimeCodePage[uidx].wszBodyCharset, MAX_MIMECSET_NAME);
  568.     if (MimeCodePage[uidx].wszWebCharset)
  569.         MLStrCpyNW(pcpInfo->wszWebCharset, MimeCodePage[uidx].wszWebCharset, MAX_MIMECSET_NAME);
  570.     else
  571.         MLStrCpyNW(pcpInfo->wszWebCharset, MimeCodePage[uidx].wszBodyCharset, MAX_MIMECSET_NAME);
  572.     if (MimeCodePage[uidx].wszHeaderCharset)
  573.         MLStrCpyNW(pcpInfo->wszHeaderCharset, MimeCodePage[uidx].wszHeaderCharset, MAX_MIMECSET_NAME);
  574.     else
  575.         MLStrCpyNW(pcpInfo->wszHeaderCharset, MimeCodePage[uidx].wszBodyCharset, MAX_MIMECSET_NAME);
  576.     if (0 != TranslateCharsetInfo((LPDWORD)pcpInfo->uiFamilyCodePage, &rCharsetInfo, TCI_SRCCODEPAGE))
  577.         pcpInfo->bGDICharset = (BYTE)rCharsetInfo.ciCharset;
  578.     else
  579.         pcpInfo->bGDICharset = DEFAULT_CHARSET;
  580.     if (1200 == pcpInfo->uiFamilyCodePage || 50000 == pcpInfo->uiFamilyCodePage || TRUE == _IsValidCodePage(pcpInfo->uiFamilyCodePage)) // 50000 means user defined
  581.     {
  582.        if (TRUE == CheckFont(pcpInfo->bGDICharset))
  583.        {
  584.            if (pcpInfo->uiCodePage == pcpInfo->uiFamilyCodePage || TRUE == _IsValidCodePage(pcpInfo->uiCodePage))
  585.               pcpInfo->dwFlags |= MIMECONTF_VALID|MIMECONTF_VALID_NLS;
  586.            else if (S_OK == IsConvertINetStringAvailable(pcpInfo->uiCodePage, pcpInfo->uiFamilyCodePage))
  587.               pcpInfo->dwFlags |= MIMECONTF_VALID|MIMECONTF_VALID_NLS;
  588.        }
  589.        else
  590.        {
  591.            if (pcpInfo->uiCodePage == pcpInfo->uiFamilyCodePage || TRUE == _IsValidCodePage(pcpInfo->uiCodePage))
  592.               pcpInfo->dwFlags |= MIMECONTF_VALID_NLS;
  593.            else if (S_OK == IsConvertINetStringAvailable(pcpInfo->uiCodePage, pcpInfo->uiFamilyCodePage))
  594.               pcpInfo->dwFlags |= MIMECONTF_VALID_NLS;
  595.        }
  596.     }
  597.         
  598.     hr = S_OK;
  599.     return hr;
  600. }
  601. STDAPI CMimeDatabase::GetCharsetInfo(BSTR Charset, PMIMECSETINFO pcsetInfo)
  602. {
  603.     int idx = -1;
  604.     int iStart, iEnd, iMiddle, iCmpResult;
  605.     HRESULT hr = E_FAIL;
  606.     DebugMsg(DM_TRACE, TEXT("CMimeDatabase::GetCharsetInfo called."));
  607.     iStart = 0;
  608.     iEnd = ARRAYSIZE(MimeCharSet) - 1;
  609.     while (iStart <= iEnd)
  610.     {
  611.         iMiddle = (iStart + iEnd) / 2;
  612.         iCmpResult = MLStrCmpIW(Charset, MimeCharSet[iMiddle].szCharset);
  613.         if (iCmpResult < 0)
  614.             iEnd = iMiddle - 1;
  615.         else if (iCmpResult > 0)
  616.             iStart = iMiddle + 1;
  617.         else
  618.         {
  619.             if (MimeCharSet[iMiddle].dwFlags & dwMimeSource)
  620.             {
  621.                 idx = iMiddle;                
  622.             }
  623.             else
  624.                 // !!! Tricky, search neighbors for correct data which matches MIME version
  625.                 // Only works for now, if we have data over two versions, we have to change here
  626.                 if ((iMiddle+1 <= iEnd) && 
  627.                     MimeCharSet[iMiddle+1].dwFlags & dwMimeSource &&
  628.                     !MLStrCmpIW(Charset, MimeCharSet[iMiddle+1].szCharset))
  629.                 {
  630.                     idx = iMiddle+1;
  631.                 }
  632.                 else 
  633.                     if ((iMiddle-1 >= 0) &&
  634.                         MimeCharSet[iMiddle-1].dwFlags & dwMimeSource &&
  635.                         !MLStrCmpIW(Charset, MimeCharSet[iMiddle-1].szCharset))
  636.                     {
  637.                 
  638.                         idx = iMiddle-1;
  639.                     }
  640.                     else
  641.                     {
  642.                         idx = ARRAYSIZE(MimeCharSet);
  643.                     }
  644.             break;
  645.         }
  646.     }
  647.     if (0 <= idx && idx < ARRAYSIZE(MimeCharSet) && pcsetInfo )
  648.     {
  649.         MLStrCpyNW(pcsetInfo->wszCharset, MimeCharSet[idx].szCharset, MAX_MIMECSET_NAME);
  650.         pcsetInfo->uiCodePage = MimeCharSet[idx].uiCodePage;
  651.         pcsetInfo->uiInternetEncoding = MimeCharSet[idx].uiInternetEncoding;
  652.         hr = S_OK;
  653.     }
  654.     return hr;
  655. }
  656. int CALLBACK EnumFontFamExProc(ENUMLOGFONTEX *lpelf, NEWTEXTMETRICEX *lpntm, int iFontType, LPARAM lParam)
  657. {
  658.     LOGFONT *lplf;
  659.     BOOL *lpfOK = (BOOL *)lParam;
  660.     lplf = &(lpelf->elfLogFont);
  661.     // We don't use non TrueType fonts
  662.     if (iFontType == DEVICE_FONTTYPE || iFontType == RASTER_FONTTYPE)
  663.         return 1;   // keep going but don't use this font
  664.     // We don't use the SYMBOL, Mac Charset fonts
  665.     if(lplf->lfCharSet == SYMBOL_CHARSET || lplf->lfCharSet == MAC_CHARSET)
  666.         return 1;
  667.     // We don't handle vertical fonts
  668.     if (TEXT('@') == lplf->lfFaceName[0])
  669.         return 1;
  670.     *lpfOK = TRUE;
  671.     return 0;       // stop enumeration if we find any
  672. }
  673. BOOL CMimeDatabase::CheckFont(BYTE bGDICharset)
  674. {
  675.     BOOL fRet = FALSE;
  676.     DebugMsg(DM_TRACE, TEXT("CMimeDatabase::CheckFont called."));
  677.     // It is safe to assume that system always support DEFAULT_CHAR and ANSI_CHARSET
  678.     if ((DEFAULT_CHARSET == bGDICharset) || (ANSI_CHARSET == bGDICharset))
  679.         fRet = TRUE;
  680.     else
  681.     {
  682.         HDC     hDC;
  683.         LOGFONT lf;
  684.         HWND    hWnd;
  685.         hWnd = GetTopWindow(GetDesktopWindow());
  686.         hDC = GetDC(hWnd);
  687.         if (NULL != hDC)
  688.         {
  689.             lf.lfFaceName[0] = TEXT('');
  690.             lf.lfPitchAndFamily = 0;
  691.             lf.lfCharSet = bGDICharset;
  692.             EnumFontFamiliesEx(hDC, &lf, (FONTENUMPROC)EnumFontFamExProc, (LPARAM)&fRet, 0);
  693.         }
  694.         ReleaseDC(hWnd, hDC);
  695.     }
  696.     return fRet;
  697. }
  698. // validates all cps that are in the same
  699. // family of the given codepage
  700. STDAPI CMimeDatabase::ValidateCP(UINT uiCodePage)
  701. {
  702.     UINT i;
  703.     for (i = 0; i < ARRAYSIZE(MimeCodePage); i++)
  704.     {
  705.         if (MimeCodePage[i].uiFamilyCodePage == uiCodePage)
  706.             MimeCodePage[i].dwFlags |=  MIMECONTF_VALID|MIMECONTF_VALID_NLS;
  707.     }
  708.         
  709.     return S_OK; // never fail?
  710. }