如何将html格式文件转换为mht文件呢,下面有一些C#的代码,不知道如何能翻译为delphi的?
HTML格式转成MHT格式的组件using System;
using System.Runtime.InteropServices;
using System.Text;
using System.IO;
namespace RicCN.Common
{
     /// <summary>
     /// HtmlConvertToMht 类
     /// </summary>
     #region HtmlConvertToMht 类的实现
     public class HtmlConvertToMhtByCdo : IHtmlConvertToMht
     {
         public HtmlConvertToMhtByCdo()
         {
             //
             // TODO: 在此处添加构造函数逻辑
             //
         }        
         #region 变量
        
         string _CharSet="gb2312";
        
         #endregion
        
         #region 属性
         public string CharSet
         {
             get
             {
                 return _CharSet;
             }
             set
             {
                 _CharSet = value;
             }
         }
         #endregion
        
         #region 方法
         /// <summary>
         /// 把Html格式二进制流转换成Mht格式的二进制流
         /// </summary>
         /// <param name="htmlUrl">Html格式的二进制流</param>
         /// <returns>Mht格式的二进制流</returns>
         public byte[] ConvertHtmlUrlToMht(string htmlUrl)
         {
             string strMhtContent = string.Empty;
             byte[] BytMhtContent = null;
             CDO.Message   message = new CDO.MessageClass();
             ADODB.Stream   stream=null;
             message.MimeFormatted =true;
             message.CreateMHTMLBody(htmlUrl,CDO.CdoMHTMLFlags.cdoSuppressNone,"",""); 
             stream = message.GetStream();
             stream.Charset = _CharSet;
             strMhtContent= stream.ReadText(stream.Size);
             BytMhtContent = Encoding.GetEncoding(_CharSet).GetBytes(strMhtContent);
             return BytMhtContent;
         }
        
         /// <summary>
         /// 把Html格式二进制流转换成Mht格式的二进制流,成功返回true,失败返回false
         /// </summary>
         /// <param name="htmlUrl">Html格式的二进制流</param>
         /// <param name="filePath">Mht文件的保存路径</param>
         /// <returns>操作结果 成功:true,失败;false</returns>
         public bool ConvertHtmlUrlToMht(string htmlUrl,string filePath)
         {
             bool isConvertHtmlBytesToMht = false;
             CDO.Message   message = new CDO.MessageClass();
             ADODB.Stream   stream=null;
             message.MimeFormatted =true;
             message.CreateMHTMLBody(htmlUrl,CDO.CdoMHTMLFlags.cdoSuppressNone,"",""); 
             stream = message.GetStream();
             stream.SaveToFile(filePath,ADODB.SaveOptionsEnum.adSaveCreateOverWrite);
             message=null;
             stream.Close();
             isConvertHtmlBytesToMht=true;
             return isConvertHtmlBytesToMht;
         }
         /// <summary>
         /// 把Html格式二进制流转换成Mht格式的二进制流
         /// </summary>
         /// <param name="htmlContent">Html格式的二进制流</param>
         /// <returns>Mht格式的二进制流</returns>
         public byte[] ConvertHtmlBytesToMht(byte[] htmlContent)
         {
             string strMhtContent = string.Empty;
             string strHtmlContent =   Encoding.Default.GetString(htmlContent);
             CDO.Message   message = new CDO.MessageClass();
             ADODB.Stream   stream=null;
             message.MimeFormatted =true;
             message.HTMLBody = strHtmlContent;
             stream = message.GetStream();
             stream.Charset = _CharSet;
             strMhtContent= stream.ReadText(stream.Size);
             byte[] BytMhtContent = Encoding.GetEncoding(_CharSet).GetBytes(strMhtContent);
             return BytMhtContent;
         }
        
         /// <summary>
         /// 根据输入的Html文本内容(二进制)返回Mht文本内容(二进制流),成功返回true,失败返回false
         /// </summary>
         /// <param name="htmlContent">Html格式的二进制流</param>
         /// <param name="filePath">Mht文件的保存路径</param>
         /// <returns>操作结果 成功:true,失败;false</returns>
         public bool ConvertHtmlBytesToMht(byte[] htmlContent,string filePath)
         {
             bool isConvertHtmlBytesToMht = false;
             string strHtmlContent =   Encoding.GetEncoding(_CharSet).GetString(htmlContent);
             CDO.Message   message = new CDO.MessageClass();
             ADODB.Stream   stream=null;
             message.MimeFormatted =true;
             message.HTMLBody = strHtmlContent;
             stream = message.GetStream();
             stream.Charset = _CharSet;
             string strMhtContent= stream.ReadText(stream.Size);
             byte[] BytMhtContent = Encoding.GetEncoding(_CharSet).GetBytes(strMhtContent);
             FileStream fileStream = new FileStream(filePath,FileMode.Create,FileAccess.Write);
             fileStream.Write(BytMhtContent,0,BytMhtContent.Length);
             message=null;
             stream.Close();
             isConvertHtmlBytesToMht=true;
             return isConvertHtmlBytesToMht;
         }
        
         /// <summary>
         /// 根据输入的Html文本内容(字符串)返回Mht文本内容(二进制流)
         /// </summary>
         /// <param name="htmlContent">Html文本内容(字符串)</param>
         /// <returns>Mht格式的二进制流</returns>
         public byte[] ConvertHtmlTextToMht(string htmlContent)
         {
             string strMhtContent = String.Empty;
             CDO.Message   message = new CDO.MessageClass();
             ADODB.Stream   stream=null;
             message.MimeFormatted =true;
             message.HTMLBody = htmlContent;
             stream = message.GetStream();
             stream.Charset = _CharSet;
             strMhtContent= stream.ReadText(stream.Size);
             byte[] bytMhtContent = Encoding.GetEncoding(_CharSet).GetBytes(strMhtContent);
             return bytMhtContent;
         }
        
     /// <summary>
         /// 根据输入的Html文本内容(字符串)返回Mht文本内容(二进制流),成功返回true,失败返回false
         /// </summary>
         /// <param name="htmlContent">Html文本内容(字符串)</param>
         /// <param name="filePath">Mht文件的保存路径</param>
         /// <returns>操作结果:成功:true,失败:false</returns>
         public bool ConvertHtmlTextToMht(string htmlContent,string filePath)
         {
             bool isConvertHtmlBytesToMht = false;
             CDO.Message   message = new CDO.MessageClass();
             ADODB.Stream   stream=null;
             message.MimeFormatted =true;
             message.HTMLBody = htmlContent;
             stream = message.GetStream();
             stream.Charset = _CharSet;
             string strMhtContent= stream.ReadText(stream.Size);
             byte[] BytMhtContent = Encoding.GetEncoding(_CharSet).GetBytes(strMhtContent);
             FileStream fileStream = new FileStream(filePath,FileMode.Create,FileAccess.Write);
             fileStream.Write(BytMhtContent,0,BytMhtContent.Length);
             message=null;
             stream.Close();
             isConvertHtmlBytesToMht=true;
             return isConvertHtmlBytesToMht;
         }
         #endregion
        
     } // class HtmlConvertToMhtByCdo
     #endregion    
} // HTMLConversion