com组件传递数组给容器

VARIANT data;
SAFEARRAY
* sa;
sa
=::SafeArrayCreateVector(VT_VARIANT,0,nDataLen);
for (int i=0;i<nDataLen;i++)
{
if(::SafeArrayPutElement(sa,(LONG *)&i,(void*)&CComVariant(pData[i]))!=S_OK)
{
return FALSE;
}
}
::VariantClear(
&data);
::VariantInit(
&data);
data.vt
=VT_ARRAY|VT_VARIANT;
::SafeArrayCopy(sa,
&(data.parray));
::SafeArrayDestroy(sa);

posted @ 2011-08-11 15:27  银翼的魔术师  阅读(286)  评论(0编辑  收藏  举报