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;
}