我用VC做的,在浏览器控件里打开网页,然后获取页面元素对象。click事件可以调用click()方法触发,但是这个onmouseover事件怎么触发呢?我试了一下用fireEvent方法,返回s_ok,但是却没有达到我想要的效果,事件并没有成功触发,这是怎么回事?

解决方案 »

  1.   

    得到IHTMLElement接口指针pHtmlElement后,调用
    //搞定IHTMLElement3
       CComQIPtr <IHTMLElement3>   spHe3(pHtmlElement);
       if(!spHe3)   return;   VARIANT_BOOL   Caceled;
       CComVariant   vObj(eventObj);
       spHe3-> fireEvent(L"onmouseover",&vObj,&Caceled);
      

  2.   


    大侠,再请教一下,eventObj 是IHTMLEventObj对吧?这个需要初始化比如关联到某个IHTMLElement3吗?我这样调用:
    CComPtr<IHTMLEventObj> pEvetntObj;
    CComVariant obj(pEvetntObj);
    VARIANT_BOOL bCancel;
    HRESULT hRet = pMouse->fireEvent(L"onmouseover",&obj,&bCancel);
    bCancel返回始终是false,hRet返回的是s_ok, 事件未成功触发。
    pMouse是IHTMLElement接口指针。