usando questo codice le stringhe vengono lette correttamente :
HRESULT hr = S_OK;
for (long l = (pSA->rgsabound[0]).lLbound; l < ((pSA->rgsabound[0]).cElements + (pSA->rgsabound[0]).lLbound); l++)
{
long rg =0;
WCHAR *ptmpArr;
HRESULT hr = S_OK;
hr = SafeArrayGetElement(pSA,&rg,(void *)&ptmpArr);
if(hr == S_OK)
{
CString str=CString(ptmpArr);
if(!containsElement(pArray,str) && str != "")
pArray->Add(str);
}
SysFreeString(ptmpArr);
}
solo che a volte mi ritorna un errore ,questo:
Run-Time Check Failure #2 - Stack around the variable 'ptmpArr' was corrupted.
pensavo di aver risolto con SysFreeString , invece....