/// <summary> /// Deserialize fields from a FastTransferStream. /// </summary> /// <param name="stream">A FastTransferStream.</param> public override void Deserialize(FastTransferStream stream) { // Actual stream deserialization: // folderContent = propList [PidTagEcWarning] // ( (*(*PidTagFXDelProp PidTagNewFXFolder)) / folderMessages ) // [ *PidTagFXDelProp *SubFolder ] this.warningCode = null; this.fxdelPropList = new List<uint>(); this.newFXFolderList = new List<Tuple<List<uint>, MS_OXCFXICS.FolderReplicaInfo>>(); this.propList = new PropList(stream); if (!stream.IsEndOfStream) { uint marker = stream.VerifyUInt32(); if (marker == (uint)MetaProperties.PidTagEcWarning) { marker = stream.ReadUInt32(); this.warningCode = stream.ReadUInt32(); marker = stream.VerifyUInt32(); } long lastPosi = stream.Position; while (stream.VerifyMetaProperty(MetaProperties.PidTagFXDelProp) || stream.VerifyMetaProperty(MetaProperties.PidTagNewFXFolder)) { lastPosi = stream.Position; List<uint> tempFXdel = new List<uint>(); while (stream.VerifyMetaProperty(MetaProperties.PidTagFXDelProp)) { stream.ReadMetaProperty(MetaProperties.PidTagFXDelProp); uint prop = stream.ReadUInt32(); tempFXdel.Add(prop); } if (!stream.IsEndOfStream) { marker = stream.VerifyUInt32(); } if (marker == (uint)MetaProperties.PidTagNewFXFolder) { marker = stream.ReadUInt32(); stream.ReadUInt32(); FolderReplicaInfo fri = new FolderReplicaInfo(stream); this.newFXFolderList.Add( new Tuple<List<uint>, FolderReplicaInfo>( tempFXdel, fri)); } else { stream.Position = lastPosi; marker = stream.VerifyUInt32(); break; } } if (FolderMessages.Verify(stream)) { this.folderMessages = new FolderMessages(stream); } this.subFolders = new List<SubFolder>(); while (stream.VerifyMetaProperty(MetaProperties.PidTagFXDelProp)) { stream.ReadMetaProperty(MetaProperties.PidTagFXDelProp); uint prop = stream.ReadUInt32(); this.fxdelPropList.Add(prop); } while (SubFolder.Verify(stream)) { this.subFolders.Add(new SubFolder(stream)); } } }
/// <summary> /// Deserialize fields from a FastTransferStream. /// </summary> /// <param name="stream">A FastTransferStream.</param> public override void Deserialize(FastTransferStream stream) { // Actual stream deserialization: // folderContent = propList [PidTagEcWarning] // ( (*(*PidTagFXDelProp PidTagNewFXFolder)) / folderMessages ) // [ *PidTagFXDelProp *SubFolder ] this.warningCode = null; this.fxdelPropList = new List <uint>(); this.newFXFolderList = new List <Tuple <List <uint>, MS_OXCFXICS.FolderReplicaInfo> >(); this.propList = new PropList(stream); if (!stream.IsEndOfStream) { uint marker = stream.VerifyUInt32(); if (marker == (uint)MetaProperties.PidTagEcWarning) { marker = stream.ReadUInt32(); this.warningCode = stream.ReadUInt32(); marker = stream.VerifyUInt32(); } long lastPosi = stream.Position; while (stream.VerifyMetaProperty(MetaProperties.PidTagFXDelProp) || stream.VerifyMetaProperty(MetaProperties.PidTagNewFXFolder)) { lastPosi = stream.Position; List <uint> tempFXdel = new List <uint>(); while (stream.VerifyMetaProperty(MetaProperties.PidTagFXDelProp)) { stream.ReadMetaProperty(MetaProperties.PidTagFXDelProp); uint prop = stream.ReadUInt32(); tempFXdel.Add(prop); } if (!stream.IsEndOfStream) { marker = stream.VerifyUInt32(); } if (marker == (uint)MetaProperties.PidTagNewFXFolder) { marker = stream.ReadUInt32(); stream.ReadUInt32(); FolderReplicaInfo fri = new FolderReplicaInfo(stream); this.newFXFolderList.Add( new Tuple <List <uint>, FolderReplicaInfo>( tempFXdel, fri)); } else { stream.Position = lastPosi; marker = stream.VerifyUInt32(); break; } } if (FolderMessages.Verify(stream)) { this.folderMessages = new FolderMessages(stream); } this.subFolders = new List <SubFolder>(); while (stream.VerifyMetaProperty(MetaProperties.PidTagFXDelProp)) { stream.ReadMetaProperty(MetaProperties.PidTagFXDelProp); uint prop = stream.ReadUInt32(); this.fxdelPropList.Add(prop); } while (SubFolder.Verify(stream)) { this.subFolders.Add(new SubFolder(stream)); } } }