diff --git a/SabreTools.Serialization/Wrappers/InstallShieldCabinet.cs b/SabreTools.Serialization/Wrappers/InstallShieldCabinet.cs index 1d77b590..54c0307c 100644 --- a/SabreTools.Serialization/Wrappers/InstallShieldCabinet.cs +++ b/SabreTools.Serialization/Wrappers/InstallShieldCabinet.cs @@ -78,6 +78,12 @@ namespace SabreTools.Serialization.Wrappers /// Only used in multi-file public InstallShieldCabinet? Prev { get; set; } + /// + /// Volume index ID, 0 for headers + /// + /// Only used in multi-file + public ushort VolumeID { get; set; } + #endregion #region Constants @@ -196,7 +202,7 @@ namespace SabreTools.Serialization.Wrappers // Loop until there are no parts left bool iterate = true; InstallShieldCabinet? previous = null; - for (int i = 1; iterate; i++) + for (ushort i = 1; iterate; i++) { var file = OpenFileForReading(pattern, i, HEADER_SUFFIX); if (file != null) @@ -207,14 +213,21 @@ namespace SabreTools.Serialization.Wrappers if (file == null) break; - var header = Create(file); - if (header == null) + var current = Create(file); + if (current == null) break; + current.VolumeID = i; if (previous != null) - previous.Next = header; + { + previous.Next = current; + current.Prev = previous; + } else - previous = set = header; + { + set = current; + previous = current; + } } return set;