转帖地址:http://blog.csdn.net/tingsking18/archive/2009/09/30/4620065.aspx
在Internet Explorer编程中,获取WebBrowser指针通常是一件很重要的事情,因为有了WebBrowser指针,我们就有了对IE完整的控制权。我们 就可以对IE浏览器为所欲为了,想干什么都可以。比方说获取或者设置DOM控件的值。调用页面中的JavaScript,或者控制浏览器的行为 比方说刷新,前进、后退等等等等。。
下面两篇文章中,我将介绍两种方法来获取IWebBrowser2指针。
第一种
使用OLEACC.dll动态库中的ObjectFromLresult函数来获取。
第二种
使用IShellWindows 获取当前浏览器个数,然后遍历获取浏览器对象和IWebBrowser指针。
下面介绍第一种方法:
在MSDN中对ObjectFromLresult函数的解释
The LresultFromObject function returns a reference, that is similar to a handle, to the specified object. Servers return this reference when handling WM_GETOBJECT.
所以就必须要调用::RegisterWindowMessage( _T("WM_HTML_GETOBJECT") );和SendMessageTimeout返回的与WM_GETOBJECT消息关联的值。这样就可以利用ObjectFromLresult来获取 IHTMLDocument2指针,有了IHTMLDocument2,剩下的事情就是QueryInterface来获取IWebBrowser2指 针,这样就很轻松了。
下面看下代码: