using System.Collections.Generic; namespace SabreTools.Models.NewExecutable { /// /// The segmented EXE header contains general information about the EXE /// file and contains information on the location and size of the other /// sections. The Windows loader copies this section, along with other /// data, into the module table in the system data. The module table is /// internal data used by the loader to manage the loaded executable /// modules in the system and to support dynamic linking. /// /// public sealed class Executable { /// /// MS-DOS executable stub /// #if NET48 public MSDOS.Executable Stub { get; set; } #else public MSDOS.Executable? Stub { get; set; } #endif /// /// New Executable header /// #if NET48 public ExecutableHeader Header { get; set; } #else public ExecutableHeader? Header { get; set; } #endif /// /// Segment table /// #if NET48 public SegmentTableEntry[] SegmentTable { get; set; } #else public SegmentTableEntry?[]? SegmentTable { get; set; } #endif /// /// Resource table /// #if NET48 public ResourceTable ResourceTable { get; set; } #else public ResourceTable? ResourceTable { get; set; } #endif /// /// Resident-Name table /// #if NET48 public ResidentNameTableEntry[] ResidentNameTable { get; set; } #else public ResidentNameTableEntry?[]? ResidentNameTable { get; set; } #endif /// /// Module-Reference table /// #if NET48 public ModuleReferenceTableEntry[] ModuleReferenceTable { get; set; } #else public ModuleReferenceTableEntry?[]? ModuleReferenceTable { get; set; } #endif /// /// Imported-Name table /// #if NET48 public Dictionary ImportedNameTable { get; set; } #else public Dictionary? ImportedNameTable { get; set; } #endif /// /// Entry table /// #if NET48 public EntryTableBundle[] EntryTable { get; set; } #else public EntryTableBundle?[]? EntryTable { get; set; } #endif /// /// Nonresident-Name table /// #if NET48 public NonResidentNameTableEntry[] NonResidentNameTable { get; set; } #else public NonResidentNameTableEntry?[]? NonResidentNameTable { get; set; } #endif } }