Microsoft.Protocols.TestSuites.MS_OXORULE.AdapterHelper.ParseFlatUIDArray_r C# (CSharp) Method

ParseFlatUIDArray_r() public static method

Parse FlatUIDArray_r structure.
public static ParseFlatUIDArray_r ( IntPtr ptr ) : FlatUIDArray_r
ptr System.IntPtr A pointer points to the allocated memory.
return FlatUIDArray_r
        public static FlatUIDArray_r ParseFlatUIDArray_r(IntPtr ptr)
        {
            FlatUIDArray_r fuida_r = new FlatUIDArray_r
            {
                CValues = (uint)Marshal.ReadInt32(ptr)
            };

            if (fuida_r.CValues == 0)
            {
                fuida_r.Lpguid = null;
            }
            else
            {
                fuida_r.Lpguid = new FlatUID_r[fuida_r.CValues];
                IntPtr fuidaddr = new IntPtr(Marshal.ReadInt32(ptr, sizeof(uint)));
                for (uint i = 0; i < fuida_r.CValues; i++)
                {
                    fuida_r.Lpguid[i] = ParseFlatUID_r(new IntPtr(Marshal.ReadInt32(fuidaddr)));
                    fuidaddr = new IntPtr(fuidaddr.ToInt32() + 4);
                }
            }

            return fuida_r;
        }