IE中事件详细解析

DWebBrowserEvents2::DocumentComplete Event

void DocumentComplete( IDispatch *pDisp, VARIANT *URL );

pDisp: 指向一个文档所属window或者frame的IDispatch接口,次参数可以QueryInterface接口IWebBrowser2。

URL: 一个VT_BSTR类型的VARIANT指针,代表URL

DISPID : DISPID_DOCUMENTCOMPLETE

notes:

  • URL可能和传递给WebBrowserControl的URL不一致,参数中得URL是规范化后的URL。也可能是经过服务器重定位后的URL。
  • 这个事件在当文档被完整下载完后,READSTATE状态变为READYSTATE_COMPLETE后触发。
  • 在没有frame的页面中,这个事件在加载完成后只触发一次。
  • 有多个frame时,这个事件对每个frame均触发一次,对应一个相应DownloadBegin事件
  • 参数的pDisp是触发这个事件的frame的IDispatch指针。
  • 在下载过程中,highest frame(不一定是top-level frame),触发最终的DocumentComplete事件,这次的pDisp是指向highest frame的。

当控件的 IWebBrowser2::Visible属性是false时,是不会触发这个事件的,微软给出的解决方案是,将窗体的left的设为控件大小的负值,这样,IWebBrowser2::Visible为true,因而就能触发事件。

DWebBrowserEvents2::DownloadComplete Event

当一个navigation操作完成时(或挂起,失败时)触发。

DWebBrowserEvents2::ProgressChange Event

void ProgressChange( long Progress, long ProgressMax );

progress: 当前进度

progressMax: 最大进度

可以用这个事件来更新当前下载了多少字节数。当Progress是-1时,表示完成。

原文地址:https://www.cnblogs.com/kwliu/p/2197096.html