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

ParseBinaryArray_r() public static method

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

            if (binaryArray.CValues == 0)
            {
                binaryArray.Lpbin = null;
            }
            else
            {
                if (AdapterHelper.Transport.ToLower(System.Globalization.CultureInfo.CurrentCulture) != "mapi_http")
                {
                    IntPtr baaddr = new IntPtr(Marshal.ReadInt32(ptr, sizeof(uint)));
                    binaryArray.Lpbin = new Binary_r[binaryArray.CValues];
                    for (uint i = 0; i < binaryArray.CValues; i++)
                    {
                        binaryArray.Lpbin[i] = ParseBinary_r(baaddr);
                        baaddr = new IntPtr(baaddr.ToInt32() + 8);
                    }
                }
                else
                {
                    binaryArray.Lpbin = new Binary_r[binaryArray.CValues];
                    for (uint i = 0; i < binaryArray.CValues; i++)
                    {
                        binaryArray.Lpbin[i] = ParseBinary_r(ptr);
                    }
                }
            }

            return binaryArray;
        }