using System.Collections.Generic;
namespace BurnOutSharp.Models.InstallShieldCabinet
{
///
public sealed class Header
{
// TODO: Move to wrapper, when exists
public int MajorVersion
{
get
{
uint majorVersion = CommonHeader.Version;
if (majorVersion >> 24 == 1)
{
majorVersion = (majorVersion >> 12) & 0x0F;
}
else if (majorVersion >> 24 == 2 || majorVersion >> 24 == 4)
{
majorVersion = majorVersion & 0xFFFF;
if (majorVersion != 0)
majorVersion /= 100;
}
return (int)majorVersion;
}
}
#region Headers
public CommonHeader CommonHeader { get; set; }
public CabDescriptor CabinetDescriptor { get; set; }
#endregion
#region File Descriptors
public uint[] FileDescriptorOffsets { get; set; }
public FileDescriptor[] DirectoryDescriptors { get; set; }
public FileDescriptor[] FileDescriptors { get; set; }
#endregion
#region File Groups
public Dictionary FileGroupOffsets { get; set; }
public FileGroup[] FileGroups { get; set; }
#endregion
#region Components
public Dictionary ComponentOffsets { get; set; }
public Component[] Components { get; set; }
#endregion
}
}