/// <summary> /// Parse next object from a FastTransferStream. /// </summary> /// <param name="stream">A FastTransferStream</param> public override void Parse(FastTransferStream stream) { base.Parse(stream); PropertyDataType type = (PropertyDataType)this.PropType; this.Length = stream.ReadInt16(); switch (type) { case PropertyDataType.PtypMultipleInteger16: this.FixedSizeValueList = stream.ReadBlocks(this.Length, 2); break; case PropertyDataType.PtypMultipleInteger32: this.FixedSizeValueList = stream.ReadBlocks(this.Length, 4); break; case PropertyDataType.PtypMultipleFloating32: this.FixedSizeValueList = stream.ReadBlocks(this.Length, 4); break; case PropertyDataType.PtypMultipleFloating64: this.FixedSizeValueList = stream.ReadBlocks(this.Length, 8); break; case PropertyDataType.PtypMultipleCurrency: this.FixedSizeValueList = stream.ReadBlocks(this.Length, 8); break; case PropertyDataType.PtypMultipleFloatingTime: this.FixedSizeValueList = stream.ReadBlocks(this.Length, 8); break; case PropertyDataType.PtypMultipleInteger64: this.FixedSizeValueList = stream.ReadBlocks(this.Length, 8); break; case PropertyDataType.PtypMultipleTime: this.FixedSizeValueList = stream.ReadBlocks(this.Length, 8); break; case PropertyDataType.PtypMultipleGuid: this.FixedSizeValueList = stream.ReadBlocks(this.Length, Guid.Empty.ToByteArray().Length); break; case PropertyDataType.PtypMultipleBinary: this.VarSizeValueList = stream.ReadLengthBlocks(this.Length); break; case PropertyDataType.PtypMultipleString: this.VarSizeValueList = stream.ReadLengthBlocks(this.Length); break; case PropertyDataType.PtypMultipleString8: this.VarSizeValueList = stream.ReadLengthBlocks(this.Length); break; } }
/// <summary> /// Parse next object from a FastTransferStream. /// </summary> /// <param name="stream">A FastTransferStream.</param> public override void Parse(FastTransferStream stream) { base.Parse(stream); PropertyDataType type = (PropertyDataType)this.PropType; switch (type) { case PropertyDataType.PtypInteger16: this.FixedValue = stream.ReadInt16(); break; case PropertyDataType.PtypInteger32: if (this.PropInfo.PropID == 0x67A4) { CN tmpCN = new CN(); tmpCN.Parse(stream); this.FixedValue = tmpCN; } this.FixedValue = stream.ReadInt32(); break; case PropertyDataType.PtypFloating32: this.FixedValue = stream.ReadFloating32(); break; case PropertyDataType.PtypFloating64: this.FixedValue = stream.ReadFloating64(); break; case PropertyDataType.PtypCurrency: this.FixedValue = stream.ReadCurrency(); break; case PropertyDataType.PtypFloatingTime: this.FixedValue = stream.ReadFloatingTime(); break; case PropertyDataType.PtypBoolean: this.FixedValue = stream.ReadBoolean(); break; case PropertyDataType.PtypInteger64: if (base.PropInfo.PropID == 0x6714) { CN tmpCN = new CN(); tmpCN.Parse(stream); this.FixedValue = tmpCN; } this.FixedValue = stream.ReadInt64(); break; case PropertyDataType.PtypTime: this.FixedValue = stream.ReadTime(); break; case PropertyDataType.PtypGuid: this.FixedValue = stream.ReadGuid(); break; } }