从HWND获取IE的IWebBrowser2接口的函数
来源:互联网 发布:计算机系统监控软件 编辑:程序博客网 时间:2024/04/28 07:54
IWebBrowser2* GetIEAppFromHWnd(HWND hIEWindow)
{
HWND hWnd = FindWindowEx(hIEWindow, 0, "Shell Embedding", NULL);
HWND hWndChild = FindWindowEx(hWnd, 0, "Shell DocObject View", NULL);
hWnd = FindWindowEx(hWndChild, 0, "Internet Explorer_Server", NULL);
if ( hWnd == NULL ) return FALSE;
// 我们需要显示地装载OLEACC.DLL,这样我们才知道有没有安装MSAA
HINSTANCE hInst = LoadLibrary( _T("OLEACC.DLL") );
IWebBrowser2* pWebBrowser2 = NULL;
if ( hInst == NULL ) return NULL;
LRESULT lRes;
UINT nMsg = ::RegisterWindowMessage( _T("WM_HTML_GETOBJECT") );
::SendMessageTimeout( hWnd, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&lRes );
LPFNOBJECTFROMLRESULT pfObjectFromLresult = (LPFNOBJECTFROMLRESULT)::GetProcAddress( hInst, _T("ObjectFromLresult") );
if ( pfObjectFromLresult != NULL )
{
HRESULT hr;
CComPtr<IHTMLDocument2>spDoc;
hr=pfObjectFromLresult(lRes,IID_IHTMLDocument2,0,(void**)&spDoc);
if ( SUCCEEDED(hr) )
{
CComPtr<IHTMLWindow2>spWnd2;
CComPtr<IServiceProvider>spServiceProv;
hr=spDoc->get_parentWindow ((IHTMLWindow2**)&spWnd2);
if(SUCCEEDED(hr))
{
hr=spWnd2->QueryInterface (IID_IServiceProvider,(void**)&spServiceProv);
if(SUCCEEDED(hr))
{
hr = spServiceProv->QueryService(SID_SWebBrowserApp,
IID_IWebBrowser2,
(void**)&pWebBrowser2);
if (SUCCEEDED(hr))
{
::FreeLibrary(hInst);
return pWebBrowser2;
//IDispatch *app;
//hr = pWebBrowser2->get_Application(&app);
//if (SUCCEEDED(hr))
//{
// //MessageBox(NULL, "BINGO", 0, MB_OK);
// return app;
//}
}
}
}
}
}
::FreeLibrary(hInst);
return NULL;
}
- 从HWND获取IE的IWebBrowser2接口的函数
- C# 通过HWND获取IE的IWebBrowser2接口
- 从HWnd得到IWebbrowser2接口
- 从HWnd得到IWebbrowser2接口
- 从HWnd得到IWebbrowser2接口
- HWnd和CWnd的获取函数
- Delphi通过IE窗口句柄获取网页接口(IWebBrowser2)
- 获取MessageBox的HWND
- 从一个窗口句柄获取IWebBrowser2和IHTMLDocument2接口
- 从一个窗口句柄获取IWebBrowser2和IHTMLDocument2接口
- 从一个窗口句柄获取IWebBrowser2和IHTMLDocument2接口
- 获取IWebBrowser2指针的方法(一)
- 获取IWebBrowser2指针的方法(二)
- 获取IWebBrowser2指针的方法(一)
- 获取IWebBrowser2指针的方法(二)
- 获取IWebBrowser2指针的方法(一)
- 获取IWebBrowser2指针的方法(二)
- 获取IWebBrowser2指针的方法(二)
- Android ViewGroup提高绘制性能
- 中兴U880安装驱动
- 一个简单的电梯状态模型
- JSP内置对象(9个常用的内置对象)
- 平衡树构造算法
- 从HWND获取IE的IWebBrowser2接口的函数
- 【Android Training - Performance】优化电池续航能力[Lesson 4 - 按需操控Broadcast Receivers是否开启]
- 【斜率优化】特别行动队
- <<打工是最愚蠢的投资》 ——李嘉诚在大梅沙的演讲
- 不论你学什么专业,都应该了解这些
- getopt函数的使用
- Google Android如何分析和研究Log文件 ,如何看日志信息
- Matlab绘制二维图
- freescale R10 ipu lib 分析 - ipu_ic.c