您的位置:首页 > 其它

使用ocx控件输出数组参数

2007-12-19 11:05 218 查看
参数类型为VARIANT*,为可变类型的数组,本例子输出的是字符串数组
STDMETHODIMP CStarSoftMap::GetQueryResultToArray(LONG* nSum, VARIANT* vQuery)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());

*nSum=m_nQueryNum;
CString str=m_strQuery;

VariantClear(vQuery);

SAFEARRAY * pSA;
// Create the safearray.
SAFEARRAYBOUND sabRSarray[1]; // A one-dimensional array.
sabRSarray[0].cElements=*nSum; // Two elements.
sabRSarray[0].lLbound=0; //Lower bound of array.

pSA=SafeArrayCreate(VT_VARIANT,1, sabRSarray);

_variant_t var1;
long ndex;
CString strTmp;
int iStart = 0;
for(int i = 0; i< *nSum; i++)
{
iStart = str.Find(";");
strTmp = str.Left(iStart);
str = str.Mid(iStart + 1);
var1.vt = VT_BSTR;
var1.bstrVal = strTmp.AllocSysString();
ndex = i;
SafeArrayPutElement(pSA, &ndex, &var1);
}
vQuery->vt = VT_ARRAY|VT_VARIANT;
vQuery->parray = pSA;
return S_OK;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐