COM接口中使用VARIANT* varNameArray返回数据给Javascript
2016-09-01 16:06
591 查看
在页面开发中,有时通过Javascript来调用COM组件提供的功能。
COM接口中使用VARIANT*可以为页面返回不定类型的数据。
如:COM接口的定义:
GetNameArray(SHORT nType, VARIANT* varNameArray);
Javascript的调用方法:
假设COM对象定义为comObj;
var NameList = comObj.GetNameArray(1);
=======================================
对VARIANT* varNameArray的赋值方法如下:
GetNameArray(SHORT nType, VARIANT* varNameArray)
{
int ARRAY_LEN = vctCerts.size();
SAFEARRAY *psa; //使用数组整理读取的数据
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].cElements =ARRAY_LEN; //设置数组的大小
rgsabound[0].lLbound = 0;
psa = SafeArrayCreate(VT_VARIANT, 1, rgsabound); //创建SafeArray数组
for(LONG i=0;i<vctCerts.size();i++)
{
BSTR bstr = CComBSTR(vctCerts[i].szCertDN);
VARIANT v;
v.vt = VT_BSTR;
v.bstrVal = bstr;
::SafeArrayPutElement(psa, &i, &v);
}
varNameArray->vt = VT_ARRAY|VT_VARIANT; //数组类型
varNameArray->parray = psa;
}
COM接口中使用VARIANT*可以为页面返回不定类型的数据。
如:COM接口的定义:
GetNameArray(SHORT nType, VARIANT* varNameArray);
Javascript的调用方法:
假设COM对象定义为comObj;
var NameList = comObj.GetNameArray(1);
=======================================
对VARIANT* varNameArray的赋值方法如下:
GetNameArray(SHORT nType, VARIANT* varNameArray)
{
int ARRAY_LEN = vctCerts.size();
SAFEARRAY *psa; //使用数组整理读取的数据
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].cElements =ARRAY_LEN; //设置数组的大小
rgsabound[0].lLbound = 0;
psa = SafeArrayCreate(VT_VARIANT, 1, rgsabound); //创建SafeArray数组
for(LONG i=0;i<vctCerts.size();i++)
{
BSTR bstr = CComBSTR(vctCerts[i].szCertDN);
VARIANT v;
v.vt = VT_BSTR;
v.bstrVal = bstr;
::SafeArrayPutElement(psa, &i, &v);
}
varNameArray->vt = VT_ARRAY|VT_VARIANT; //数组类型
varNameArray->parray = psa;
}
相关文章推荐
- List使用linq来查询数据,返回读取var
- SolidWorks异步模式开发,使用COM接口获取Array数据时的注意事项
- JavaScript: * JavaScript:基本使用: * ECMAScript: * 变量:弱变量类型: var i; * 数据类型:原始类型和引用类型.
- 将使用DataGrid进行数据绑定,使用Javascript控制当选中其中的checkbox时,该行颜色改变
- 数据排序谁最快(javascript中的Array.prototype.sort PK 快速排序)
- 今天的工作,javascript 返回数据到前一窗口
- 使用JavaScript访问XML数据
- 使用javascript验证数据
- JavaScript中的关键字"VAR"使用祥解
- 使用Not Exists实现返回条件为一个值或空值的数据
- 使用JavaScript访问XML数据
- Ajax.net使得服务器端的数据模型能够被javascript所使用
- 使用 OUTPUT 参数返回数据
- 怎么使用object与record类型返回表类型数据
- 使用dwr进行数据检索的javascript
- 使用javascript访问XML数据的实例
- 使用自定义的facet返回千位分隔符的浮点数据格式
- 『原创』使用ASP与JAVASCRIPT配合实现多个复选框数据关联显示
- 使用JavaScript访问XML数据
- 如何使用JavaScript和正则表达式进行数据验证