Penso che il problema sia in

codice:
hr = SafeArrayPutElement(psa, index, &v3.fltVal);