C++ 与js 2
来源:互联网 发布:ubuntu搭建openstack 编辑:程序博客网 时间:2024/05/17 10:55
bool ExecJsFun( const wstring& lpJsFun, const std::vector<wstring>& params ,IWebBrowser2* pIWb) { CComPtr<IWebBrowser2> wb =pIWb;if ( NULL == wb ) return false; CComPtr<IDispatch> pDoc; HRESULT hr = wb->get_Document(&pDoc); if ( FAILED(hr) ) return false; CComQIPtr<IHTMLDocument2> pDoc2=pDoc; if ( NULL == pDoc2 ) return false; CComQIPtr<IDispatch> pScript; hr = pDoc2->get_Script(&pScript); if ( FAILED(hr) ) return false; DISPID id = NULL; CComBSTR bstrFun(lpJsFun.c_str()); hr = pScript->GetIDsOfNames(IID_NULL, &bstrFun, 1, LOCALE_SYSTEM_DEFAULT, &id); if ( FAILED(hr) ) return false; DISPPARAMS dispParams; memset(&dispParams, 0, sizeof(DISPPARAMS)); int nParamCount = params.size(); if ( nParamCount > 0 ) { dispParams.cArgs =nParamCount; dispParams.rgvarg =new VARIANT[nParamCount]; for (int i=0; i<nParamCount; ++i ) { const wstring& str = params[nParamCount-1-i]; CComBSTR bstr(str.c_str()); hr = bstr.CopyTo(&dispParams.rgvarg[i].bstrVal); dispParams.rgvarg[i].vt = VT_BSTR; } } EXCEPINFO execInfo; memset(&execInfo, 0, sizeof(EXCEPINFO)); VARIANT vResult; UINT uArgError = (UINT)-1; hr = pScript->Invoke(id, IID_NULL, 0, DISPATCH_METHOD, &dispParams, &vResult, &execInfo, &uArgError); delete[] dispParams.rgvarg; if ( FAILED(hr) ) return false; return true; }
<pre name="code" class="cpp">
调用:
std::wstring szFun;std::vector<std::wstring> vParam;szFun.assign(L"test");vParam.push_back(L"songsIndex[0]&songsIndex[1]&songsIndex[2]");ExecJsFun(szFun,vParam,wb);
0 0
- C#WinForm与JS通讯
- Objective-c与JS交互
- Objective-c与js交互
- JS与C#(.net)编码与解码
- Objective-c与js相互调用
- c#,asp.net与js的交互
- js与Asp.net后台交互(C#)
- objective-c与js交换数据
- Objective-C 通过Webview 与 JS互调
- js 与 uiwebview objective c 交互
- iOS js与objective-c的交互
- Objective-c与js交互专题
- object-c 与 js交互的学习
- UIWebView 中 JS 与 Objective-C 通信
- iOS Objective-C与JS交互
- cocos js- android 平台 java与js互调 , ios平台 Objective-c与js互调
- C++ 与js 2
- ipad,ihpone开发关于js与objetive -c交互
- Linux命令
- PHP框架CodeIgniter入门使用(2)
- JDBC-连接mysql查询数据时中文为空解决办法
- eclipse 中导入RecyclerView
- Xcode7 The resource could not be loaded because the App Transport Security
- C++ 与js 2
- Core Animation 的隐式动画
- TreeSet --实现学生按年龄大小和姓名排序
- JVM自带的监控工具
- 远程设置Mac 黑名单和踢下线实现
- 数据库连接池
- 【NOIP 2002】字串变换
- PHP Session 登陆 验证
- mysql c