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

ParseLongArray_r() public static method

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

            if (longArray.CValues == 0)
            {
                longArray.Lpl = null;
            }
            else
            {
                if (AdapterHelper.Transport.ToLower(System.Globalization.CultureInfo.CurrentCulture) != "mapi_http")
                {
                    IntPtr laaddr = new IntPtr(Marshal.ReadInt32(ptr, sizeof(uint)));
                    ptr = laaddr;
                }

                longArray.Lpl = new int[longArray.CValues];
                int offset = 0;
                for (uint i = 0; i < longArray.CValues; i++, offset += sizeof(int))
                {
                    longArray.Lpl[i] = Marshal.ReadInt32(ptr, offset);
                }
            }

            return longArray;
        }