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