namespace SabreTools.Models.PortableExecutable { /// /// Each directory table is followed by a series of directory entries that /// give the name or identifier (ID) for that level (Type, Name, or Language /// level) and an address of either a data description or another directory /// table. If the address points to a data description, then the data is a /// leaf in the tree. If the address points to another directory table, /// then that table lists directory entries at the next level down. /// /// Each resource directory table has the following format. This data /// structure should be considered the heading of a table because the table /// actually consists of directory entries. /// /// public sealed class ResourceDirectoryTable { /// /// Resource flags. This field is reserved for future use. It is currently /// set to zero. /// public uint Characteristics { get; set; } /// /// The time that the resource data was created by the resource compiler. /// public uint TimeDateStamp { get; set; } /// /// The major version number, set by the user. /// public ushort MajorVersion { get; set; } /// /// The minor version number, set by the user. /// public ushort MinorVersion { get; set; } /// /// The number of directory entries immediately following the table that use /// strings to identify Type, Name, or Language entries (depending on the /// level of the table). /// public ushort NumberOfNameEntries { get; set; } /// /// The number of directory entries immediately following the Name entries that /// use numeric IDs for Type, Name, or Language entries. /// public ushort NumberOfIDEntries { get; set; } /// /// Directory entries immediately following the table that use /// strings to identify Type, Name, or Language entries (depending on the /// level of the table). /// #if NET48 public ResourceDirectoryEntry[] Entries { get; set; } #else public ResourceDirectoryEntry?[]? Entries { get; set; } #endif } }