public HeaderExtensionObject(TagLib.Asf.File file, long position) : base(file, position)
 {
     this.children = new List<TagLib.Asf.Object>();
     if (!base.Guid.Equals(TagLib.Asf.Guid.AsfHeaderExtensionObject))
     {
         throw new CorruptFileException("Object GUID incorrect.");
     }
     if (file.ReadGuid() != TagLib.Asf.Guid.AsfReserved1)
     {
         throw new CorruptFileException("Reserved1 GUID expected.");
     }
     if (file.ReadWord() != 6)
     {
         throw new CorruptFileException("Invalid reserved WORD. Expected '6'.");
     }
     uint num = file.ReadDWord();
     position += 0x2eL;
     while (num > 0)
     {
         TagLib.Asf.Object item = file.ReadObject(position);
         position += (long) item.OriginalSize;
         num -= (uint) item.OriginalSize;
         this.children.Add(item);
     }
 }