使用SAFEARRAY返回的代码_vbs

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

时间: 2024-09-20 11:37:44

使用SAFEARRAY返回的代码_vbs的相关文章

用jQuery实现的智能隐藏、滑动效果的返回顶部代码

 这篇文章主要介绍了用jQuery实现的智能隐藏.带滑动效果的返回顶部代码,非常实用,需要的朋友可以参考下     在线DEMO:传送门   HTML代码(放在页面任意位置,并用CSS美化):    代码如下:<p id="back-to-top"><a href="#top"><span></span>回到顶部</a></p>   JS代码:    代码如下: <script type=

java定时器 run方法怎么返回值 我要返回result 代码里一直报错 晚生跪求解决

问题描述 java定时器 run方法怎么返回值 我要返回result 代码里一直报错 晚生跪求解决 public VirementResultInfo queryTransaction( final String bank, final TransactionInfo transactionInfo) { // final VirementResultInfo result = null; TimerTask task = new TimerTask() { @Override public v

asp.net(文章截取前几行作为列表摘要)无损返回HTML代码_实用技巧

复制代码 代码如下: <BR>        /* <STRONG>时间很久远了,有码友要,我抄了下来,记得使用的时候还是有部分例外情况要处理,大部分是ok的.</STRONG>         * 函数:          * 说明:无损返回HTML代码         *               * 作者:卡斯Kas(QQ:10590916)         * 修改:2010-12-13.         */         public static st

基于jquery 360导航返回顶部代码

top.js代码  代码如下 复制代码 var IMYUAN;   IMYUAN || (IMYUAN = {});     (function(a) {         a.fn.extend({           returntop: function() {               if (this[0]) {                   var b = this.click(function() {                       a("html, body&q

jquery小火箭返回顶部代码分享_jquery

这是一款基于jquery小火箭返回顶部特效源码,解决了页面太长造成的用户返回页面顶端困难. 为大家分享的jquery小火箭返回顶部代码如下 <head> <title>jquery小火箭返回顶部代码</title> <link href="css/top.css" rel="stylesheet" type="text/css"/> </head> <body style=&quo

用vbscript脚本实现返回 IP 配置数据的代码_vbs

用以返回配置数据(类似于 IPCONFIG 命令返回信息)的 WMI 脚本.' Returning IP Configuration Data ' WMI script that returns configuration data similar to that returned by IpConfig. strComputer = "." Set objWMIService = GetObject("winmgmts:\\"& strComputer &

网页点击按钮返回顶部代码

使用HTML的锚标记最简单了,但是唯一的缺点就是样式不怎么样,会显示这个锚标记. <a name="top" id="top"></a> 放置位置在<body>标签之后随便找个地方放都可以,只要靠近顶部即可. 页面底部放置: <a href="#top" target="_self">返回顶部</a> 使用Javascript Scroll函数返回顶部 使用Javas

jquery返回顶部代码

分享一个jquery在返回顶部在代码:不依赖CSS $("body").append(" ∧   ");   var totop=$("#toTop"); totop.bind({ click:function(){ $("html,body").animate({scrollTop:0},500) }, mouseover:function(){ $("#toTopTips").stop(false,tr

vbs中将GB2312转Unicode的代码_vbs

今天写了一个类似于下面的程序: 复制代码 代码如下: Dim http Set http = CreateObject("msxml2.xmlhttp") http.open "GET","http://www.sina.com.cn/",False http.send WScript.Echo http.responseText 但是却发现返回的中文都是乱码,看了一下发现新浪的编码竟然是gb2312的,汗,现在都是utf-8编码的时代了.res