mirror of
https://github.com/SabreTools/SabreTools.Models.git
synced 2026-09-23 15:16:14 +00:00
Correct info for IS-CAB file groups
This commit is contained in:
@@ -12,6 +12,66 @@ namespace SabreTools.Models.InstallShieldCabinet
|
||||
FILE_INVALID = 8,
|
||||
}
|
||||
|
||||
/// <remarks>i6comp02</remarks>
|
||||
[Flags]
|
||||
public enum FileGroupAttributes : ushort
|
||||
{
|
||||
/// <summary>
|
||||
/// Shared
|
||||
/// </summary>
|
||||
FGATTR_SHARED = 0x01,
|
||||
|
||||
/// <summary>
|
||||
/// Encrypted
|
||||
/// </summary>
|
||||
FGATTR_ENCRYPTED = 0x02,
|
||||
|
||||
/// <summary>
|
||||
/// Compressed
|
||||
/// </summary>
|
||||
FGATTR_COMPRESSED = 0x04,
|
||||
|
||||
/// <summary>
|
||||
/// Self-Registering
|
||||
/// </summary>
|
||||
FGATTR_SELFREGISTER = 0x10,
|
||||
|
||||
/// <summary>
|
||||
/// Potentially locked
|
||||
/// </summary>
|
||||
FGATTR_LOCKED = 0x20,
|
||||
|
||||
/// <summary>
|
||||
/// Uninstall
|
||||
/// </summary>
|
||||
FGATTR_UNINSTALL = 0x40,
|
||||
}
|
||||
|
||||
/// <remarks>i6comp02</remarks>
|
||||
[Flags]
|
||||
public enum FileGroupFlags : uint
|
||||
{
|
||||
/// <summary>
|
||||
/// Always overwrite
|
||||
/// </summary>
|
||||
FGDESC_ALWAYS_OVERWRITE = 0x001,
|
||||
|
||||
/// <summary>
|
||||
/// Never overwrite
|
||||
/// </summary>
|
||||
FGDESC_NEVER_OVERWRITE = 0x002,
|
||||
|
||||
/// <summary>
|
||||
/// Overwrite if newer date
|
||||
/// </summary>
|
||||
FGDESC_NEWER_DATE = 0x020,
|
||||
|
||||
/// <summary>
|
||||
/// Overwrite if newer version
|
||||
/// </summary>
|
||||
FGDESC_NEWER_VERSION = 0x200,
|
||||
}
|
||||
|
||||
/// <see href="https://github.com/twogood/unshield/blob/main/lib/cabfile.h"/>
|
||||
public enum LinkFlags : byte
|
||||
{
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
namespace SabreTools.Models.InstallShieldCabinet
|
||||
{
|
||||
/// <see href="https://github.com/twogood/unshield/blob/main/lib/libunshield.h"/>
|
||||
/// <remarks>Additional info from i6comp02</remarks>
|
||||
public sealed class FileGroup
|
||||
{
|
||||
/// <summary>
|
||||
@@ -18,35 +19,15 @@ namespace SabreTools.Models.InstallShieldCabinet
|
||||
/// </summary>
|
||||
public uint ExpandedSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public byte[]? Reserved0 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Size of the compressed data
|
||||
/// </summary>
|
||||
public uint CompressedSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// Attributes (junk2)
|
||||
/// </summary>
|
||||
public byte[]? Reserved1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public byte[]? Reserved2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Attribute(?)
|
||||
/// </summary>
|
||||
public ushort Attribute1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Attribute(?)
|
||||
/// </summary>
|
||||
public ushort Attribute2 { get; set; }
|
||||
public FileGroupAttributes Attributes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Index of the first file
|
||||
@@ -59,19 +40,19 @@ namespace SabreTools.Models.InstallShieldCabinet
|
||||
public uint LastFile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Unknown offset(?)
|
||||
/// Unknown string offset
|
||||
/// </summary>
|
||||
public uint UnknownOffset { get; set; }
|
||||
public uint UnknownStringOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Var 4 offset(?)
|
||||
/// Offset to the operating system (Var4)
|
||||
/// </summary>
|
||||
public uint Var4Offset { get; set; }
|
||||
public uint OperatingSystemOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Var 1 offset(?)
|
||||
/// Offset to the language (Var1)
|
||||
/// </summary>
|
||||
public uint Var1Offset { get; set; }
|
||||
public uint LanguageOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the HTTP location
|
||||
@@ -84,43 +65,23 @@ namespace SabreTools.Models.InstallShieldCabinet
|
||||
public uint FTPLocationOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Misc offset(?)
|
||||
/// Misc offset
|
||||
/// </summary>
|
||||
public uint MiscOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Var 2 offset(?)
|
||||
/// </summary>
|
||||
public uint Var2Offset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the target directory
|
||||
/// </summary>
|
||||
public uint TargetDirectoryOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// Overwrite setting flags
|
||||
/// </summary>
|
||||
public byte[]? Reserved3 { get; set; }
|
||||
public FileGroupFlags OverwriteFlags { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public byte[]? Reserved4 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public byte[]? Reserved5 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public byte[]? Reserved6 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public byte[]? Reserved7 { get; set; }
|
||||
public uint[]? Reserved { get; set; } = new uint[4];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user