namespace SabreTools.Data.Models.WiseInstaller
{
///
/// The CharacterSet Enumeration defines the possible sets of
/// character glyphs that are defined in fonts for graphics output.
///
///
public enum CharacterSet : uint
{
ANSI_CHARSET = 0x00000000,
DEFAULT_CHARSET = 0x00000001,
SYMBOL_CHARSET = 0x00000002,
MAC_CHARSET = 0x0000004D,
SHIFTJIS_CHARSET = 0x00000080,
HANGUL_CHARSET = 0x00000081,
JOHAB_CHARSET = 0x00000082,
GB2312_CHARSET = 0x00000086,
CHINESEBIG5_CHARSET = 0x00000088,
GREEK_CHARSET = 0x000000A1,
TURKISH_CHARSET = 0x000000A2,
VIETNAMESE_CHARSET = 0x000000A3,
HEBREW_CHARSET = 0x000000B1,
ARABIC_CHARSET = 0x000000B2,
BALTIC_CHARSET = 0x000000BA,
RUSSIAN_CHARSET = 0x000000CC,
THAI_CHARSET = 0x000000DE,
EASTEUROPE_CHARSET = 0x000000EE,
OEM_CHARSET = 0x000000FF
}
///
/// Endianness of the file(?)
///
///
public enum Endianness : ushort
{
BigEndian = 0x0008,
LittleEndian = 0x0800,
}
///
/// Opcodes for the state machine
///
///
public enum OperationCode : byte
{
///
/// Install a file
///
InstallFile = 0x00,
///
/// Invalid case
///
Invalid0x01 = 0x01,
///
/// No-op
///
/// Empty case in WISE0001.DLL
NoOp = 0x02,
///
/// Display Message
///
DisplayMessage = 0x03,
///
/// User-Defined Action Step
///
UserDefinedActionStep = 0x04,
///
/// Edit INI File
///
EditIniFile = 0x05,
///
/// Display billboard
///
DisplayBillboard = 0x06,
///
/// Execute Program
///
ExecuteProgram = 0x07,
///
/// End block
///
EndBlock = 0x08,
///
/// Call DLL Function
///
CallDllFunction = 0x09,
///
/// Edit Registry
///
EditRegistry = 0x0A,
///
/// Delete File
///
DeleteFile = 0x0B,
///
/// If/While Statement
///
IfWhileStatement = 0x0C,
///
/// Else Statement
///
ElseStatement = 0x0D,
///
/// Invalid case
///
Invalid0x0E = 0x0E,
///
/// Start User-Defined Action
///
StartUserDefinedAction = 0x0F,
///
/// End User-Defined Action
///
EndUserDefinedAction = 0x10,
///
/// Create Directory
///
CreateDirectory = 0x11,
///
/// Copy Local File
///
CopyLocalFile = 0x12,
///
/// Invalid case
///
Invalid0x13 = 0x13,
///
/// Custom Dialog Set
///
CustomDialogSet = 0x14,
///
/// Get System Information
///
GetSystemInformation = 0x15,
///
/// Get Temporary Filename
///
GetTemporaryFilename = 0x16,
///
/// Play Multimedia File
///
PlayMultimediaFile = 0x17,
///
/// New Event
///
/// Returns 0xffffffff in WISE0001.DLL
NewEvent = 0x18,
///
/// Install ODBC Driver
///
///
/// Available documentation does not mention this action,
/// instead saying that the driver needs to be installed
/// before configuration. This may be a holdover from
/// older versions that required driver installation.
///
InstallODBCDriver = 0x19,
///
/// Config ODBC Data Source
///
ConfigODBCDataSource = 0x1A,
///
/// Include Script(?)
///
///
/// Acts like a no-op in the parsed script. Includes a
/// "Pathname" to the file to be included.
///
/// In WISE0001.DLL, it seeks forward until it doesn't
/// find another 0x1B value again. Indicates that this
/// may not be "Include Script" as previously expected.
///
IncludeScript = 0x1B,
///
/// Add Text to INSTALL.LOG
///
AddTextToInstallLog = 0x1C,
///
/// Rename File/Directory
///
RenameFileDirectory = 0x1D,
///
/// Open/Close Install.log
///
OpenCloseInstallLog = 0x1E,
///
/// Invalid case
///
Invalid0x1F = 0x1F,
///
/// Invalid case
///
Invalid0x20 = 0x20,
///
/// Invalid case
///
Invalid0x21 = 0x21,
///
/// Invalid case
///
Invalid0x22 = 0x22,
///
/// ElseIf Statement
///
ElseIfStatement = 0x23,
///
/// Enable repair?
///
///
/// The flag used by this and seems
/// to only be referenced in contexts where there are registry
/// keys read and written, specifically about repair.
///
Unknown0x24 = 0x24,
///
/// Disable repair?
///
///
/// The flag used by this and seems
/// to only be referenced in contexts where there are registry
/// keys read and written, specifically about repair.
///
Unknown0x25 = 0x25,
// Check in WISE0001.DLL suggests that there could be up
// to opcode 0x3F. If the opcode is greater than 0x3F,
// then the installation aborts with 0xfffffffe.
//
// Opcode 0x3F returns a value of 0xffffffff.
}
///
/// Wise installer overlay header flags
///
///
public enum OverlayHeaderFlags : uint
{
///
/// This value is checked for explicitly. If this value
/// and are both not
/// set, then it shows the commandline when silent mode
/// is disabled.
///
/// If just this value is set, the bottom of the window
/// is adjusted by (MainWindowBottom * 3) / 4 and then
/// displays the window with the current size.
///
WISE_FLAG_UNKNOWN_0 = 0x00000001,
///
/// This value is checked for explicitly. If this value
/// and not is set
/// and is set and
/// the silent mode flag is not enabled, it runs a
/// function. Maybe debug window?
///
/// If this value and
/// are both not set, then it displays the window
/// maximized.
///
/// If just this value is set and silent mode is enabled,
/// the position of the window is set to full screen
/// but the window is not shown.
///
WISE_FLAG_UNKNOWN_1 = 0x00000002,
WISE_FLAG_UNKNOWN_2 = 0x00000004,
///
/// Enable fullscreen installer
///
///
/// If this flag is enabled, it sets the following window flags:
/// WS_BORDER | WS_DLGFRAME | WS_SYSMENU | WS_MAXIMIZEBOX | WS_TILED
///
/// If this flag is disabled, it sets the following window flags:
/// WS_POPUP | WS_SIZEBOX
///
WISE_FLAG_FULLSCREEN = 0x00000008,
///
/// Seen in hluplink.exe, Swat 3 and glsetup.exe
///
WISE_FLAG_UNKNOWN_4 = 0x00000010,
WISE_FLAG_UNKNOWN_5 = 0x00000020,
WISE_FLAG_UNKNOWN_6 = 0x00000040,
///
/// This value is checked for explicitly. If this value is
/// set and the commandline doesn't specify silent mode
/// and the first byte of the flags (f & 3 != 2), it runs
/// a function. Maybe debug window?
///
WISE_FLAG_UNKNOWN_7 = 0x00000080,
///
/// Indicates that PKZIP containers are used
///
WISE_FLAG_PK_ZIP = 0x00000100,
WISE_FLAG_UNKNOWN_9 = 0x00000200,
WISE_FLAG_UNKNOWN_10 = 0x00000400,
///
/// May be related to requireAdministrator
///
WISE_FLAG_UNKNOWN_11 = 0x00000800,
///
/// This value is checked for explicitly
///
WISE_FLAG_UNKNOWN_12 = 0x00001000,
WISE_FLAG_UNKNOWN_13 = 0x00002000,
WISE_FLAG_UNKNOWN_14 = 0x00004000,
WISE_FLAG_UNKNOWN_15 = 0x00008000,
///
/// May be related to requireAdministrator
///
WISE_FLAG_UNKNOWN_16 = 0x00010000,
WISE_FLAG_UNKNOWN_17 = 0x00020000,
WISE_FLAG_UNKNOWN_18 = 0x00040000,
///
/// Only seen set in Wild Wheels
///
WISE_FLAG_UNKNOWN_19 = 0x00080000,
WISE_FLAG_UNKNOWN_20 = 0x00100000,
WISE_FLAG_UNKNOWN_21 = 0x00200000,
///
/// Only seen in glsetup.exe
///
WISE_FLAG_UNKNOWN_22 = 0x00400000,
WISE_FLAG_UNKNOWN_23 = 0x00800000,
WISE_FLAG_UNKNOWN_24 = 0x01000000,
WISE_FLAG_UNKNOWN_25 = 0x02000000,
WISE_FLAG_UNKNOWN_26 = 0x04000000,
WISE_FLAG_UNKNOWN_27 = 0x08000000,
WISE_FLAG_UNKNOWN_28 = 0x10000000,
WISE_FLAG_UNKNOWN_29 = 0x20000000,
///
/// If enabled, sets the same flag as /M4 commandline
///
///
/// The /M4 commandline parameter, this flag, and then
/// some value (DAT_00404270) being 0 all lead to the
/// same outcome. The set of installers that include
/// this flag need to be further analyzed to see what
/// possible files are omitted if this flag is set.
///
/// Preliminary inspection of output files does not
/// show any notable missing files. It is very possible
/// that this represents a file that is not currently
/// extracted.
///
WISE_FLAG_FORCE_M4 = 0x40000000,
WISE_FLAG_UNKNOWN_31 = 0x80000000,
}
}