首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

妖哥来看,关于webbrowser的有关问题

2012-04-11 
妖哥来看,关于webbrowser的问题1. 照妖哥网站文档www.ccrun.com/article.asp?i169&dst0528中,“如何改变c

妖哥来看,关于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;} 

热点排行