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