Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 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;
 }