如何才能得到 IID_IHTMLElement2 接口然后给WebBrowser画图和接受事件?希望高手指点,给代码做出修改的 成功运行的 +100分我代码中最后一句  如下,为何pCtrlElement2.addBehavior();不成功?
pdispImgElement-> QueryInterface(IID_IHTMLElement2,   (void**) &pCtrlElement2);
pCtrlElement2.addBehavior() CComPtr<IDispatch> spDisp;
m_arrWB[i]->pWebBrowser->get_Document(&spDisp);            //Query for HtmlDocument2
            CComQIPtr<IHTMLDocument2> spDoc( spDisp );
//Get the active element
CComPtr<IHTMLElement> spElementHit;
BSTR  strImgKey=BSTR ("sc.gif");
long   lCount=0; 
IHTMLImgElement   *pImg=NULL;             CComPtr<IDispatch> pdispImgElement = NULL;
//IDispatch*   pdispImgElement   =   NULL; 
IDispatch*   pdispCtrlRange   =   NULL;  IHTMLElementCollection*   pImgCol   =   NULL;
spDoc->get_images(&pImgCol);
pImgCol->get_length(&lCount);
for   (int   i=0;i <lCount;i++) 

BSTR   bstrSrc=NULL; 
VARIANT   index; 
index.vt=VT_I4; 
index.lVal=i; 
pImgCol->item(index,index,(IDispatch**)&pdispImgElement); 
pdispImgElement-> QueryInterface(IID_IHTMLImgElement,(void   **)&pImg);
if(NULL   !=   pImg) 
{
                       pImg-> get_src(&bstrSrc);  //find   the   img   we   want!! 
                       int   nComp =  wcscmp(bstrSrc,strImgKey);
                       if(nComp < 0)//表示相同
   { 
                            break; 
   } 
}
                 pImg-> Release(); 
}//IHTMLControlElement*   pCtrlElement   =   NULL;
//pdispImgElement-> QueryInterface(IID_IHTMLControlElement,   (void**)   &pCtrlElement); 
IHTMLElement2   *pCtrlElement2   =   NULL;
pdispImgElement-> QueryInterface(IID_IHTMLElement2,   (void**) &pCtrlElement2);
pCtrlElement2.addBehavior();//???????????????????

解决方案 »

  1.   

    BSTR  strImgKey=BSTR ("sc.gif");
    这句话肯定不行
      

  2.   

    应该怎么做呢??可我运行没问题啊,就是不知道如何得到pCtrlElement2.addBehavior();
      

  3.   

    addBehavior不是应该有参数的吗,你先取错误信息看看到底是什么错误
      

  4.   

    用过这个WebBrowser,不过是给HTML传递参数,这块也费了好大的劲,楼主还是要靠自己,别人只能起辅助作用!