从IWebBrowser2获取IHTMLDocument2的Script对象,执行指定的JS脚本
来源:互联网 发布:树莓派3 查看网络 编辑:程序博客网 时间:2024/06/10 21:44
ATL控件嵌入在一个网页内, 在ATL控件内获取网页的IWebBrowser2指针, 并获取对应的网页元素对象, 如Document, Script等
- CComPtr<IWebBrowser2> m_pIWebBrowser;
- CComPtr<IHTMLDocument2> m_pDocument;
- CComPtr<IDispatch> m_pScript;
- BOOL GetIWebBrowser()
- {
- IOleClientSite* pClientSite;
- GetClientSite(&pClientSite);
- if (pClientSite == NULL)
- return FALSE;
- CComQIPtr<IServiceProvider> pISP(pClientSite);
- if (pISP == NULL)
- return FALSE;
- pISP->QueryService(IID_IWebBrowserApp, IID_IWebBrowser2,(void **)&m_pIWebBrowser);
- if (m_pIWebBrowser == NULL)
- return FALSE;
- //取得IHTMLDocument2
- m_pIWebBrowser->get_Document((IDispatch**)&m_pDocument);
- if (m_pDocument == NULL)
- return FALSE;
- //获取脚本对象
- m_pDocument->get_Script(&m_pScript);
- if (m_pScript == NULL)
- return FALSE;
- return TRUE;
- }
- //根据获取到的脚本对象, 可执行一段脚本函数
- void InvokeWebScript(BSTR srciptName)
- {
- CComBSTR bstrMember(srciptName);
- DISPID dispid;
- HRESULT hr;
- if(m_pScript!=NULL)
- {
- hr = m_pScript->GetIDsOfNames(IID_NULL,&bstrMember,1,LOCALE_SYSTEM_DEFAULT,&dispid);
- if (SUCCEEDED(hr))
- {
- DISPPARAMS dispparams;
- memset(&dispparams, 0, sizeof(DISPPARAMS));
- dispparams.cArgs = 0;
- dispparams.cNamedArgs = 0;
- EXCEPINFO excepInfo;
- memset(&excepInfo, 0, sizeof(EXCEPINFO));
- CComVariant vaResult;
- // initialize to invalid arg
- UINT nArgErr = (UINT)-1;
- // 执行js代码
- hr = m_pScript->Invoke(dispid,IID_NULL,0,DISPATCH_METHOD,&dispparams,&vaResult,&excepInfo,&nArgErr);
- }
- }
- }
- 从IWebBrowser2获取IHTMLDocument2的Script对象,执行指定的JS脚本
- 从IWebBrowser2获取IHTMLDocument2的Script对象,执行指定的JS脚本
- 从一个窗口句柄获取IWebBrowser2和IHTMLDocument2接口
- 从一个窗口句柄获取IWebBrowser2和IHTMLDocument2接口
- 从一个窗口句柄获取IWebBrowser2和IHTMLDocument2接口
- 获取ie窗口的IHTMLDocument2对象
- 关于通过IWebBrowser2访问IHTMLDocument2的安全限制的探索
- 从HWND获取IE的IWebBrowser2接口的函数
- 利用IWebBrowser2的IWebBrowser2::get_Document得doc对象
- 获取IWebBrowser2指针的方法(一)
- 获取IWebBrowser2指针的方法(二)
- 获取IWebBrowser2指针的方法(一)
- 获取IWebBrowser2指针的方法(二)
- 获取IWebBrowser2指针的方法(一)
- 获取IWebBrowser2指针的方法(二)
- 获取IWebBrowser2指针的方法(二)
- 获取IWebBrowser2指针的方法(一)
- 获取IWebBrowser2指针的方法(二)
- 获取嵌入ActiveX控件的页面IWebBrowser2指针
- 算法导论 3-4
- Android输入框中输入图片和读取图片
- Android 模块编译
- Android 源码下载地址
- 从IWebBrowser2获取IHTMLDocument2的Script对象,执行指定的JS脚本
- Maven安装、配置、使用
- XML FREESWITCH APPLICATION 实现
- 一个合格程序员该做的事情——你做好了吗?
- Java中的 & && 和 | || 区别应用
- 基于jQuery的简单全选插件
- GoAsm requires square brackets for writing to, and reading from, memory
- Linux根目录下主要目录功能说明
- Supporting Different Screens