public string this[int index] { get { IntPtr ptr = SprExport.Spr_vector_get_string(this, index); string bstr = Marshal.PtrToStringBSTR(ptr); Marshal.FreeBSTR(ptr); return(bstr); } set { IntPtr pbstr = Marshal.StringToBSTR(value); SprExport.Spr_vector_set_string(this, index, pbstr); Marshal.FreeBSTR(pbstr); } }