js字符串数组传入Com组件里
2010-05-12 11:44
204 查看
1. javascript代码如下
2. COM接口定义如下
<html> <body> <script language=javascript> var arArray = new Array("1","sadf","2","asdff","test"); if (document.AtlComId){ document.AtlComId.putVariant(arArray); } </script> <object classid="clsid:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" id="AtlComId" width="100" height="100"> </object> </body> <html>
2. COM接口定义如下
// 通过js的数组传进来的IDispatch,根据js数组下标来获取数组元数 int CXXXX::getValueOfIDs(IDispatch* pDisp, int i, VARIANT *varValue) { if ((pDisp != NULL) && (i >= 0)) { CComVariant varName(i,VT_I4); varName.ChangeType(VT_BSTR); DISPID dispId; HRESULT hr = pDisp ->GetIDsOfNames(IID_NULL,&varName.bstrVal,1,LOCALE_USER_DEFAULT,&dispId); if (FAILED(hr)){ return 0; } DISPPARAMS noArgs = { NULL, NULL, 0, 0 }; hr = pDisp ->Invoke( dispId, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYGET, &noArgs, varValue, NULL, NULL ); if (SUCCEEDED(hr)){ return 1; } } return 0; } STDMETHODIMP CXXXX::putVariant(VARIANT varArray) { HRESULT hr = S_OK; VARTYPE vt = varArray.vt; if (vt == VT_DISPATCH) { //deal with javascript array CComVariant varValue; IDispatch* pDisp = varArray.pdispVal; //获取JS字符数组 int i, iLen, iret; iLen = 5; i = iret = 0; for (i = 4; i < nLen; i++) { iret = getValueOfIDs(pDisp,0,&varValue); if (iret != 0){ varValue.ChangeType(VT_BSTR); CComBSTR bstrShowVal = varValue.bstrVal; } } } else { //deal with vbscript array } return S_OK; }
相关文章推荐
- js获取Com组件的字符串数组
- js中如何把字符串转化为对象、数组示例代码
- js 数组,字符串,json互相转换
- js中字符串和数组的常用操作
- js split 的用法和定义 js split分割字符串成数组
- js 转换字符串为整形数组
- 数组方法解决JS字符串连接性能问题有争议
- JS数组字符串方法扩展
- js中数组/字符串常用属性方法归纳
- JS中的数组转变成JSON格式字符串的方法
- js有中文英文逗号的字符串怎么分割成数组
- js split 的用法和定义 js split分割字符串成数组的实例代码
- js将数组转化成字符串
- JS解析json数据并将json字符串转化为数组的实现方法
- js数组与字符串常用方法总结
- js 序列化 form表单 为json 字符串,json数组,json对象
- JS中实现字符串和数组的相互转化
- js将form表单序列化[json字符串、数组、对象]
- php使用js保存的json cookie 字符串,然后解析成数组,需要注意的事项
- 第29天:js-数组添加删除、数组和字符串相互转换