diff --git a/SabreTools.Models/InstallShieldCabinet/Enums.cs b/SabreTools.Models/InstallShieldCabinet/Enums.cs
index cb52a39..643e3e2 100644
--- a/SabreTools.Models/InstallShieldCabinet/Enums.cs
+++ b/SabreTools.Models/InstallShieldCabinet/Enums.cs
@@ -12,6 +12,66 @@ namespace SabreTools.Models.InstallShieldCabinet
FILE_INVALID = 8,
}
+ /// i6comp02
+ [Flags]
+ public enum FileGroupAttributes : ushort
+ {
+ ///
+ /// Shared
+ ///
+ FGATTR_SHARED = 0x01,
+
+ ///
+ /// Encrypted
+ ///
+ FGATTR_ENCRYPTED = 0x02,
+
+ ///
+ /// Compressed
+ ///
+ FGATTR_COMPRESSED = 0x04,
+
+ ///
+ /// Self-Registering
+ ///
+ FGATTR_SELFREGISTER = 0x10,
+
+ ///
+ /// Potentially locked
+ ///
+ FGATTR_LOCKED = 0x20,
+
+ ///
+ /// Uninstall
+ ///
+ FGATTR_UNINSTALL = 0x40,
+ }
+
+ /// i6comp02
+ [Flags]
+ public enum FileGroupFlags : uint
+ {
+ ///
+ /// Always overwrite
+ ///
+ FGDESC_ALWAYS_OVERWRITE = 0x001,
+
+ ///
+ /// Never overwrite
+ ///
+ FGDESC_NEVER_OVERWRITE = 0x002,
+
+ ///
+ /// Overwrite if newer date
+ ///
+ FGDESC_NEWER_DATE = 0x020,
+
+ ///
+ /// Overwrite if newer version
+ ///
+ FGDESC_NEWER_VERSION = 0x200,
+ }
+
///
public enum LinkFlags : byte
{
diff --git a/SabreTools.Models/InstallShieldCabinet/FileGroup.cs b/SabreTools.Models/InstallShieldCabinet/FileGroup.cs
index aef4fe0..6b75db3 100644
--- a/SabreTools.Models/InstallShieldCabinet/FileGroup.cs
+++ b/SabreTools.Models/InstallShieldCabinet/FileGroup.cs
@@ -1,6 +1,7 @@
namespace SabreTools.Models.InstallShieldCabinet
{
///
+ /// Additional info from i6comp02
public sealed class FileGroup
{
///
@@ -18,35 +19,15 @@ namespace SabreTools.Models.InstallShieldCabinet
///
public uint ExpandedSize { get; set; }
- ///
- /// Reserved
- ///
- public byte[]? Reserved0 { get; set; }
-
///
/// Size of the compressed data
///
public uint CompressedSize { get; set; }
///
- /// Reserved
+ /// Attributes (junk2)
///
- public byte[]? Reserved1 { get; set; }
-
- ///
- /// Reserved
- ///
- public byte[]? Reserved2 { get; set; }
-
- ///
- /// Attribute(?)
- ///
- public ushort Attribute1 { get; set; }
-
- ///
- /// Attribute(?)
- ///
- public ushort Attribute2 { get; set; }
+ public FileGroupAttributes Attributes { get; set; }
///
/// Index of the first file
@@ -59,19 +40,19 @@ namespace SabreTools.Models.InstallShieldCabinet
public uint LastFile { get; set; }
///
- /// Unknown offset(?)
+ /// Unknown string offset
///
- public uint UnknownOffset { get; set; }
+ public uint UnknownStringOffset { get; set; }
///
- /// Var 4 offset(?)
+ /// Offset to the operating system (Var4)
///
- public uint Var4Offset { get; set; }
+ public uint OperatingSystemOffset { get; set; }
///
- /// Var 1 offset(?)
+ /// Offset to the language (Var1)
///
- public uint Var1Offset { get; set; }
+ public uint LanguageOffset { get; set; }
///
/// Offset to the HTTP location
@@ -84,43 +65,23 @@ namespace SabreTools.Models.InstallShieldCabinet
public uint FTPLocationOffset { get; set; }
///
- /// Misc offset(?)
+ /// Misc offset
///
public uint MiscOffset { get; set; }
- ///
- /// Var 2 offset(?)
- ///
- public uint Var2Offset { get; set; }
-
///
/// Offset to the target directory
///
public uint TargetDirectoryOffset { get; set; }
///
- /// Reserved
+ /// Overwrite setting flags
///
- public byte[]? Reserved3 { get; set; }
+ public FileGroupFlags OverwriteFlags { get; set; }
///
/// Reserved
///
- public byte[]? Reserved4 { get; set; }
-
- ///
- /// Reserved
- ///
- public byte[]? Reserved5 { get; set; }
-
- ///
- /// Reserved
- ///
- public byte[]? Reserved6 { get; set; }
-
- ///
- /// Reserved
- ///
- public byte[]? Reserved7 { get; set; }
+ public uint[]? Reserved { get; set; } = new uint[4];
}
}
\ No newline at end of file