/// <summary>
        /// Parse the BinaryArray_r payload of session.
        /// </summary>
        /// <param name="s">The stream to parse</param>
        public override void Parse(Stream s)
        {
            base.Parse(s);
            byte temp = this.ReadByte();

            if (temp == 0xFF)
            {
                this.MagicNumber = temp;
            }
            else
            {
                s.Position -= 1;
            }

            this.CValues = this.ReadUint();
            List <Binary_r> temBytes = new List <Binary_r>();

            for (ulong i = 0; i < this.CValues; i++)
            {
                Binary_r br = new Binary_r();
                br.Parse(s);
                temBytes.Add(br);
            }

            this.Lpbin = temBytes.ToArray();
        }
 /// <summary>
 /// Parse the BinaryArray_r payload of session.
 /// </summary>
 /// <param name="s">The stream to parse</param>
 public override void Parse(Stream s)
 {
     base.Parse(s);
     byte temp = ReadByte();
     if (temp == 0xFF)
     {
         this.MagicNumber = temp;
     }
     else
     {
         s.Position -= 1;
     }
     this.cValues = ReadUint();
     List<Binary_r> temBytes = new List<Binary_r>();
     for (ulong i = 0; i < this.cValues; i++)
     {
         Binary_r br = new Binary_r();
         br.Parse(s);
         temBytes.Add(br);
     }
     this.lpbin = temBytes.ToArray();
 }
 /// <summary>
 /// Parse the PROP_VAL_UNION payload of session.
 /// </summary>
 /// <param name="s">The stream to parse</param>
 public override void Parse(Stream s)
 {
     base.Parse(s);
     switch (this.tag)
     {
         case 0x00000002:
             this.i = ReadINT16();
             break;
         case 0x00000003:
             this.l = ReadINT32();
             break;
         case 0x0000000B:
             this.b = ReadUshort();
             break;
         case 0x0000001E:
             this.lpszA = new String_r();
             this.lpszA.Parse(s);
             break;
         case 0x00000102:
             this.bin = new Binary_r();
             this.bin.Parse(s);
             break;
         case 0x0000001F:
             this.lpszW = new WString_r();
             this.lpszW.Parse(s);
             break;
         case 0x00000048:
             this.lpguid = new FlatUID_r();
             this.lpguid.Parse(s);
             break;
         case 0x00000040:
             this.ft = new PtypTime();
             this.ft.Parse(s);
             break;
         case 0x0000000A:
             this.err = ReadINT32();
             break;
         case 0x00001002:
             this.MVi = new ShortArray_r();
             this.MVi.Parse(s);
             break;
         case 0x00001003:
             this.MVl = new LongArray_r();
             this.MVl.Parse(s);
             break;
         case 0x0000101E:
             this.MVszA = new StringArray_r();
             this.MVszA.Parse(s);
             break;
         case 0x00001102:
             this.MVbin = new BinaryArray_r();
             this.MVbin.Parse(s);
             break;
         case 0x00001048:
             this.MVguid = new FlatUIDArray_r();
             this.MVguid.Parse(s);
             break;
         case 0x0000101F:
             this.MVszW = new WStringArray_r();
             this.MVszW.Parse(s);
             break;
         case 0x00001040:
             this.MVft = new DateTimeArray_r();
             this.MVft.Parse(s);
             break;
         case 0x00000001:
         case 0x0000000D:
             this.lReserved = ReadINT32();
             break;
         default:
             break;
     }
 }
        /// <summary>
        /// Parse the PROP_VAL_UNION payload of session.
        /// </summary>
        /// <param name="s">The stream to parse</param>
        public override void Parse(Stream s)
        {
            base.Parse(s);
            switch (this.tag)
            {
            case 0x00000002:
                this.i = ReadINT16();
                break;

            case 0x00000003:
                this.l = ReadINT32();
                break;

            case 0x0000000B:
                this.b = ReadUshort();
                break;

            case 0x0000001E:
                this.lpszA = new String_r();
                this.lpszA.Parse(s);
                break;

            case 0x00000102:
                this.bin = new Binary_r();
                this.bin.Parse(s);
                break;

            case 0x0000001F:
                this.lpszW = new WString_r();
                this.lpszW.Parse(s);
                break;

            case 0x00000048:
                this.lpguid = new FlatUID_r();
                this.lpguid.Parse(s);
                break;

            case 0x00000040:
                this.ft = new PtypTime();
                this.ft.Parse(s);
                break;

            case 0x0000000A:
                this.err = ReadINT32();
                break;

            case 0x00001002:
                this.MVi = new ShortArray_r();
                this.MVi.Parse(s);
                break;

            case 0x00001003:
                this.MVl = new LongArray_r();
                this.MVl.Parse(s);
                break;

            case 0x0000101E:
                this.MVszA = new StringArray_r();
                this.MVszA.Parse(s);
                break;

            case 0x00001102:
                this.MVbin = new BinaryArray_r();
                this.MVbin.Parse(s);
                break;

            case 0x00001048:
                this.MVguid = new FlatUIDArray_r();
                this.MVguid.Parse(s);
                break;

            case 0x0000101F:
                this.MVszW = new WStringArray_r();
                this.MVszW.Parse(s);
                break;

            case 0x00001040:
                this.MVft = new DateTimeArray_r();
                this.MVft.Parse(s);
                break;

            case 0x00000001:
            case 0x0000000D:
                this.lReserved = ReadINT32();
                break;

            default:
                break;
            }
        }