首页 > 学院 > 开发设计 > 正文

如何把一个网页存为一个单独的mht文件

2019-11-17 05:33:40
字体:
来源:转载
供稿:网友
#include "SHDocVw_OCX.h"
#include "cdoex.h"
#include "msado15.h"
using namespace CDO;
// 本文是ccrun(老妖)根据相关资料改的,在BCB 6.0 下成功编译并测试通过.
// 假如有不能正常运行的,可能需要在机器上安装有Outlook.
void __fastcall SaveWholePage(BSTR bstrUrl, BSTR bstrFileName)
{
    CoInitialize(NULL);
    IMessage *pMsg;
    IConfiguration *pConfig;
    HRESULT hr = CoCreateInstance(__uuidof(Message), NULL,
            CLSCTX_INPROC_SERVER, __uuidof(IMessage), (void**)&pMsg);
    hr = CoCreateInstance(
       __uuidof(Configuration),
       NULL,
       CLSCTX_INPROC_SERVER,
       __uuidof(IConfiguration),
       (void**)&pConfig);

    pMsg->put_Configuration(pConfig);
    try<br>
    {
        pMsg->CreateMHtmlBody(
            bstrUrl,
            cdoSuppressNone,
            WideString(""),
            WideString(""));
    }
    catch(...)
    {
        ShowMessage("有错误发生!");
        return;
    }
    ADOStream *pStream;
    pMsg->GetStream(&pStream);
    pStream->SaveToFile(bstrFileName, adSaveCreateOverWrite);
    pMsg->Release();
    pStream->Release();
    CoUninitialize();
}
// 调用举例:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    SaveWholePage(WideString("http://www.ccrun.com"),

            WideString("C://123.mht"));
}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表