將完整網頁 (HTML + 圖片 + CSS + JS) 封裝為單一 `.mht` (MIME HTML) 檔,離線瀏覽/歸檔。
#include "SHDocVw_OCX.h"
#include "cdoex.h"
#include "msado15.h"
using namespace CDO;
void __fastcall SaveWholePage(BSTR bstrUrl, BSTR bstrFileName)
{
CoInitialize(NULL);
IMessage *pMsg = NULL;
IConfiguration *pConfig = NULL;
CoCreateInstance(__uuidof(Message), NULL, CLSCTX_INPROC_SERVER, __uuidof(IMessage), (void**)&pMsg);
CoCreateInstance(__uuidof(Configuration), NULL, CLSCTX_INPROC_SERVER, __uuidoof(IConfiguration), (void**)&pConfig);
pMsg->put_Configuration(pConfig);
try {
pMsg->CreateMHTMLBody(bstrUrl, cdoSuppressNone, L"", L"");
} catch (...) {
ShowMessage("儲存失敗!");
pMsg->Release(); pConfig->Release(); CoUninitialize(); return;
}
_Stream *pStream = NULL;
pMsg->GetStream(&pStream);
pStream->SaveToFile(bstrFileName, adSaveCreateOverWrite);
pStream->Release();
pMsg->Release();
pConfig->Release();
CoUninitialize();
}
// 呼叫範例
SaveWholePage(WideString("https://www.ccrun.com"), WideString("C:\\123.mht"));