grazie , un ultima cosa:
per calcolare il numero di elementi nell array faccio cosi' :
	codice:
	
//creo il safearray
SAFEARRAYBOUND aDim[1];      
aDim[0].lLbound= 1;     
aDim[0].cElements= 1;   
  
SAFEARRAY* pSAOffsetI = SafeArrayCreate(VT_BSTR, 1, aDim);   
           
  .........................CARICO SAFEARRAY...................
  
//trovo quanti elementi ha:
long lstart, lend =0;   
//inizio array elementi e fine array elementi   
hr = SafeArrayGetLBound( pSAOffsetI , 1, &lstart );   
hr = SafeArrayGetUBound( pSAOffsetI , 1, &lend );   
  
//n of elementi   
lElements =lend-lstart+1;
 
il problema è che quando faccio questo ciclo:
	codice:
	for(idx=0; idx < lElements - 1; idx++){
CString str = m_ComUtils->GetStringValueSA(sa,idx);
//per semplicità metto gli elementi in un array
pArray->add(str);
}
 
mi salta un elemento!!