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, } }