public static PcsPanApiRes GetPcsPanApiResFromPtr(IntPtr ptr) { if (ptr == IntPtr.Zero) { return new PcsPanApiRes() { error = -1 } } ; NativePcsPanApiRes nlist = (NativePcsPanApiRes)Marshal.PtrToStructure(ptr, typeof(NativePcsPanApiRes)); if (nlist.error != 0) { return new PcsPanApiRes() { error = nlist.error } } ; PcsPanApiRes res = new PcsPanApiRes() { error = nlist.error }; IntPtr p = nlist.info_list; List <PcsPanApiResInfo> filist = new List <PcsPanApiResInfo>(); for (int i = 0; p != IntPtr.Zero; i++) { NativePcsPanApiResInfoList il = (NativePcsPanApiResInfoList)Marshal.PtrToStructure(p, typeof(NativePcsPanApiResInfoList)); filist.Add(new PcsPanApiResInfo(il.info)); p = il.next; } res.info_list = filist.ToArray(); return(res); }
public static PcsPanApiRes GetPcsPanApiResFromPtr(IntPtr ptr) { if (ptr == IntPtr.Zero) return new PcsPanApiRes() { error = -1 }; NativePcsPanApiRes nlist = (NativePcsPanApiRes)Marshal.PtrToStructure(ptr, typeof(NativePcsPanApiRes)); if (nlist.error != 0) return new PcsPanApiRes() { error = nlist.error }; PcsPanApiRes res = new PcsPanApiRes() { error = nlist.error }; IntPtr p = nlist.info_list; List<PcsPanApiResInfo> filist = new List<PcsPanApiResInfo>(); for (int i = 0; p != IntPtr.Zero; i++) { NativePcsPanApiResInfoList il = (NativePcsPanApiResInfoList)Marshal.PtrToStructure(p, typeof(NativePcsPanApiResInfoList)); filist.Add(new PcsPanApiResInfo(il.info)); p = il.next; } res.info_list = filist.ToArray(); return res; }