using System; using System.Collections.Generic; using System.Text; using System.IO; namespace HH.WMS.Utils.ExcelLibrary.BinaryDrawingFormat { public partial class MsofbtContainer : EscherRecord { public List EscherRecords = new List(); public override void Decode() { MemoryStream stream = new MemoryStream(Data); EscherRecords.Clear(); while (stream.Position < stream.Length) { EscherRecord record = EscherRecord.Read(stream); record.Decode(); EscherRecords.Add(record); } } public override void Encode() { MemoryStream stream = new MemoryStream(); BinaryWriter writer = new BinaryWriter(stream); foreach (EscherRecord record in EscherRecords) { record.Encode(); record.Write(writer); } this.Data = stream.ToArray(); this.Size = (UInt32)Data.Length; } public TRecord FindChild() where TRecord : EscherRecord { foreach (EscherRecord record in EscherRecords) { if (record is TRecord) { return record as TRecord; } } return null; } public List FindChildren() where TRecord : EscherRecord { List children = new List(); foreach (EscherRecord record in EscherRecords) { if (record is TRecord) { children.Add(record as TRecord); } } return children; } } }