2011-06-30 4 views
0

le code suivant fonctionnera-t-il, si le nombre de tableaux de coffre-fort à retourner est zéro? Devrais-je faire autre chose?Safe Array - Set count

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

Répondre

2

pArray est un LPSAFEARRAY et doivent être traités comme tels. Vous avez donc besoin des fonctions SAFEARRAY (macros). SAFEARRAY n'a pas un concept de "count" en tant que tel, c'est un tableau de dimension variable. Un SAFEARRAY unidimensionnel peut avoir la taille 0, mais un 2D SAFEARRAY aurait la taille 0x0 (ou 1x0).

En particulier, documents MSDN VT_ARRAY comme "Le pointeur dans parray pointe vers un descripteur de tableau", mais NULL ne pointe pas vers un descripteur de tableau.