已知IWebBrowser2接口,如何获得其Internet Explorer_Server窗口句柄?
2017-01-17 21:32
537 查看
关键字:IWebBrowser2,HWND,::GetCursorPos,::ScreenToClient
方法:
HRESULT IWebBrowser2::get_HWND(long *pHWND);
代码:
#include <shlguid.h>
IServiceProvider* pServiceProvider = NULL;
if (SUCCEEDED(pWebBrowser2->QueryInterface(
IID_IServiceProvider,
(void**)&pServiceProvider)))
{
IOleWindow* pWindow = NULL;
if (SUCCEEDED(pServiceProvider->QueryService(
SID_SShellBrowser,
IID_IOleWindow,
(void**)&pWindow)))
{
HWND hwndBrowser = NULL;
if (SUCCEEDED(pWindow->GetWindow(&hwndBrowser)))
{
// hwndBrowser is the handle of TabWindowClass
}
pWindow->Release();
}
pServiceProvider->Release();
}参考:http://msdn.microsoft.com/en-us/library/aa752126.aspx http://topic.csdn.net/u/20070301/11/91d45328-4985-4a16-8ccf-b58b2423e8a2.html
方法:
HRESULT IWebBrowser2::get_HWND(long *pHWND);
代码:
#include <shlguid.h>
IServiceProvider* pServiceProvider = NULL;
if (SUCCEEDED(pWebBrowser2->QueryInterface(
IID_IServiceProvider,
(void**)&pServiceProvider)))
{
IOleWindow* pWindow = NULL;
if (SUCCEEDED(pServiceProvider->QueryService(
SID_SShellBrowser,
IID_IOleWindow,
(void**)&pWindow)))
{
HWND hwndBrowser = NULL;
if (SUCCEEDED(pWindow->GetWindow(&hwndBrowser)))
{
// hwndBrowser is the handle of TabWindowClass
}
pWindow->Release();
}
pServiceProvider->Release();
}参考:http://msdn.microsoft.com/en-us/library/aa752126.aspx http://topic.csdn.net/u/20070301/11/91d45328-4985-4a16-8ccf-b58b2423e8a2.html
相关文章推荐
- 如何从Internet Explorer_Server窗口句柄获得IHTMLDocument
- 通过窗口句柄获得 IWebBrowser2 接口源码
- 已知IE窗口的句柄,如何由此得到IHTMLdocument2接口?
- 如何获得窗口句柄以及WIN32+API参考大全
- 如何隐藏已知句柄的窗口
- 如何通过窗口句柄来获得一个程序窗口的大小
- 也谈根据IE窗口句柄hWnd获得IWebBrowser接口
- 如何获得窗口句柄(FindWindow函数的使用)
- BCB如何获得当前所有可视窗口的窗口标题和窗口句柄
- 如何获得窗口句柄以及WIN32+API参考大全
- WPF窗口如何获得一个句柄?
- 如何在其它程序窗口(已知窗口的句柄)加上一个按钮
- Delphi通过IE窗口句柄获取网页接口(IWebBrowser2) good
- 已知进程句柄,如何知道此进程的主窗口句柄
- 如何获得窗口句柄(HWND )和改变窗口属性
- autoIt DllCall 如何获得句柄和对窗口操作
- Delphi通过IE窗口句柄获取网页接口(IWebBrowser2)
- dll中如何获得调用者的窗口?得到窗口句柄那么DC也就可以得到了!
- 如何: 在ActiveX 控件中获得顶层 IWebBrowser2 接口
- 如何获得窗口句柄(HWND )和改变窗口属性