从HWnd得到IWebbrowser2接口
来源:互联网 发布:淘宝商品一口价能改吗 编辑:程序博客网 时间:2024/04/29 10:11
IWebBrowser2* GetIEFromHWnd(HWND hIEWindow)
{ HWND hWnd ;
if(hIEWindow==NULL){
hWnd= FindWindow("IEFrame", NULL);
if(hWnd==NULL)
hWnd= FindWindow("CabinetWClass", NULL);
if( hWnd == NULL){
MessageBox (NULL,"No Running instance of Internet Explorer!","message", MB_OK);
}
// walk Shell DocObject View->Internet Explorer_Server
HWND hWndChild = FindWindowEx(hWnd, 0, "Shell DocObject View", NULL);
if(hWndChild !=0){
hWndChild = FindWindowEx(hWndChild, 0, "Internet Explorer_Server", NULL);
}
hWnd=hWndChild;
}
else{
hWnd=hIEWindow;
}
// 我们需要显示地装载OLEACC.DLL,这样我们才知道有没有安装MSAA
HINSTANCE hInst = LoadLibrary( _T("OLEACC.DLL") );
IWebBrowser2* pWebBrowser2=NULL;
if ( hInst != NULL ){
if ( hWnd != 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);
}
}
}
}
}
::FreeLibrary(hInst);
}
else{//如果没有安装MSAA
MessageBox(NULL,_T("Please Install Microsoft Active Accessibility"),"Error",MB_OK);
}
return pWebBrowser2;
}
- 从HWnd得到IWebbrowser2接口
- 从HWnd得到IWebbrowser2接口
- 从HWnd得到IWebbrowser2接口
- 从HWND获取IE的IWebBrowser2接口的函数
- 从HWND得到CWnd *
- 从HWND得到CWnd *
- C# 通过HWND获取IE的IWebBrowser2接口
- 从一个窗口句柄获取IWebBrowser2和IHTMLDocument2接口
- 从一个窗口句柄获取IWebBrowser2和IHTMLDocument2接口
- 从一个窗口句柄获取IWebBrowser2和IHTMLDocument2接口
- 从窗口句柄得到菜单句柄(从HWND得到HMENU)
- 浏览器控件和IWebBrowser2接口
- 如何从IHTMLDOMNode 得到 IHTMLElement 接口
- 由hwnd得到进程名 :GetProcessNameByHandle(HWND nlHandle)
- 通过窗口句柄获得 IWebBrowser2 接口源码
- 为什么要使用GetSafeHwnd()函数得到HWND
- 利用IWebBrowser2接口的Navigate2方法实现Http POST传输
- 如何 :在ActiveX控件中获得顶层IWebBrowser2接口
- Delphi调用WinSock和API来取MAC地址
- RMAN中常用backup命令
- VS2005 安装文件 "由于应用程序配置不正确,应用程序未能启动"
- JMX+J2SE5.0实现Web应用的安全管理
- 如何强行关闭INFORMIX服务器
- 从HWnd得到IWebbrowser2接口
- 一周工作之记录
- 一点小经验,高手不要看
- dwr.xml详解
- 和谐软件过程释义(什么是和谐软件过程)
- 用JSF/DWR/DOJO创建动态Web应用
- PB调用API函数来查找文件
- 又是昏昏噩噩的一天
- 动网8.1后台拿站技巧