如何对webbrowser和ie编程.docx
- 文档编号:27926701
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:11
- 大小:16.01KB
如何对webbrowser和ie编程.docx
《如何对webbrowser和ie编程.docx》由会员分享,可在线阅读,更多相关《如何对webbrowser和ie编程.docx(11页珍藏版)》请在冰豆网上搜索。
如何对webbrowser和ie编程
如何对webbrowser和IE编程(转)
如你所知,InternetExplorer像其他COM对象一样激发事件—通过连接点.但实际上InternetExplorer如何激发事件呢?
每次InternetExplorer需要向客户提供关于当前活动状态的信息,InternetExplorer激发通过DWebBrowserEvents2连接点激发一个事件.(之前到版本4,InternetExplorer通过DWebBrowserEvents接口激发事件.但到了版本4.x和5,InternetExplorer通过DWebBrowserEvents2连接点.)
注意如何领会到InternetExplorer加法那些事件?
最佳途径是MSDNOnlineWebWorkshop.另外采用OLE-COMObjectViewer
不像WebBrowser控件和InternetExplorer的其他接口,是剑接口没有继承体系.DWebBrowserEvents接口严格应用于InternetExplorer3.如果你正宿主WebBrowser控件或者自动化InternetExplorer5,你可以通过此接口接收事件—但是不可挂接.DWebBrowserEvents2接口包含的方法是为InternetExplorer5定制的.用DWebBrowserEvents2替代DWebBrowserEvents,你将有更多的控制能力.所以不要忘记接口的最后面的2.
尽管DWebBrowserEvents2是一个事件接口,它其实就是像IWebBrowser2一样的另外COM接口,所以它可以包含方法.(D开头的命名是表示这是派遣接口.一个派遣接口是一个IDispatch接口.但不同于普通接口,派遣接口没有vtable.)就像一个接口一样,派遣接口只不过提供一些函数的定义—他们并不真实实现.事件的实现由客户提供.举例来说,为了让WebBrowser激发一个事件,在DWebBrowserEvents2接口中适当定义一些方法.这些方法由客户实现.但WebBrowser不直接调用这些方法.换句话讲,WebBrowser并不调用DocumentComplete方法.因为DWebBrowserEvents2是派遣接口,WebBrowser通过IDispatch:
:
Invoke调用客户的实现.早期,当WebBrowser调用客户的Invoke实现,WebBrowser传递事件被激发的DISPID.
注意某些工具如VisualBasic,MFC,和ATL提供Invoke实现
表7-6列出WebBrowser事件.(这些是WebBrowser控件和InternetExplorer供有的事件,尽管有些事件仅仅用于自动化InternetExplorer).
注意尽管有些方法为不包含2.尽管DWebBrowserEvents2并非继承自WebBrowserEvents,DWebBrowserEvents2还是匹配DWebBrowserEvents中被更改的,以免混淆。
注意表7-6重的参数有些值同样有VARIANT_TRUE或VARIANT_FALSE.如果你使用VisualC++,确信分派使用这些值不要使用TRUE或FALSE.如果你使用VisualBasic,它会自动帮助你转换,你可以比较True和False.
现在来仔细看看这些事件
Table7-6WebBrowser事件私有事件
描述
BeforeNavigate2
在导航之前发生.(该事件并不在不刷新页面的时候发生)
CommandStateChange
当命令状态改变时发生.该事件告诉你何时使能或者禁止Back以及Forward菜单像或者按钮.
DocumentComplete
当整个文档完全完成装载时发生.如果你刷新页面,此事件并不激发.
DownloadBegin
当一个下载项目开始时候发生,此事件也在你刷新(IWebBrowser2:
:
Refresh.)时发生
DownloadComplete
党整个下载项目完成是发生该事件也发生在完成刷新页面.
NavigateComplete2
当整个导航完成.该事件对应于BeforeNavigate2.
NewWindow2
在一个新的窗口被创建以显示Web页或者其他资源的时候发生。
譬如你在页面中以新建窗口的方式打开一个连接
OnFullScreen
当FullScreen属性被改变时候发生.此事件携带一个VARIANT_BOOL类型的输入参数指示InternetExplorer是否处于全屏(full-screen)模式(VARIANT_TRUE)或者处于普通模式(VARIANT_FALSE).
OnMenuBar
菜单条MenuBar属性被改变的时候发生.一个VARIANT_BOOL类型的输入参数指InternetExplorer的菜单条属性是可见(VARIANT_TRUE)或者隐藏(VARIANT_FALSE).
OnQuit
当InternetExplorer正在退出时发生.该事件当用户关闭浏览器或者调用Quit方法.
OnStatusBar
当StatusBar属性被改变的时候发生。
事件携带VARIANT_BOOL类型的输入参数指示InternetExplorer的状态条是否可见(VARIANT_TRUE)或者隐藏(VARIANT_FALSE).
OnTheaterMode
当TheaterMode属性被改变时发生.事件携带VARIANT_BOOL类型的输入参数指示InternetExplorer的状态条是否可见(VARIANT_TRUE)或者隐藏(VARIANT_FALSE).
OnToolBar
当ToolBar属性被改变时发生.事件携带VARIANT_BOOL类型的输入参数指示InternetExplorer的状态条是否可见(VARIANT_TRUE)或者隐藏(VARIANT_FALSE).
OnVisible
当WebBrowser将被显示或者隐藏时发生。
.事件携带VARIANT_BOOL类型的输入参数指示InternetExplorer的状态条是否可见(VARIANT_TRUE)或者隐藏(VARIANT_FALSE).
ProgressChange
当下载进度被更新时候发生
PropertyChange
当属性改变时候发生。
典型的,当PutProperty方法被调用时
StatusTextChange
InternetExplorer和WebBrowser控件改变状态条时候发生。
即使webbrowser控件没有状态条。
StatusTextChange给客户一个改变状态条的机会
TitleChange
.当文档对象的title可用或者改变的时候发生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如何 webbrowser ie 编程