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

12 views
Skip to first unread message

harite

unread,
Dec 11, 2009, 9:37:35 PM12/11/09
to 传说中的停泊地
如何把一个网页存为一个单独的mht文件
关键字:网页,mht,outlook,COM,CDO,接口,CreateMHTMLBody,ccrun
作者:ccrun 更新:2004-10-08 浏览:8873
#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);

// 本文转自 C++Builder研究 - http://www.ccrun.com/article.asp?i=615&d=l77p38
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"));
}



如何把一个网页存为一个单独的mht文件
http://www.ccrun.com/article.asp?i=615&d=l77p38
Reply all
Reply to author
Forward
0 new messages