2011-06-30 6 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は配列記述子を指していません。

関連する問題