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