13,826
社区成员
发帖
与我相关
我的任务
分享
void __fastcall TForm1::CppWebBrowser1NavigateError(TObject *Sender,
LPDISPATCH pDisp, Variant *URL, Variant *Frame, Variant *StatusCode,
VARIANT_BOOL *Cancel)
{
ShowMessage("页面不可访问");
CppWebBrowser->Visible=false;
*Cancel = true;
}
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
CppWebBrowser1->Navigate(L"about:blank");
}
//---------------------------------------------------------------------------
#include <mshtml.h>
BOOL __stdcall CrnSetHtmlContent(IHTMLDocument2 *spDoc, LPCTSTR lpText)
{
BOOL bResult(FALSE);
if (NULL == spDoc)
return bResult;
IStream *pStream;
IPersistStreamInit *psi;
int nLen = _tcslen(lpText);
HGLOBAL hHTMLText = ::GlobalAlloc(GPTR, nLen * sizeof(TCHAR) + 1);
if (NULL == hHTMLText)
return bResult;
::CopyMemory(hHTMLText, lpText, nLen * sizeof(TCHAR));
HRESULT hr = ::CreateStreamOnHGlobal(hHTMLText, true, &pStream);
if (SUCCEEDED(hr))
{
hr = spDoc->QueryInterface(IID_IPersistStreamInit, (void **)&psi);
if (SUCCEEDED(hr))
{
hr = psi->Load(pStream);
bResult = SUCCEEDED(hr);
psi->Release();
}
pStream->Release();
}
::GlobalFree(hHTMLText);
return bResult;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString strXXX="kkkk<br>dddddd<h1>dddd</h1>";
while (CppWebBrowser1->Busy)
Application->ProcessMessages();
IHTMLDocument2 *spDoc = NULL;
HRESULT hr = CppWebBrowser1->Document->QueryInterface(
::IID_IHTMLDocument2, (void **)&spDoc);
if (SUCCEEDED(hr))
{
CrnSetHtmlContent(spDoc, strXXX.c_str());
spDoc->Release();
}
}
CppWebBrowser->Show();
CppWebBrowser->Hide();