当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > 使用SAFEARRAY返回的代码

VBScript
利用vbs脚本实现设置IE的打印页眉页脚信息
两个vbs脚本利用了wscirpt.network
一次载入2个vbs脚本的方法
一个可以更换windows xp or 2003的序列号的vbs脚本
利用VBS脚本自动创建计算机帐户的代码
利用VBS脚本轻松盗U盘数据
脚本-学习VBS的一个不错的教程
什么是 WSH(脚本宿主)的详细解释
WSH 5.6(脚本宿主) 的新增功能
雷客图ASP站长安全助手vbs测试版代码
ntiIframe.vbs用于批量清除被添加到文件中的恶意代码
用vbs控制iis创建虚拟目录的代码
vbscript自动配置IIS的代码
使用ADSI、ASP和一对魔术戏法自动地创立一个虚拟目录的方法
妙用VBScript自制IE工具栏按钮的代码
利用vbs类实现css按钮的代码
VBS中转换二进制数据为字符串常用办法
提供个可以显示农历的VBS代码
在一个vbs中包含其他vbs文件的方法
用vbs实现定时运行web文件的方法

VBScript 中的 使用SAFEARRAY返回的代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 92 ::
收藏到网摘: n/a

前天碰到有人问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