using System; namespace SabreTools.Data.Models.InstallShieldCabinet { /// public sealed class Component { /// /// Offset to the component identifier /// public uint IdentifierOffset { get; set; } /// /// Component identifier /// public string Identifier { get; set; } = string.Empty; /// /// Offset to the component descriptor /// public uint DescriptorOffset { get; set; } /// /// Offset to the display name /// public uint DisplayNameOffset { get; set; } /// /// Display name /// public string DisplayName { get; set; } = string.Empty; /// /// Component status /// public ComponentStatus Status { get; set; } /// /// Offset to the password /// public uint PasswordOffset { get; set; } /// /// Misc offset /// public uint MiscOffset { get; set; } /// /// Component index /// public ushort ComponentIndex { get; set; } /// /// Offset to the component name /// public uint NameOffset { get; set; } /// /// Component name /// public string Name { get; set; } = string.Empty; /// /// Offset to the CD-ROM folder /// public uint CDRomFolderOffset { get; set; } /// /// Offset to the HTTP location /// public uint HTTPLocationOffset { get; set; } /// /// Offset to the FTP location /// public uint FTPLocationOffset { get; set; } /// /// Unknown GUIDs /// public Guid[] Guid { get; set; } = new Guid[2]; /// /// Offset to the component CLSID /// public uint CLSIDOffset { get; set; } /// /// Component CLSID /// public Guid CLSID { get; set; } /// /// Reserved /// /// 28 bytes, see CompAttrs public byte[] Reserved2 { get; set; } = new byte[28]; /// /// Reserved /// /// 2 bytes (<= v5), 1 byte (> v5) public byte[] Reserved3 { get; set; } = []; /// /// Number of depends(?) /// public ushort DependsCount { get; set; } /// /// Offset to depends(?) /// public uint DependsOffset { get; set; } /// /// Number of file groups /// public uint FileGroupCount { get; set; } /// /// Offset to the file group names /// public uint FileGroupNamesOffset { get; set; } /// /// File group names /// public string[] FileGroupNames { get; set; } = []; /// /// Number of X3(?) /// public ushort X3Count { get; set; } /// /// Offset to X3(?) /// public uint X3Offset { get; set; } /// /// Number of sub-components /// public ushort SubComponentsCount { get; set; } /// /// Offset to the sub-components /// public uint SubComponentsOffset { get; set; } /// /// Offset to the next component /// public uint NextComponentOffset { get; set; } /// /// Offset to on installing text /// public uint OnInstallingOffset { get; set; } /// /// Offset to on installed text /// public uint OnInstalledOffset { get; set; } /// /// Offset to on uninstalling text /// public uint OnUninstallingOffset { get; set; } /// /// Offset to on uninstalled text /// public uint OnUninstalledOffset { get; set; } } }