使用SAFEARRAY返回的代码
所属分类:
脚本专栏 / vbs
阅读数:
1108
收藏 0赞 0分享
前天碰到有人问SAFEARRAY的问题,我正好对VB SCRIPT里面如何得到COM组件返回的数组感兴趣,就试验了一下。
IDE用的是VC7.1
开始都差不多,建立工程,建立COM对象,建立方法:
接口定义:
[id(2), helpstring("method GetArray")] HRESULT GetArray1([out,retval] VARIANT* v);
方法实现:
STDMETHODIMP CATL3::GetArray1(VARIANT * pvaVariant)
{
std::vector< float> vct;
vct.push_back( 11.4 );
vct.push_back( 12.4 );
vct.push_back( 14.4 );
CComSafeArray<VARIANT> saMatrix;
for ( int i = 0 ; i < vct.size(); ++i )
{
saMatrix.Add( CComVariant(vct[i]));
}
VariantInit(pvaVariant);
CComVariant var( saMatrix );
var.Detach( pvaVariant );
return S_OK;
}
注意的一点就是:VBS或其它脚本环境中要得到返回数组参数,数组中的类型是VARIANT类型。
VBS测试脚本
Dim v4
Cnxn4.Add 1, 2
v4 = Cnxn4.GetArray1()
Dim x
For x = Lbound(v4) To Ubound( v4 )
MsgBox v4(x)
Next
VBS读取注册表的两种方法
有时候我们需要用vbs来操作注册表,一般情况下有两种方法,一种是通过wshshell对象的regread,另外一种是使用WMI操作注册表,下面简单的介绍下
收藏 0赞 0分享
查看系统C盘剩余空间的VBS脚本
查看系统C盘剩下的空间方法有很多,在本文要为大家介绍的是通过VBS脚本是如何实现的,感兴趣的朋友不要错过
收藏 0赞 0分享
利用VBS实现显示系统服务列表
显示服务列表的方法有很多,在接下来的文章中为大家介绍下利用VBS是如何实现的,感兴趣的朋友不要错过
收藏 0赞 0分享
VBS获取文件MD5值(无组件)
VBS获取MD5值最简单的方法是直接调用CAPICOM组件,但是由于CAPICOM组件系统并不是默认安装,所以使用起来不方便
收藏 0赞 0分享
查看更多