程序段具体是将id为captureimg的img标签中的src属性设置为给定的url字符串CComQIPtr <IHTMLDocument3> pdoc=(IHTMLDocument3*)m_pHtmlView->GetHtmlDocument();
if(!pdoc)
       return;
CComPtr <IHTMLElement> el=0;
CComPtr <IHTMLElementCollection> collection=0;pdoc->getElementById(CComBSTR("captureimg"),&el);        //这句运行到这里就出现错误
VARIANT param;
param.vt=VT_BSTR;
param.bstrVal=_T("http://192.168.1.81/images/246.bmp");
if(el&&el->setAttribute(CComBSTR("src"),param)==S_OK)
{
      ::AfxMessageBox(_T("切换图片成功"));
}pdoc.Release();
el.Release();
collection.Release();这几句运行到 pdoc->getElementById(CComBSTR("captureimg"),&el); 这里就出现错误, 请问是什么原因?
IntelliSense里面确实是写的这么用的啊?
还有底下的几个Release()用得正确吗,请指点谢谢

解决方案 »

  1.   

    CComPtr <IHTMLElementCollection> collection=0;
    这句没有用,已经擦掉了,请指点谢谢
      

  2.   

    m_pHtmlView是CHtmlView视图类,
    之前在初使化的时候通过LoadFromResource引入了一个资源中的静态html页面,
    页面的代码如下
    <html>
    <head>
    <style type="text/css">
    img {margin:0}
    </style>
    </head><body style="margin:0px;padding:0px;" scroll="no">
    <img id="captureimg" src="http://192.168.1.81//images/246.bmp" width="170" height="140"></img>
    </body></html>是不是无法设置静态页面的标签属性啊?
    如果无法设置的话就只能用VC调javascript来实现了
      

  3.   

    我后来不用ATL改用VC调用javascript实现了,
    不过我是一点也不清楚为什么getElementById这方法会有问题的,
    楼上多次援助非常感谢,
    如果有空,您能把那段小代码粘贴下来稍微看一下吗?
    我过段时间就结贴儿给分