Przeglądaj źródła

Merge branch 'main' into vcproj-update

Martijn Laan 1 rok temu
rodzic
commit
1a96ba4602

+ 1 - 1
CONTRIBUTING.md

@@ -58,4 +58,4 @@ To contribute translations please see https://jrsoftware.org/files/istrans/send.
 
 
 Please do NOT use GitHub's web editor to edit ANSI translations and create pull
 Please do NOT use GitHub's web editor to edit ANSI translations and create pull
 requests. This editor doesn't work since it automatically turns ANSI files into
 requests. This editor doesn't work since it automatically turns ANSI files into
-UTF8 files without a BOM which are not supported (only UTF8 with a BOM is).
+UTF8 files without a BOM which are not supported before Inno Setup 6.3.

+ 1 - 1
Components/FolderTreeView.pas

@@ -134,7 +134,7 @@ implementation
 }
 }
 
 
 uses
 uses
-  PathFunc, ShellApi, UxTheme, Types;
+  PathFunc, ShellApi, NewUxTheme, Types;
 
 
 const
 const
   SHPPFW_NONE = $00000000;
   SHPPFW_NONE = $00000000;

+ 1 - 1
Components/NewCheckListBox.pas

@@ -15,7 +15,7 @@ interface
 
 
 uses
 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
-  StdCtrls, UxTheme;
+  StdCtrls, NewUxTheme;
 
 
 const
 const
   WM_UPDATEUISTATE = $0128;
   WM_UPDATEUISTATE = $0128;

+ 5 - 2
Components/NewTabSet.pas

@@ -13,7 +13,7 @@ interface
 
 
 uses
 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Math, Generics.Collections,
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Math, Generics.Collections,
-  ModernColors, UxTheme;
+  ModernColors, NewUxTheme;
 
 
 type
 type
   TTabPosition = (tpTop, tpBottom);
   TTabPosition = (tpTop, tpBottom);
@@ -84,7 +84,7 @@ procedure Register;
 implementation
 implementation
 
 
 uses
 uses
-  WinApi.UxTheme, Types;
+  Types;
 
 
 procedure Register;
 procedure Register;
 begin
 begin
@@ -367,6 +367,9 @@ var
   HighColorMode: Boolean;
   HighColorMode: Boolean;
 
 
   procedure DrawCloseButton(const TabRect: TRect; const TabIndex: Integer);
   procedure DrawCloseButton(const TabRect: TRect; const TabIndex: Integer);
+  const
+    MENU_SYSTEMCLOSE = 17;
+    MSYSC_NORMAL = 1;
   begin
   begin
    if (TabIndex < FCloseButtons.Count) and FCloseButtons[TabIndex] then begin
    if (TabIndex < FCloseButtons.Count) and FCloseButtons[TabIndex] then begin
       var R := GetCloseButtonRect(TabRect);
       var R := GetCloseButtonRect(TabRect);

+ 3 - 2
Components/UxTheme.pas → Components/NewUxTheme.pas

@@ -47,9 +47,10 @@
 { Simplified by Martijn Laan for Inno Setup }
 { Simplified by Martijn Laan for Inno Setup }
 
 
 { Cannot be replaced by Delphi's built in Winapi.UxTheme.pas even though it has
 { Cannot be replaced by Delphi's built in Winapi.UxTheme.pas even though it has
-  the same functions: see the comment at the bottom of this file. }
+  the same functions: see the comment at the bottom of this file. For this
+  reason this unit has been renamed to NewUxTheme.  }
 
 
-unit UxTheme;
+unit NewUxTheme;
 
 
 interface
 interface
 
 

+ 1 - 1
Components/TmSchema.pas

@@ -44,7 +44,7 @@
 {                                                                              }
 {                                                                              }
 {******************************************************************************}
 {******************************************************************************}
 
 
-{ Simplified by Martijn Laan for Inno Setup and Delphi 2 }
+{ Simplified by Martijn Laan for Inno Setup }
 
 
 unit TmSchema;
 unit TmSchema;
 
 

+ 1 - 1
Files/Languages/Dutch.isl

@@ -2,7 +2,7 @@
 ;
 ;
 ; This file is based on user-contributed translations by various authors
 ; This file is based on user-contributed translations by various authors
 ;
 ;
-; Maintained by Martijn Laan (mlaan@jrsoftware.org)
+; Maintained by Martijn Laan (mlaan@innosetup.nl)
                                      
                                      
 [LangOptions]                
 [LangOptions]                
 LanguageName=Nederlands      
 LanguageName=Nederlands      

+ 7 - 21
ISHelp/isetup.xml

@@ -1581,18 +1581,6 @@ ExternalSize: 1048576; Flags: external
 </example>
 </example>
 </param>
 </param>
 
 
-<param name="CopyMode">
-<p>You should not use this parameter in any new scripts. This parameter was deprecated and replaced by flags in Inno Setup 3.0.5:</p>
-<p>
-<tt>CopyMode: normal -&gt; Flags: promptifolder</tt><br/>
-<tt>CopyMode: alwaysskipifsameorolder -&gt; </tt>no flags<br/>
-<tt>CopyMode: onlyifdoesntexist -&gt; Flags: onlyifdoesntexist</tt><br/>
-<tt>CopyMode: alwaysoverwrite -&gt; Flags: ignoreversion</tt><br/>
-<tt>CopyMode: dontcopy -&gt; Flags: dontcopy</tt>
-</p>
-<p>What was <tt>CopyMode: alwaysskipifsameorolder</tt> is now the default behavior. (The previous default was <tt>CopyMode: normal</tt>.)</p>
-</param>
-
 <param name="Attribs">
 <param name="Attribs">
 <p>Specifies additional attributes for the file. This can include one or more of the following: <tt>readonly</tt>, <tt>hidden</tt>, <tt>system</tt>, <tt>notcontentindexed</tt>. If this parameter is not specified, Setup does not assign any special attributes to the file.</p>
 <p>Specifies additional attributes for the file. This can include one or more of the following: <tt>readonly</tt>, <tt>hidden</tt>, <tt>system</tt>, <tt>notcontentindexed</tt>. If this parameter is not specified, Setup does not assign any special attributes to the file.</p>
 <example>
 <example>
@@ -3534,7 +3522,7 @@ Keep the default set of selected tasks, but deselect the "desktopicon" task:<br/
 <keyword value="return codes" />
 <keyword value="return codes" />
 <body>
 <body>
 
 
-<p>Beginning with Inno Setup 3.0.3, the Setup program may return one of the following exit codes:</p>
+<p>The Setup program may return one of the following exit codes:</p>
 
 
 <table>
 <table>
 
 
@@ -3591,14 +3579,14 @@ Keep the default set of selected tasks, but deselect the "desktopicon" task:<br/
 <tr>
 <tr>
 <td><b>7</b></td>
 <td><b>7</b></td>
 <td>
 <td>
-<p>The <link topic="wizardpages"><i>Preparing to Install</i></link> stage determined that Setup cannot proceed with installation. <i>(First introduced in Inno Setup 5.4.1.)</i></p>
+<p>The <link topic="wizardpages"><i>Preparing to Install</i></link> stage determined that Setup cannot proceed with installation.</p>
 </td>
 </td>
 </tr>
 </tr>
 
 
 <tr>
 <tr>
 <td><b>8</b></td>
 <td><b>8</b></td>
 <td>
 <td>
-<p>The <link topic="wizardpages"><i>Preparing to Install</i></link> stage determined that Setup cannot proceed with installation, and that the system needs to be restarted in order to correct the problem. <i>(First introduced in Inno Setup 5.4.1.)</i></p>
+<p>The <link topic="wizardpages"><i>Preparing to Install</i></link> stage determined that Setup cannot proceed with installation, and that the system needs to be restarted in order to correct the problem.</p>
 </td>
 </td>
 </tr>
 </tr>
 
 
@@ -3673,7 +3661,7 @@ Keep the default set of selected tasks, but deselect the "desktopicon" task:<br/
 <keyword value="return codes" />
 <keyword value="return codes" />
 <body>
 <body>
 
 
-<p>Beginning with Inno Setup 4.0.8, the uninstaller will return a non-zero exit code if the user cancels or a fatal error is encountered. Programs checking the exit code to detect failure should not check for a specific non-zero value; any non-zero exit code indicates that the uninstaller was not run to completion.</p>
+<p>The uninstaller will return a non-zero exit code if the user cancels or a fatal error is encountered. Programs checking the exit code to detect failure should not check for a specific non-zero value; any non-zero exit code indicates that the uninstaller was not run to completion.</p>
 
 
 <p>Note that at the moment you get an exit code back from the uninstaller, some code related to uninstallation might still be running. Because Windows doesn't allow programs to delete their own EXEs, the uninstaller creates and spawns a copy of itself in the TEMP directory. This "clone" performs the actual uninstallation, and at the end, terminates the original uninstaller EXE (at which point you get an exit code back), deletes it, then displays the "uninstall complete" message box (if it hasn't been suppressed with /SILENT or /VERYSILENT).</p>
 <p>Note that at the moment you get an exit code back from the uninstaller, some code related to uninstallation might still be running. Because Windows doesn't allow programs to delete their own EXEs, the uninstaller creates and spawns a copy of itself in the TEMP directory. This "clone" performs the actual uninstallation, and at the end, terminates the original uninstaller EXE (at which point you get an exit code back), deletes it, then displays the "uninstall complete" message box (if it hasn't been suppressed with /SILENT or /VERYSILENT).</p>
 
 
@@ -4647,7 +4635,7 @@ DiskSliceSize=1457664
 <setupvalid><link topic="yesnonotes"><tt>yes</tt> or <tt>no</tt></link></setupvalid>
 <setupvalid><link topic="yesnonotes"><tt>yes</tt> or <tt>no</tt></link></setupvalid>
 <setupdefault><tt>yes</tt></setupdefault>
 <setupdefault><tt>yes</tt></setupdefault>
 <body>
 <body>
-<p>If set to <tt>no</tt>, the user will not be allowed to enter a UNC path (such as "\\server\share") on the <i>Select Destination Location</i> page of the wizard. This was the default behavior in Inno Setup 2.0.17 and earlier.</p>
+<p>If set to <tt>no</tt>, the user will not be allowed to enter a UNC path (such as "\\server\share") on the <i>Select Destination Location</i> page of the wizard.</p>
 <p>To fully disallow installation to network locations, you must also set <link topic="setup_allownetworkdrive">AllowNetworkDrive</link> to <tt>no</tt>.</p>
 <p>To fully disallow installation to network locations, you must also set <link topic="setup_allownetworkdrive">AllowNetworkDrive</link> to <tt>no</tt>.</p>
 </body>
 </body>
 </setuptopic>
 </setuptopic>
@@ -4917,7 +4905,7 @@ DiskSliceSize=1457664
 <setupdefault><tt>yes</tt></setupdefault>
 <setupdefault><tt>yes</tt></setupdefault>
 <body>
 <body>
 <p>If set to <tt>yes</tt>, the default, the wizard images will be stretched or shrunk if the images are larger or smaller than required.</p>
 <p>If set to <tt>yes</tt>, the default, the wizard images will be stretched or shrunk if the images are larger or smaller than required.</p>
-<p>If set to <tt>no</tt>, the wizard images will be centered in their respective areas if the images are larger than required, and clipped if the images are smaller than required. (This corresponds to the default behavior of Inno Setup 4.1.2 and earlier.)</p>
+<p>If set to <tt>no</tt>, the wizard images will be centered in their respective areas if the images are larger than required, and clipped if the images are smaller than required.</p>
 </body>
 </body>
 </setuptopic>
 </setuptopic>
 
 
@@ -5039,7 +5027,6 @@ DiskSliceSize=1457664
 <body>
 <body>
 <p>Specifies the name of the font that should be used in dialogs on languages that do not set <tt>DialogFontName</tt> in their <link topic="langoptionssection">[LangOptions] section</link>.</p>
 <p>Specifies the name of the font that should be used in dialogs on languages that do not set <tt>DialogFontName</tt> in their <link topic="langoptionssection">[LangOptions] section</link>.</p>
 <p>If the specified font name does not exist on the user's system or is an empty string, 8-point Microsoft Sans Serif or MS Sans Serif will be substituted.</p>
 <p>If the specified font name does not exist on the user's system or is an empty string, 8-point Microsoft Sans Serif or MS Sans Serif will be substituted.</p>
-<p>Prior to the introduction of the <tt>DefaultDialogFontName</tt> directive in Inno Setup 5.3.9, the default dialog font name was always an empty string.</p>
 </body>
 </body>
 </setuptopic>
 </setuptopic>
 
 
@@ -5687,8 +5674,7 @@ SignTool=byparam format c:
 <p>When a new version of an application is installed over an existing version, instead of creating a new uninstall log file (unins???.dat), Setup will by default look for and append to an existing uninstall log file that belongs to the <link topic="sameappnotes">same application</link> and is in the same directory. This way, when the application is uninstalled, changes made by all the different installations will be undone (starting with the most recent installation).</p>
 <p>When a new version of an application is installed over an existing version, instead of creating a new uninstall log file (unins???.dat), Setup will by default look for and append to an existing uninstall log file that belongs to the <link topic="sameappnotes">same application</link> and is in the same directory. This way, when the application is uninstalled, changes made by all the different installations will be undone (starting with the most recent installation).</p>
 <p>The uninstaller will use the <link topic="messagessection">messages</link> from the most recent installation of the application. However, there is an exception: if an installation was built with an older version of Inno Setup that included an older version of the uninstaller than the existing one on the user's system, neither the existing uninstaller nor its messages will be replaced. In this case the uninstall log will still be appended to, though, since the file format is backward compatible.</p>
 <p>The uninstaller will use the <link topic="messagessection">messages</link> from the most recent installation of the application. However, there is an exception: if an installation was built with an older version of Inno Setup that included an older version of the uninstaller than the existing one on the user's system, neither the existing uninstaller nor its messages will be replaced. In this case the uninstall log will still be appended to, though, since the file format is backward compatible.</p>
 <p>The application name displayed in the uninstaller will be the same as the value of the <tt>[Setup]</tt> section directive <link topic="setup_appname">AppName</link> from the most recent installation, unless <link topic="setup_updateuninstalllogappname">UpdateUninstallLogAppName</link> is set to <tt>no</tt>.</p>
 <p>The application name displayed in the uninstaller will be the same as the value of the <tt>[Setup]</tt> section directive <link topic="setup_appname">AppName</link> from the most recent installation, unless <link topic="setup_updateuninstalllogappname">UpdateUninstallLogAppName</link> is set to <tt>no</tt>.</p>
-<p>The uninstall log-appending feature is new to Inno Setup 1.3. If you wish to disable it, set the <tt>[Setup]</tt> section directive <link topic="setup_uninstalllogmode">UninstallLogMode</link>.</p>
-<p><i>Note:</i> Setup can only append to uninstall log files that were created by an Inno Setup 1.3.1 (or later) installation.</p>
+<p>To disable the uninstall log-appending feature set the <tt>[Setup]</tt> section directive <link topic="setup_uninstalllogmode">UninstallLogMode</link>.</p>
 </body>
 </body>
 </topic>
 </topic>
 
 

+ 1 - 1
ISHelp/isxfunc.xml

@@ -475,7 +475,7 @@ end;</pre></example>
 <p><tt>TSetupProcessorArchitecture = (paUnknown, paX86, paX64, paArm64, paArm32);</tt></p></description>
 <p><tt>TSetupProcessorArchitecture = (paUnknown, paX86, paX64, paArm64, paArm32);</tt></p></description>
         <remarks><p>A 64-bit processor architecture will never be returned on 32-bit versions of Windows. Hence, you cannot use this function to detect a 64-bit AMD CPU on a 32-bit version of Windows; you'll just get back <tt>paX86</tt> if you try.</p>
         <remarks><p>A 64-bit processor architecture will never be returned on 32-bit versions of Windows. Hence, you cannot use this function to detect a 64-bit AMD CPU on a 32-bit version of Windows; you'll just get back <tt>paX86</tt> if you try.</p>
 <p><tt>paUnknown</tt> is returned if Setup/Uninstall does not recognize the processor architecture. It can be assumed that an "unknown" architecture is at least capable of executing 32-bit code, or Setup/Uninstall wouldn't be running at all.</p>
 <p><tt>paUnknown</tt> is returned if Setup/Uninstall does not recognize the processor architecture. It can be assumed that an "unknown" architecture is at least capable of executing 32-bit code, or Setup/Uninstall wouldn't be running at all.</p>
-<p><tt>paArm32</tt> is never returned because Setup/Uninstall does not run on 32-bit versions of Windows for Arm32.</p>
+<p><tt>paArm32</tt> is never returned because Setup/Uninstall does not run on 32-bit versions of Windows for Arm32.</p></remarks>
         <example><pre>var
         <example><pre>var
   S: String;
   S: String;
 begin
 begin

+ 1 - 1
Projects/Compil32.dpr

@@ -27,7 +27,7 @@ uses
   CompWizardFile in 'Src\CompWizardFile.pas' {WizardFileForm},
   CompWizardFile in 'Src\CompWizardFile.pas' {WizardFileForm},
   CompFileAssoc in 'Src\CompFileAssoc.pas',
   CompFileAssoc in 'Src\CompFileAssoc.pas',
   TmSchema in '..\Components\TmSchema.pas',
   TmSchema in '..\Components\TmSchema.pas',
-  UxTheme in '..\Components\UxTheme.pas',
+  NewUxTheme in '..\Components\NewUxTheme.pas',
   DebugStruct in 'Src\DebugStruct.pas',
   DebugStruct in 'Src\DebugStruct.pas',
   BrowseFunc in 'Src\BrowseFunc.pas',
   BrowseFunc in 'Src\BrowseFunc.pas',
   CompSignTools in 'Src\CompSignTools.pas' {SignToolsForm},
   CompSignTools in 'Src\CompSignTools.pas' {SignToolsForm},

+ 1 - 1
Projects/Compil32.dproj

@@ -102,7 +102,7 @@
         </DCCReference>
         </DCCReference>
         <DCCReference Include="Src\CompFileAssoc.pas"/>
         <DCCReference Include="Src\CompFileAssoc.pas"/>
         <DCCReference Include="..\Components\TmSchema.pas"/>
         <DCCReference Include="..\Components\TmSchema.pas"/>
-        <DCCReference Include="..\Components\UxTheme.pas"/>
+        <DCCReference Include="..\Components\NewUxTheme.pas"/>
         <DCCReference Include="Src\DebugStruct.pas"/>
         <DCCReference Include="Src\DebugStruct.pas"/>
         <DCCReference Include="Src\BrowseFunc.pas"/>
         <DCCReference Include="Src\BrowseFunc.pas"/>
         <DCCReference Include="Src\CompSignTools.pas">
         <DCCReference Include="Src\CompSignTools.pas">

+ 2 - 1
Projects/Setup.dpr

@@ -86,7 +86,8 @@ uses
   DotNet in 'Src\DotNet.pas',
   DotNet in 'Src\DotNet.pas',
   SetupEnt in 'Src\SetupEnt.pas',
   SetupEnt in 'Src\SetupEnt.pas',
   Msi in 'Src\Msi.pas',
   Msi in 'Src\Msi.pas',
-  DotNetVersion in 'Src\DotNetVersion.pas';
+  DotNetVersion in 'Src\DotNetVersion.pas',
+  NewUxTheme in '..\Components\NewUxTheme.pas';
 
 
 {$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}
 {$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}
 {$SETPEOSVERSION 6.1}
 {$SETPEOSVERSION 6.1}

+ 1 - 0
Projects/Setup.dproj

@@ -163,6 +163,7 @@
         <DCCReference Include="Src\SetupEnt.pas"/>
         <DCCReference Include="Src\SetupEnt.pas"/>
         <DCCReference Include="Src\Msi.pas"/>
         <DCCReference Include="Src\Msi.pas"/>
         <DCCReference Include="Src\DotNetVersion.pas"/>
         <DCCReference Include="Src\DotNetVersion.pas"/>
+        <DCCReference Include="..\Components\NewUxTheme.pas"/>
         <BuildConfiguration Include="Base">
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
             <Key>Base</Key>
         </BuildConfiguration>
         </BuildConfiguration>

+ 1 - 1
Projects/Src/CompForm.pas

@@ -25,7 +25,7 @@ uses
   Windows, Messages, SysUtils, Classes, Contnrs, Graphics, Controls, Forms, Dialogs, CommDlg,
   Windows, Messages, SysUtils, Classes, Contnrs, Graphics, Controls, Forms, Dialogs, CommDlg,
   Generics.Collections, UIStateForm, StdCtrls, ExtCtrls, Menus, Buttons, ComCtrls, CommCtrl,
   Generics.Collections, UIStateForm, StdCtrls, ExtCtrls, Menus, Buttons, ComCtrls, CommCtrl,
   ScintInt, ScintEdit, ScintStylerInnoSetup, NewTabSet, ModernColors, CompScintEdit,
   ScintInt, ScintEdit, ScintStylerInnoSetup, NewTabSet, ModernColors, CompScintEdit,
-  DebugStruct, CompInt, UxTheme, ImageList, ImgList, ToolWin, CompFunc,
+  DebugStruct, CompInt, NewUxTheme, ImageList, ImgList, ToolWin, CompFunc,
   VirtualImageList, BaseImageCollection, ImageCollection;
   VirtualImageList, BaseImageCollection, ImageCollection;
 
 
 const
 const

+ 17 - 20
Projects/Src/Main.pas

@@ -3251,11 +3251,17 @@ begin
         SetActiveLanguage(I);
         SetActiveLanguage(I);
     end;
     end;
   end;
   end;
+
+  { Check unsupported Itanium - must be on Windows Server 2008 R2 so remove once
+    this becomes unsupported as well and Windows 8 (6.2+) becomes the new minimum }
+  var SysInfo: TSystemInfo;
+  GetNativeSystemInfo(SysInfo);
+  if SysInfo.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_IA64 then
+    AbortInit(msgWindowsVersionNotSupported);
   
   
-  { Check processor architecture }
-  if (ProcessorArchitecture = paIA64) or { Remove once Windows 8 (6.2+) becomes the new minimum }
-     ((SetupHeader.ArchitecturesAllowed <> '') and
-      not EvalExpression(SetupHeader.ArchitecturesAllowed, TDummyClass.EvalArchitectureIdentifier)) then
+  { Check allowed processor architectures }
+  if (SetupHeader.ArchitecturesAllowed <> '') and
+     not EvalExpression(SetupHeader.ArchitecturesAllowed, TDummyClass.EvalArchitectureIdentifier) then
     AbortInit(msgWindowsVersionNotSupported);
     AbortInit(msgWindowsVersionNotSupported);
 
 
   { Check Windows version }
   { Check Windows version }
@@ -4387,7 +4393,6 @@ const
   UserEnabled = $1;
   UserEnabled = $1;
 var
 var
   KernelModule: HMODULE;
   KernelModule: HMODULE;
-  GetNativeSystemInfoFunc: procedure(var lpSystemInfo: TSystemInfo); stdcall;
   IsWow64ProcessFunc: function(hProcess: THandle; var Wow64Process: BOOL): BOOL; stdcall;
   IsWow64ProcessFunc: function(hProcess: THandle; var Wow64Process: BOOL): BOOL; stdcall;
   IsWow64Process2Func: function(hProcess: THandle; var pProcessMachine, pNativeMachine: USHORT): BOOL; stdcall;
   IsWow64Process2Func: function(hProcess: THandle; var pProcessMachine, pNativeMachine: USHORT): BOOL; stdcall;
   GetMachineTypeAttributesFunc: function(Machine: USHORT; var MachineTypeAttributes: Integer): HRESULT; stdcall;
   GetMachineTypeAttributesFunc: function(Machine: USHORT; var MachineTypeAttributes: Integer): HRESULT; stdcall;
@@ -4402,8 +4407,7 @@ begin
     conditions are true:
     conditions are true:
     1. One of the following two is true:
     1. One of the following two is true:
        a. IsWow64Process2 is available, and returns True for the current process.
        a. IsWow64Process2 is available, and returns True for the current process.
-       b. GetNativeSystemInfo is available +
-          IsWow64Process is available, and returns True for the current process.
+       b. IsWow64Process is available, and returns True for the current process.
     2. Wow64DisableWow64FsRedirection is available.
     2. Wow64DisableWow64FsRedirection is available.
     3. Wow64RevertWow64FsRedirection is available.
     3. Wow64RevertWow64FsRedirection is available.
     4. GetSystemWow64DirectoryA is available.
     4. GetSystemWow64DirectoryA is available.
@@ -4420,27 +4424,21 @@ begin
     IsWin64 := True;
     IsWin64 := True;
     case NativeMachine of
     case NativeMachine of
       IMAGE_FILE_MACHINE_I386: ProcessorArchitecture := paX86;
       IMAGE_FILE_MACHINE_I386: ProcessorArchitecture := paX86;
-      IMAGE_FILE_MACHINE_IA64: ProcessorArchitecture := paIA64;
       IMAGE_FILE_MACHINE_AMD64: ProcessorArchitecture := paX64;
       IMAGE_FILE_MACHINE_AMD64: ProcessorArchitecture := paX64;
       IMAGE_FILE_MACHINE_ARM64: ProcessorArchitecture := paArm64;
       IMAGE_FILE_MACHINE_ARM64: ProcessorArchitecture := paArm64;
     else
     else
       ProcessorArchitecture := paUnknown;
       ProcessorArchitecture := paUnknown;
     end;
     end;
   end else begin
   end else begin
-    GetNativeSystemInfoFunc := GetProcAddress(KernelModule, 'GetNativeSystemInfo');
-    if Assigned(GetNativeSystemInfoFunc) then begin
-      GetNativeSystemInfoFunc(SysInfo);
-      IsWow64ProcessFunc := GetProcAddress(KernelModule, 'IsWow64Process');
-      if Assigned(IsWow64ProcessFunc) and
-         IsWow64ProcessFunc(GetCurrentProcess, Wow64Process) and
-         Wow64Process then
-        IsWin64 := True;
-    end else
-      GetSystemInfo(SysInfo);
+    IsWow64ProcessFunc := GetProcAddress(KernelModule, 'IsWow64Process');
+    if Assigned(IsWow64ProcessFunc) and
+       IsWow64ProcessFunc(GetCurrentProcess, Wow64Process) and
+       Wow64Process then
+      IsWin64 := True;
 
 
+    GetNativeSystemInfo(SysInfo);
     case SysInfo.wProcessorArchitecture of
     case SysInfo.wProcessorArchitecture of
       PROCESSOR_ARCHITECTURE_INTEL: ProcessorArchitecture := paX86;
       PROCESSOR_ARCHITECTURE_INTEL: ProcessorArchitecture := paX86;
-      PROCESSOR_ARCHITECTURE_IA64: ProcessorArchitecture := paIA64;
       PROCESSOR_ARCHITECTURE_AMD64: ProcessorArchitecture := paX64;
       PROCESSOR_ARCHITECTURE_AMD64: ProcessorArchitecture := paX64;
       PROCESSOR_ARCHITECTURE_ARM64: ProcessorArchitecture := paArm64;
       PROCESSOR_ARCHITECTURE_ARM64: ProcessorArchitecture := paArm64;
     else
     else
@@ -4459,7 +4457,6 @@ begin
     - x64: [paX86, paX64]
     - x64: [paX86, paX64]
       (but not paX86 in a future x64 build of Inno Setup if Windows was installed
       (but not paX86 in a future x64 build of Inno Setup if Windows was installed
        without support for x86 binaries (which is possible with Windows Server))
        without support for x86 binaries (which is possible with Windows Server))
-    - Itanium: [paX86, paIA64]
     - Arm64 Windows 10: [paX86, paArm64, paArm32]
     - Arm64 Windows 10: [paX86, paArm64, paArm32]
       (Arm32 support detected, not just assumed)
       (Arm32 support detected, not just assumed)
     - Arm64 Windows 11: [paX86, paX64, paArm64, paArm32]
     - Arm64 Windows 11: [paX86, paX64, paArm64, paArm32]

+ 0 - 4
Projects/Src/ScriptClasses_C.pas

@@ -546,7 +546,6 @@ begin
   end;
   end;
 end;
 end;
 
 
-{$IFNDEF PS_NOINT64}
 procedure RegisterDownloadWizardPage_C(Cl: TPSPascalCompiler);
 procedure RegisterDownloadWizardPage_C(Cl: TPSPascalCompiler);
 begin
 begin
   with CL.AddClassN(Cl.FindClass('TOutputProgressWizardPage'),'TDownloadWizardPage') do
   with CL.AddClassN(Cl.FindClass('TOutputProgressWizardPage'),'TDownloadWizardPage') do
@@ -560,7 +559,6 @@ begin
     RegisterMethod('procedure Show'); { Without this TOutputProgressWizardPage's Show will be called }
     RegisterMethod('procedure Show'); { Without this TOutputProgressWizardPage's Show will be called }
   end;
   end;
 end;
 end;
-{$ENDIF}
 
 
 procedure RegisterHandCursor_C(Cl: TPSPascalCompiler);
 procedure RegisterHandCursor_C(Cl: TPSPascalCompiler);
 begin
 begin
@@ -668,9 +666,7 @@ begin
   RegisterOutputMsgMemoWizardPage_C(Cl);
   RegisterOutputMsgMemoWizardPage_C(Cl);
   RegisterOutputProgressWizardPage_C(Cl);
   RegisterOutputProgressWizardPage_C(Cl);
   RegisterOutputMarqueeProgressWizardPage_C(Cl);
   RegisterOutputMarqueeProgressWizardPage_C(Cl);
-{$IFNDEF PS_NOINT64}
   RegisterDownloadWizardPage_C(Cl);
   RegisterDownloadWizardPage_C(Cl);
-{$ENDIF}
 
 
   RegisterHandCursor_C(Cl);
   RegisterHandCursor_C(Cl);
   
   

+ 0 - 4
Projects/Src/ScriptClasses_R.pas

@@ -327,7 +327,6 @@ begin
   end;
   end;
 end;
 end;
 
 
-{$IFNDEF PS_NOINT64}
 procedure TDownloadPageAbortedByUser_R(Self: TDownloadWizardPage; var T: Boolean); begin T := Self.AbortedByUser; end;
 procedure TDownloadPageAbortedByUser_R(Self: TDownloadWizardPage; var T: Boolean); begin T := Self.AbortedByUser; end;
 
 
 procedure RegisterDownloadWizardPage_R(CL: TPSRuntimeClassImporter);
 procedure RegisterDownloadWizardPage_R(CL: TPSRuntimeClassImporter);
@@ -342,7 +341,6 @@ begin
     RegisterMethod(@TDownloadWizardPage.Show, 'Show');
     RegisterMethod(@TDownloadWizardPage.Show, 'Show');
   end;
   end;
 end;
 end;
-{$ENDIF}
 
 
 procedure RegisterHandCursor_R(Cl: TPSRuntimeClassImporter);
 procedure RegisterHandCursor_R(Cl: TPSRuntimeClassImporter);
 const
 const
@@ -445,9 +443,7 @@ begin
     RegisterOutputMsgMemoWizardPage_R(Cl);
     RegisterOutputMsgMemoWizardPage_R(Cl);
     RegisterOutputProgressWizardPage_R(Cl);
     RegisterOutputProgressWizardPage_R(Cl);
     RegisterOutputMarqueeProgressWizardPage_R(Cl);
     RegisterOutputMarqueeProgressWizardPage_R(Cl);
-{$IFNDEF PS_NOINT64}
     RegisterDownloadWizardPage_R(Cl);
     RegisterDownloadWizardPage_R(Cl);
-{$ENDIF}
 
 
     RegisterHandCursor_R(Cl);
     RegisterHandCursor_R(Cl);
 
 

+ 0 - 6
Projects/Src/ScriptDlg.pas

@@ -171,7 +171,6 @@ type
       procedure SetProgress(const Position, Max: Longint);
       procedure SetProgress(const Position, Max: Longint);
   end;
   end;
 
 
-{$IFNDEF PS_NOINT64}
   TDownloadWizardPage = class(TOutputProgressWizardPage)
   TDownloadWizardPage = class(TOutputProgressWizardPage)
     private
     private
       FFiles: TObjectList;
       FFiles: TObjectList;
@@ -195,7 +194,6 @@ type
     published
     published
       property AbortButton: TNewButton read FAbortButton;
       property AbortButton: TNewButton read FAbortButton;
   end;
   end;
-{$ENDIF}
   
   
 implementation
 implementation
 
 
@@ -915,8 +913,6 @@ begin
   InternalError('Cannot call TOutputMarqueeProgressWizardPage.SetProgress');
   InternalError('Cannot call TOutputMarqueeProgressWizardPage.SetProgress');
 end;
 end;
 
 
-{$IFNDEF PS_NOINT64}
-
 {--- OutputDownload ---}
 {--- OutputDownload ---}
 
 
 type
 type
@@ -1052,6 +1048,4 @@ begin
   SetDownloadCredentials('', '');
   SetDownloadCredentials('', '');
 end;
 end;
 
 
-{$ENDIF}
-
 end.
 end.

+ 0 - 24
Projects/Src/ScriptFunc.pas

@@ -14,11 +14,7 @@ interface
 const
 const
 
 
   { ScriptDlg }
   { ScriptDlg }
-{$IFNDEF PS_NOINT64}
   ScriptDlgTable: array [0..14] of AnsiString =
   ScriptDlgTable: array [0..14] of AnsiString =
-{$ELSE}
-  ScriptDlgTable: array [0..13] of AnsiString =
-{$ENDIF}
   (
   (
     'function PageFromID(const ID: Integer): TWizardPage;',
     'function PageFromID(const ID: Integer): TWizardPage;',
     'function PageIndexFromID(const ID: Integer): Integer;',
     'function PageIndexFromID(const ID: Integer): Integer;',
@@ -31,9 +27,7 @@ const
     'function CreateOutputMsgMemoPage(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String; const AMsg: AnsiString): TOutputMsgMemoWizardPage;',
     'function CreateOutputMsgMemoPage(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String; const AMsg: AnsiString): TOutputMsgMemoWizardPage;',
     'function CreateOutputProgressPage(const ACaption, ADescription: String): TOutputProgressWizardPage;',
     'function CreateOutputProgressPage(const ACaption, ADescription: String): TOutputProgressWizardPage;',
     'function CreateOutputMarqueeProgressPage(const ACaption, ADescription: String): TOutputMarqueeProgressWizardPage;',
     'function CreateOutputMarqueeProgressPage(const ACaption, ADescription: String): TOutputMarqueeProgressWizardPage;',
-{$IFNDEF PS_NOINT64}
     'function CreateDownloadPage(const ACaption, ADescription: String; const OnDownloadProgress: TOnDownloadProgress): TDownloadWizardPage;',
     'function CreateDownloadPage(const ACaption, ADescription: String; const OnDownloadProgress: TOnDownloadProgress): TDownloadWizardPage;',
-{$ENDIF}
     'function ScaleX(X: Integer): Integer;',
     'function ScaleX(X: Integer): Integer;',
     'function ScaleY(Y: Integer): Integer;',
     'function ScaleY(Y: Integer): Integer;',
     'function CreateCustomForm: TSetupForm;'
     'function CreateCustomForm: TSetupForm;'
@@ -128,28 +122,18 @@ const
   );
   );
 
 
   { Install }
   { Install }
-{$IFNDEF PS_NOINT64}
   InstallTable: array [0..5] of AnsiString =
   InstallTable: array [0..5] of AnsiString =
-{$ELSE}
-  InstallTable: array [0..2] of AnsiString =
-{$ENDIF}
   (
   (
     'procedure ExtractTemporaryFile(const FileName: String);',
     'procedure ExtractTemporaryFile(const FileName: String);',
     'function ExtractTemporaryFiles(const Pattern: String): Integer;',
     'function ExtractTemporaryFiles(const Pattern: String): Integer;',
-{$IFNDEF PS_NOINT64}
     'function DownloadTemporaryFile(const Url, FileName, RequiredSHA256OfFile: String; const OnDownloadProgress: TOnDownloadProgress): Int64;',
     'function DownloadTemporaryFile(const Url, FileName, RequiredSHA256OfFile: String; const OnDownloadProgress: TOnDownloadProgress): Int64;',
     'function DownloadTemporaryFileSize(const Url: String): Int64;',
     'function DownloadTemporaryFileSize(const Url: String): Int64;',
     'function DownloadTemporaryFileDate(const Url: String): String;',
     'function DownloadTemporaryFileDate(const Url: String): String;',
     'procedure SetDownloadCredentials(const User, Pass: String);'
     'procedure SetDownloadCredentials(const User, Pass: String);'
-{$ENDIF}
   );
   );
 
 
   { InstFunc }
   { InstFunc }
-{$IFNDEF PS_NOINT64}
   InstFuncTable: array [0..30] of AnsiString =
   InstFuncTable: array [0..30] of AnsiString =
-{$ELSE}
-  InstFuncTable: array [0..29] of AnsiString =
-{$ENDIF}
   (
   (
     'function CheckForMutexes(Mutexes: String): Boolean;',
     'function CheckForMutexes(Mutexes: String): Boolean;',
     'function DecrementSharedCount(const Is64Bit: Boolean; const Filename: String): Boolean;',
     'function DecrementSharedCount(const Is64Bit: Boolean; const Filename: String): Boolean;',
@@ -168,9 +152,7 @@ const
     'function GetSHA256OfString(const S: AnsiString): String;',
     'function GetSHA256OfString(const S: AnsiString): String;',
     'function GetSHA256OfUnicodeString(const S: String): String;',
     'function GetSHA256OfUnicodeString(const S: String): String;',
     'function GetSpaceOnDisk(const DriveRoot: String; const InMegabytes: Boolean; var Free, Total: Cardinal): Boolean;',
     'function GetSpaceOnDisk(const DriveRoot: String; const InMegabytes: Boolean; var Free, Total: Cardinal): Boolean;',
-{$IFNDEF PS_NOINT64}
     'function GetSpaceOnDisk64(const DriveRoot: String; var Free, Total: Int64): Boolean;',
     'function GetSpaceOnDisk64(const DriveRoot: String; var Free, Total: Int64): Boolean;',
-{$ENDIF}
     'function GetUserNameString: String;',
     'function GetUserNameString: String;',
     //function GrantPermissionOnFile(const Filename: String; const Entries: TGrantPermissionEntry; const EntryCount: Integer): Boolean;
     //function GrantPermissionOnFile(const Filename: String; const Entries: TGrantPermissionEntry; const EntryCount: Integer): Boolean;
     //function GrantPermissionOnKey(const RootKey: HKEY; const Subkey: String; const Entries: TGrantPermissionEntry; const EntryCount: Integer): Boolean;
     //function GrantPermissionOnKey(const RootKey: HKEY; const Subkey: String; const Entries: TGrantPermissionEntry; const EntryCount: Integer): Boolean;
@@ -249,17 +231,11 @@ const
   );
   );
 
 
   { System }
   { System }
-{$IFNDEF PS_NOINT64}
   SystemTable: array [0..4] of AnsiString =
   SystemTable: array [0..4] of AnsiString =
-{$ELSE}
-  SystemTable: array [0..3] of AnsiString =
-{$ENDIF}
   (
   (
     'function Random(const Range: Integer): Integer;',
     'function Random(const Range: Integer): Integer;',
     'function FileSize(const Name: String; var Size: Integer): Boolean;',
     'function FileSize(const Name: String; var Size: Integer): Boolean;',
-{$IFNDEF PS_NOINT64}
     'function FileSize64(const Name: String; var Size: Int64): Boolean;',
     'function FileSize64(const Name: String; var Size: Int64): Boolean;',
-{$ENDIF}
     'procedure Set8087CW(NewCW: Word);',
     'procedure Set8087CW(NewCW: Word);',
     'function Get8087CW: Word;'
     'function Get8087CW: Word;'
   );
   );

+ 0 - 2
Projects/Src/ScriptFunc_C.pas

@@ -141,9 +141,7 @@ begin
     '  SuiteMask: Word;' +
     '  SuiteMask: Word;' +
     'end');
     'end');
 
 
-{$IFNDEF PS_NOINT64}
   RegisterType('TOnDownloadProgress', 'function(const Url, FileName: string; const Progress, ProgressMax: Int64): Boolean;');
   RegisterType('TOnDownloadProgress', 'function(const Url, FileName: string; const Progress, ProgressMax: Int64): Boolean;');
-{$ENDIF}
 
 
   RegisterFunctionTable(ScriptDlgTable);
   RegisterFunctionTable(ScriptDlgTable);
   RegisterFunctionTable(NewDiskTable);
   RegisterFunctionTable(NewDiskTable);

+ 1 - 10
Projects/Src/ScriptFunc_R.pas

@@ -124,11 +124,9 @@ var
   NewOutputMsgMemoPage: TOutputMsgMemoWizardPage;
   NewOutputMsgMemoPage: TOutputMsgMemoWizardPage;
   NewOutputProgressPage: TOutputProgressWizardPage;
   NewOutputProgressPage: TOutputProgressWizardPage;
   NewOutputMarqueeProgressPage: TOutputMarqueeProgressWizardPage;
   NewOutputMarqueeProgressPage: TOutputMarqueeProgressWizardPage;
-{$IFNDEF PS_NOINT64}
   NewDownloadPage: TDownloadWizardPage;
   NewDownloadPage: TDownloadWizardPage;
   P: PPSVariantProcPtr;
   P: PPSVariantProcPtr;
   OnDownloadProgress: TOnDownloadProgress;
   OnDownloadProgress: TOnDownloadProgress;
-{$ENDIF}
   NewSetupForm: TSetupForm;
   NewSetupForm: TSetupForm;
 begin
 begin
   PStart := Stack.Count-1;
   PStart := Stack.Count-1;
@@ -270,7 +268,6 @@ begin
       raise;
       raise;
     end;
     end;
     Stack.SetClass(PStart, NewOutputMarqueeProgressPage);
     Stack.SetClass(PStart, NewOutputMarqueeProgressPage);
-{$IFNDEF PS_NOINT64}
   end else if Proc.Name = 'CREATEDOWNLOADPAGE' then begin
   end else if Proc.Name = 'CREATEDOWNLOADPAGE' then begin
     if IsUninstaller then
     if IsUninstaller then
       NoUninstallFuncError(Proc.Name);
       NoUninstallFuncError(Proc.Name);
@@ -292,7 +289,6 @@ begin
       raise;
       raise;
     end;
     end;
     Stack.SetClass(PStart, NewDownloadPage);
     Stack.SetClass(PStart, NewDownloadPage);
-{$ENDIF}
   end else if Proc.Name = 'SCALEX' then begin
   end else if Proc.Name = 'SCALEX' then begin
     InitializeScaleBaseUnits;
     InitializeScaleBaseUnits;
     Stack.SetInt(PStart, MulDiv(Stack.GetInt(PStart-1), ScaleBaseUnitX, OrigBaseUnitX));
     Stack.SetInt(PStart, MulDiv(Stack.GetInt(PStart-1), ScaleBaseUnitX, OrigBaseUnitX));
@@ -782,7 +778,6 @@ begin
     ExtractTemporaryFile(Stack.GetString(PStart));
     ExtractTemporaryFile(Stack.GetString(PStart));
   end else if Proc.Name = 'EXTRACTTEMPORARYFILES' then begin
   end else if Proc.Name = 'EXTRACTTEMPORARYFILES' then begin
     Stack.SetInt(PStart, ExtractTemporaryFiles(Stack.GetString(PStart-1)));
     Stack.SetInt(PStart, ExtractTemporaryFiles(Stack.GetString(PStart-1)));
-{$IFNDEF PS_NOINT64}
   end else if Proc.Name = 'DOWNLOADTEMPORARYFILE' then begin
   end else if Proc.Name = 'DOWNLOADTEMPORARYFILE' then begin
     P := Stack.Items[PStart-4];
     P := Stack.Items[PStart-4];
     { ProcNo 0 means nil was passed by the script }
     { ProcNo 0 means nil was passed by the script }
@@ -796,7 +791,7 @@ begin
   end else if Proc.Name = 'DOWNLOADTEMPORARYFILESIZE' then begin
   end else if Proc.Name = 'DOWNLOADTEMPORARYFILESIZE' then begin
     Stack.SetInt64(PStart, DownloadTemporaryFileSize(Stack.GetString(PStart-1)));
     Stack.SetInt64(PStart, DownloadTemporaryFileSize(Stack.GetString(PStart-1)));
   end else if Proc.Name = 'DOWNLOADTEMPORARYFILEDATE' then begin
   end else if Proc.Name = 'DOWNLOADTEMPORARYFILEDATE' then begin
-    Stack.SetString(PStart, DownloadTemporaryFileDate(Stack.GetString(PStart-1)));{$ENDIF}
+    Stack.SetString(PStart, DownloadTemporaryFileDate(Stack.GetString(PStart-1)));
   end else
   end else
     Result := False;
     Result := False;
 end;
 end;
@@ -871,7 +866,6 @@ begin
       Stack.SetBool(PStart, True);
       Stack.SetBool(PStart, True);
     end else
     end else
       Stack.SetBool(PStart, False);
       Stack.SetBool(PStart, False);
-{$IFNDEF PS_NOINT64}
   end else if Proc.Name = 'GETSPACEONDISK64' then begin
   end else if Proc.Name = 'GETSPACEONDISK64' then begin
     if GetSpaceOnDisk(ScriptFuncDisableFsRedir, Stack.GetString(PStart-1), FreeBytes, TotalBytes) then begin
     if GetSpaceOnDisk(ScriptFuncDisableFsRedir, Stack.GetString(PStart-1), FreeBytes, TotalBytes) then begin
       Stack.SetInt64(PStart-2, Int64(FreeBytes.Hi) shl 32 + FreeBytes.Lo);
       Stack.SetInt64(PStart-2, Int64(FreeBytes.Hi) shl 32 + FreeBytes.Lo);
@@ -879,7 +873,6 @@ begin
       Stack.SetBool(PStart, True);
       Stack.SetBool(PStart, True);
     end else
     end else
       Stack.SetBool(PStart, False);
       Stack.SetBool(PStart, False);
-{$ENDIF}
   end else if Proc.Name = 'GETUSERNAMESTRING' then begin
   end else if Proc.Name = 'GETUSERNAMESTRING' then begin
     Stack.SetString(PStart, GetUserNameString());
     Stack.SetString(PStart, GetUserNameString());
   end else if Proc.Name = 'INCREMENTSHAREDCOUNT' then begin
   end else if Proc.Name = 'INCREMENTSHAREDCOUNT' then begin
@@ -1177,7 +1170,6 @@ begin
     except
     except
       Stack.SetBool(PStart, False);
       Stack.SetBool(PStart, False);
     end;
     end;
-{$IFNDEF PS_NOINT64}
   end else if Proc.Name = 'FILESIZE64' then begin
   end else if Proc.Name = 'FILESIZE64' then begin
     try
     try
       F := TFileRedir.Create(ScriptFuncDisableFsRedir, Stack.GetString(PStart-1), fdOpenExisting, faRead, fsReadWrite);
       F := TFileRedir.Create(ScriptFuncDisableFsRedir, Stack.GetString(PStart-1), fdOpenExisting, faRead, fsReadWrite);
@@ -1191,7 +1183,6 @@ begin
     except
     except
       Stack.SetBool(PStart, False);
       Stack.SetBool(PStart, False);
     end;
     end;
-{$ENDIF}
   end else if Proc.Name = 'SET8087CW' then begin
   end else if Proc.Name = 'SET8087CW' then begin
     Set8087CW(Stack.GetInt(PStart));
     Set8087CW(Stack.GetInt(PStart));
   end else if Proc.Name = 'GET8087CW' then begin
   end else if Proc.Name = 'GET8087CW' then begin

+ 2 - 2
Projects/Src/Struct.pas

@@ -69,7 +69,7 @@ type
   TSetupLanguageDetectionMethod = (ldUILanguage, ldLocale, ldNone);
   TSetupLanguageDetectionMethod = (ldUILanguage, ldLocale, ldNone);
   TSetupCompressMethod = (cmStored, cmZip, cmBzip, cmLZMA, cmLZMA2);
   TSetupCompressMethod = (cmStored, cmZip, cmBzip, cmLZMA, cmLZMA2);
   TSetupSalt = array[0..7] of Byte;
   TSetupSalt = array[0..7] of Byte;
-  TSetupProcessorArchitecture = (paUnknown, paX86, paX64, paIA64, paArm32, paArm64);
+  TSetupProcessorArchitecture = (paUnknown, paX86, paX64, paArm32, paArm64);
   TSetupProcessorArchitectures = set of TSetupProcessorArchitecture;
   TSetupProcessorArchitectures = set of TSetupProcessorArchitecture;
   TSetupDisablePage = (dpAuto, dpNo, dpYes);
   TSetupDisablePage = (dpAuto, dpNo, dpYes);
   TSetupPrivilegesRequired = (prNone, prPowerUser, prAdmin, prLowest);
   TSetupPrivilegesRequired = (prNone, prPowerUser, prAdmin, prLowest);
@@ -78,7 +78,7 @@ type
   TSetupWizardStyle = (wsClassic, wsModern);
   TSetupWizardStyle = (wsClassic, wsModern);
 const
 const
   SetupProcessorArchitectureNames: array[TSetupProcessorArchitecture] of String =
   SetupProcessorArchitectureNames: array[TSetupProcessorArchitecture] of String =
-    ('Unknown', 'x86', 'x64', 'Itanium', 'Arm32', 'Arm64');
+    ('Unknown', 'x86', 'x64', 'Arm32', 'Arm64');
 
 
 const
 const
   SetupHeaderStrings = 32;
   SetupHeaderStrings = 32;

+ 12 - 9
README.md

@@ -89,7 +89,7 @@ Component Installation
 ----------------------
 ----------------------
 
 
 If you intend to view or modify the Setup project's forms, you must install
 If you intend to view or modify the Setup project's forms, you must install
-the following component units, which can be found in the Components
+the following component units, which can be found in the [Components]
 directory.
 directory.
 
 
 - BidiCtrls
 - BidiCtrls
@@ -108,7 +108,7 @@ additionally install the following components.
 - DropListBox
 - DropListBox
 - NewTabSet
 - NewTabSet
 
 
-The Components directory contains a Components project which you can use to
+The [Components] directory contains a Components project which you can use to
 install all these components.
 install all these components.
 
 
 If you only want to edit code, then you may skip installation of the
 If you only want to edit code, then you may skip installation of the
@@ -161,7 +161,7 @@ How do the projects link together?
 Source code tips
 Source code tips
 ----------------
 ----------------
 
 
-- When building the projects in Debug mode it outputs to Projects\Bin and when
+- When building the projects in Debug mode it outputs to [Projects\Bin] and when
   debugging it will run from within this directory. To prepare this directory
   debugging it will run from within this directory. To prepare this directory
   with some extra files you must run **Projects\Bin\synch-isfiles.bat**.
   with some extra files you must run **Projects\Bin\synch-isfiles.bat**.
 
 
@@ -171,7 +171,7 @@ Source code tips
   This way you can simulate an actual installation while running under the
   This way you can simulate an actual installation while running under the
   Delphi debugger.
   Delphi debugger.
   
   
-- When building the projects in Release mode it outputs to Files.
+- When building the projects in Release mode it outputs to [Files].
   
   
 - All of the forms in the Setup project, with the exception of Main.dfm, have
 - All of the forms in the Setup project, with the exception of Main.dfm, have
   Scaled set to False. This is because they dynamically scale themselves at
   Scaled set to False. This is because they dynamically scale themselves at
@@ -184,7 +184,7 @@ Source code tips
 
 
 - To debug the uninstaller first run Setup.exe to completion with the
 - To debug the uninstaller first run Setup.exe to completion with the
   ``/DETACHEDMSG`` command line parameter set. Afterwards copy uninst000.dat and
   ``/DETACHEDMSG`` command line parameter set. Afterwards copy uninst000.dat and
-  uninst000.msg as setup.dat and setup.msg to the Projects\Bin directory in your
+  uninst000.msg as setup.dat and setup.msg to the [Projects\Bin] directory in your
   issrc path. Then open the Setup project and set the command line parameters to
   issrc path. Then open the Setup project and set the command line parameters to
   ``/UNINSTMODE "/SECONDPHASE=<your issrc path\Projects\Bin\Setup.exe"`` and start
   ``/UNINSTMODE "/SECONDPHASE=<your issrc path\Projects\Bin\Setup.exe"`` and start
   debugging. Note: each time setup.dat and setup.msg will be deleted if you
   debugging. Note: each time setup.dat and setup.msg will be deleted if you
@@ -203,7 +203,7 @@ from the bzlib directory in the Iscompress repository.
 from the zlib-dll directory in the Iscompress repository.
 from the zlib-dll directory in the Iscompress repository.
 
 
 **Files\islzma.dll**, **Files\islzma32.exe**, **Files\islzma64.exe** - Compiled
 **Files\islzma.dll**, **Files\islzma32.exe**, **Files\islzma64.exe** - Compiled
-by Visual Studio 2005 from the [Projects\Lzma2\Encoder] directory.
+by Visual Studio 2005 from the [Projects\Src\Lzma2\Encoder] directory.
 
 
 **Files\isscint.dll** - Compiled by Visual Studio 2005 from Scintilla 2.22 source
 **Files\isscint.dll** - Compiled by Visual Studio 2005 from Scintilla 2.22 source
 code with scintilla-2.22-patch.txt applied.
 code with scintilla-2.22-patch.txt applied.
@@ -273,10 +273,13 @@ workflow will be triggered automatically.
 
 
 <!-- Link references -->
 <!-- Link references -->
 [CONTRIBUTING.md]: <CONTRIBUTING.md>
 [CONTRIBUTING.md]: <CONTRIBUTING.md>
-[Projects\Lzma2\Encoder]: <Projects/Lzma2/Encoder>
+[Projects\Bin]: <Projects/Bin>
+[Components]: <Components>
+[Files]: <Files>
+[Projects\Src\Lzma2\Encoder]: <Projects/Src/Lzma2/Encoder>
 [Projects\Helper]: <Projects/Helper>
 [Projects\Helper]: <Projects/Helper>
 [Examples\MyProg]: <Examples/MyProg>
 [Examples\MyProg]: <Examples/MyProg>
-[Projects\LzmaDecode\compiling.txt]: <Projects/LzmaDecode/compiling.txt>
-[Projects\Lzma2\Decoder\compiling.txt]: <Projects/Lzma2/Decoder/compiling.txt>
+[Projects\Src\LzmaDecode\compiling.txt]: <Projects/Src/LzmaDecode/compiling.txt>
+[Projects\Src\Lzma2\Decoder\compiling.txt]: <Projects/Src/Lzma2/Decoder/compiling.txt>
 [7-Zip]: https://www.7-zip.org/
 [7-Zip]: https://www.7-zip.org/
 [secret]: https://docs.github.com/en/actions/security-guides/encrypted-secrets
 [secret]: https://docs.github.com/en/actions/security-guides/encrypted-secrets

+ 1 - 1
whatsnew.htm

@@ -89,7 +89,7 @@ ArchitecturesAllowed=win64</pre>
   <li>[Registry] section parameter <tt>Permissions</tt> is now effectual on 64-bit registry keys on Windows 11 for Arm as well.</p>
   <li>[Registry] section parameter <tt>Permissions</tt> is now effectual on 64-bit registry keys on Windows 11 for Arm as well.</p>
   <li>Setup now logs the machine types supported by the system. For example, when running on Windows 11 for Arm it now logs: "Machine types supported by system: x86 x64 arm32 arm64".</li>
   <li>Setup now logs the machine types supported by the system. For example, when running on Windows 11 for Arm it now logs: "Machine types supported by system: x86 x64 arm32 arm64".</li>
   <li>Message OnlyOnTheseArchitectures is not used anymore. Instead existing message WindowsVersionNotSupported is now shown when Setup is started on an architecture which is not allowed by the <tt>ArchitecturesAllowed</tt> expression. (But please do not remove the message from translation files.)<br/><br/></li>
   <li>Message OnlyOnTheseArchitectures is not used anymore. Instead existing message WindowsVersionNotSupported is now shown when Setup is started on an architecture which is not allowed by the <tt>ArchitecturesAllowed</tt> expression. (But please do not remove the message from translation files.)<br/><br/></li>
-  <li>Pascal Scripting change: Add new <tt>IsArm32Compatible</tt>, <tt>IsX64Compatible</tt>, <tt>IsX64OS</tt>, <tt>IsX86Compatible</tt>, and <tt>IsX86OS</tt> support functions. The <tt>IsX64</tt> support function still exists but is now deprecated as explained above. Example testing all platform identifiers:
+  <li>Pascal Scripting change: Added new <tt>IsArm32Compatible</tt>, <tt>IsX64Compatible</tt>, <tt>IsX64OS</tt>, <tt>IsX86Compatible</tt>, and <tt>IsX86OS</tt> support functions. The <tt>IsX64</tt> support function still exists but is now deprecated as explained above. Example testing all platform identifiers:
       <pre>[Code]
       <pre>[Code]
 function InitializeSetup: Boolean;
 function InitializeSetup: Boolean;
 begin
 begin