安全数组-设置计数为零

Safe Array - Set count zero

本文关键字:设置 数组 安全      更新时间:2023-10-16

如果要返回的安全数组计数为零,下面的代码会起作用吗?我还需要做什么吗?

HRESULT GetAlarms(FAULT_TYPE eAlarmType, long alarmLevel, VARIANT* pvarAlamLst)
{
   pvarAlamLst->vt = VT_ARRAY |VT_VARIANT;
   pvarAlamLst->parray = NULL;
   return S_OK;
}

pArrayLPSAFEARRAY,应按此处理。因此,您需要SAFEARRAY函数(宏(。SAFEARRAY没有"计数"的概念,它是一个可变维数组。一维SAFEARRAY可以具有大小0,但是2D SAFEARRAY将具有大小0x0(或1x0(。

特别是,MSDN将VT_ARRAY记录为"parray中的指针指向数组描述符",但NULL不指向数组描述符。