妖哥来看,关于webbrowser的问题
1. 照妖哥网站文档www.ccrun.com/article.asp?i=169&d=st0528中,“如何改变cppWebBrowser的HTML内容”, 我执行后最后部分:
- C/C++ code
delete psi;delete stream;
错误代码为:
- C/C++ code
Access violation at adress ... in module 'borlndmm.dat'. Read of address 00000000.
2. 本来我设置browser的边框为0, 没有滚动条,背景为蓝色。。。(函数2)但是按照1的方式写入字符串到browser之后,就会失去以前的设置。另外,如果在执行1的函数后,我执行函数2,也不能改变browser的样式。
请教。。。。。。。。。。。
[解决办法]
旧文档中,那段函数逻辑上不太严谨。用这个试试:
- C/C++ code
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;}