questo funziona correttamente:
codice:
LONG lstart, lend;
LONG idx = -1;
LONG nPos;
HRESULT hr;
BSTR* pbstr;
hr = SafeArrayGetLBound( sa, 1, &lstart );
if(FAILED(hr)) return ;
hr = SafeArrayGetUBound( sa, 1, &lend );
if(FAILED(hr)) return ;
hr = SafeArrayAccessData(sa,(void HUGEP**)&pbstr);
if(SUCCEEDED(hr))
{
for(idx=lstart; idx <= lend; idx++)
{
CComBSTR s;
s = pbstr[idx];
if(!containsElement(pArray,s.Copy()) && s != "")
pArray->Add(s.Copy());
}
hr = SafeArrayUnaccessData(sa);
if(FAILED(hr)) return ;
}
else
return ;
solo che non ho capito cosa fa questa riga:
hr = SafeArrayAccessData(sa,(void HUGEP**)&pbstr);
cos è HUGEP?
Grazie.