类内实现MFC/VC shdocvw IWebbrowser2的OnDocumentComplete等事件响应
来源:互联网 发布:软件招标书范本 编辑:程序博客网 时间:2024/06/07 05:39
void CWebMethod::OnDocumentCompleteExplorer1(LPDISPATCH pDisp, VARIANT* URL)
经过多次测试,本函数并非主框架的完成最后一次调用.比如http://www.taobao.com如果有cookies被保存 主框架可能第二个就完成 然后这个函数还会被回调两次.
多数如果无cookies的时候,都是在最后一次或者倒数第二次的回调是关于主框架的.
直接贴代码
void CWebMethod::OnDocumentCompleteExplorer1(LPDISPATCH pDisp, VARIANT* URL){my_WebIsBusy = true;if(BT_ByDialog == m_BrowserType){if(m_StateEditCtr)ShowText(L"对话框",*m_StateEditCtr);IUnknown* pUnk; IDispatchPtr lpWBDisp;HRESULT hr; pUnk = my_pWebBrowserCtr->GetControlUnknown(); ASSERT(pUnk); hr = pUnk->QueryInterface(IID_IDispatch, (void**)&lpWBDisp); ASSERT(SUCCEEDED(hr)); if (pDisp == lpWBDisp ) { my_WebIsBusy=false;TRACE("加载完成\r\n"); if(m_StateEditCtr)ShowText(L"对话框 总完",*m_StateEditCtr);//EndModalLoop(0);}}if(BT_ByIE == m_BrowserType){if(m_StateEditCtr)ShowText(L"IE",*m_StateEditCtr);LPDISPATCH pDis;my_IEBrowser ->QueryInterface(IID_IDispatch, (void**)&pDis);if(pDis == pDisp){my_WebIsBusy=false;TRACE("加载完成\r\n"); if(m_StateEditCtr)ShowText(L"IE 总完",*m_StateEditCtr);}}}
其中
my_pWebBrowserCtr
为MFC对话框内activex控件的变量的指针
my_IEBrowser是SHDOCVW的智能指针 shdocvw并不提供GetControlUnknown函数 而多数网上我们找的资料内 也只有这些说明 就是如同:
Unknown* pUnk; IDispatchPtr lpWBDisp;HRESULT hr; pUnk = my_pWebBrowserCtr->GetControlUnknown(); ASSERT(pUnk); hr = pUnk->QueryInterface(IID_IDispatch, (void**)&lpWBDisp); ASSERT(SUCCEEDED(hr)); if (pDisp == lpWBDisp ) { //正式完成}
Shdocvw的代码或许更为简单一些 但是却不那么容易找到资料 比如找shdocvw的OnDocumentComplete 不易找到
以上只是说了一个方法 然而我更希望知道 OnDocumentComplete的可靠性 如前面我所说 程序判断到的正式完成 往往不是最后一次回调这个函数OnDocumentCompleteOnDocumentComplete
- 类内实现MFC/VC shdocvw IWebbrowser2的OnDocumentComplete等事件响应
- 基于MFC的Microsoft Web Browser ActiveX,IWebBrowser2的类封装和含有Iframe框架网页加载完成进度的检测,事件响应
- MFC的鼠标事件响应
- [VC] 鼠标事件的响应
- IWebBrowser2在没有焦点时响应滚轮事件
- 用MFC “菜单响应事件” 实现绘图
- andorid:跳转页面时顺便响应页面内的点击事件等
- VC MFC 视图中控件响应CTRL+C等消息
- VC事件,事件响应API,CEvent类
- Delphi中挂接IWebBrowser2的自动化事件
- CDialog类响应ActiveX事件的实现
- MFC 如何响应StaticBox的点击事件
- MFC 键盘响应事件
- MFC 响应双击事件
- 動態創建Webbrowser並給定OnDocumentComplete事件!!!多個創建有問題
- MFC中动态创建控件以及事件响应实现方法
- MFC动态创建控件并响应事件代码实现过程
- vc++实现word应用程序事件监听及响应
- 深入了解字符集和编码
- nginx + tomcat 集群实现负载均衡
- TC中Regions对象的使用介绍
- 七夕恋歌
- 信息经济时代过去,反馈经济时代已到来
- 类内实现MFC/VC shdocvw IWebbrowser2的OnDocumentComplete等事件响应
- XTU2012 湘潭邀请赛 Interview Arrangement ~ 离散化+01背包
- 桥接模式
- android 下用ant编译脚本执行批量渠道打包
- boost python 使用
- nginx upstream的几种配置方式
- 关于C++的好帖
- 关于爱情
- poj 2524 Ubiquitous Religions