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