2011-06-30 50 views
0

将下面的代码工作,如果安全数组数要返回为零?我应该做别的吗?安全数组 - 设置数量为零

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

回答

2

pArrayLPSAFEARRAY和应被视为这样。因此您需要SAFEARRAY函数(宏)。 SAFEARRAY没有“count”的概念,因此它是一个可变维数组。一维SAFEARRAY可具有大小0,但2D SAFEARRAY可具有大小0x0(或1x0)。

特别是,MSDN文档VT_ARRAY作为“parray中的指针指向数组描述符”,但NULL不指向数组描述符。