千家信息网

怎么使用SAFEARRAY返回

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章主要介绍了怎么使用SAFEARRAY返回,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。IDE用的是VC7.1开始都差不多,建立
千家信息网最后更新 2025年01月21日怎么使用SAFEARRAY返回

这篇文章主要介绍了怎么使用SAFEARRAY返回,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

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 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

感谢你能够认真阅读完这篇文章,希望小编分享的"怎么使用SAFEARRAY返回"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0