protected override void LoadInternal(VirtualReader rdr)
        {
            ImportDirectoryEntry entry;

            while (true)
            {
                entry = new ImportDirectoryEntry(this);
                Rva ltAdr = rdr.ReadRva();
                entry.DateTimeStamp  = rdr.ReadStamp();
                entry.ForwarderChain = rdr.ReadUInt32();
                Rva nAdr  = rdr.ReadRva();
                Rva atAdr = rdr.ReadRva();
                if (ltAdr == 0 && atAdr == 0 && nAdr == 0)
                {
                    break;
                }

                rdr.SaveLocation();
                rdr.SetPosition(ltAdr);
                entry.LookupTable = new ImportFunctionTable(entry);
                entry.LookupTable.Load(rdr, false);
                rdr.LoadLocation();

                rdr.SaveLocation();
                rdr.SetPosition(nAdr);
                entry.Name = rdr.ReadString();
                rdr.LoadLocation();

                rdr.SaveLocation();
                rdr.SetPosition(atAdr);
                entry.AddressTable = new ImportFunctionTable(entry);
                entry.AddressTable.Load(rdr, StampsHelper.UIntFromStamp(entry.DateTimeStamp) == 0xffffffff);
                rdr.LoadLocation();

                items.Add(entry);
            }
        }
 public void Insert(int index, ImportDirectoryEntry item)
 {
     items.Insert(index, item);
 }
 public int IndexOf(ImportDirectoryEntry item)
 {
     return(items.IndexOf(item));
 }
 public bool Remove(ImportDirectoryEntry item)
 {
     return(items.Remove(item));
 }
 public bool Contains(ImportDirectoryEntry item)
 {
     return(items.Contains(item));
 }
 public void Add(ImportDirectoryEntry item)
 {
     items.Add(item);
 }
 public ImportFunctionTable(ImportDirectoryEntry entry)
 {
     this.entry = entry;
 }