public CallResult <Trade[]> QueryTrades(string account_id, string[] codes) { IntPtr r = TqapiDll.tapi_query_trades(this.handle, account_id, codes_to_str(codes)); var cr = Marshal.PtrToStructure <TqapiDll.CallResultWrap>(r); CallResult <Trade[]> ret; if (cr.value_type != 0) { ret = new CallResult <Trade[]>(TqapiDll.CopyPointerArray <Trade>(cr)); } else { ret = new CallResult <Trade[]>(cr.msg); } TqapiDll.destroy_callresult(r); return(ret); }