Since the database is downloaded lazily, clicking on "Update Database"
button won't re-download the online catalog if "Available apps" view is
not active. This patch forces the download even when the "Installed apps"
is active.
CORE-20205
CORE-20231
Tests show this is allowed on Windows and even Wine. Also, official MS
Windows SDK headers indicate that the `CreateHalftonePalette()` `hDC`
parameter is optional, and so can be NULL.
Not allowing a NULL `hDC` caused compatibility issues, breaking applications
like Internet Explorer 8.0 and Microsoft Encarta.
Make `NtGdiCreateHalftonePalette()` accept a NULL `hDC`, fixing its crash
in this case, and only locking it when it's not NULL. Simplify also the
function execution path.
Co-authored-by: Simone Mario Lombardo <[email protected]>
CORE-20657, CORE-13525
Fix an issue in `SetupGetBinaryField()` that made the GUI installer unable to read INF files properly.
For this reason, all the binary values in the registry on a fresh ReactOS installation were all set to `0x00`.
The reason was that the custom HEX parser in Wine's `SetupGetBinaryField()` is broken.
As a solution, we can replace it with a call to C's standard `wcstoul()` function.
(Note that Wine fixed this problem in wine-11, still with a hand-made hex-value parser...)
CORE-20661, CORE-13525
The GUI-mode setup was asking the user for device configuration and installation
destination partition, even when upgrading or repairing an existing installation.
It doesn't make sense to ask: e.g. you shouldn't be able to upgrade an installation
in C: to D: partition; and the setup ignores what the user chooses: e.g. if your
installation is using a 1024x768 resolution, choosing another resolution during
the SETUP won't change the resolution.
Thus, the setup should skip these pages without asking anything from user.
This is also consistent with USETUP's behavior.
- Set `InstallPartition` and `InstallationDirectory` to selected repair/upgrade
target volume and directory.
- Jump to the Summary page from the Install type/upgrade pages.
- Return to the Install type/upgrade page when navigating backward from the Summary page.
- Return to the Installation type page when navigating backward from the Device page.
Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
The function didn't check if `COPY_FILE_FAIL_IF_EXISTS` bit flag is set
or not, always failing if _any_ flags were set and the destination file
already existed.
This behavior was probably implemented under assumption that
`COPY_FILE_FAIL_IF_EXISTS` is the only valid flag, but it's not the case.
There are other flags, so this was breaking applications when they intend
to overwrite a file with e.g. `COPY_FILE_ALLOW_DECRYPTED_DESTINATION`.
These functions were affected by the problem:
- CopyFileEx - exposed by Total Commander not being able to overwrite file
- PrivCopyFileEx
- MoveFileWithProgress
Also cover `ERROR_ALREADY_EXISTS` returned by CreateFileW to match Windows
behavior, making the API tests pass.
CORE-10271
Make FreeLoader print a notice message before it passes the control
to the kernel, if kernel-mode debugging is enabled via boot options.
This can be helpful for people who may forget that they're booting
in debug mode (the default boot option also for the bootcd) and they
need to attach a debugger for the boot process to continue.
Fixes erroneous addition of "Properties" item into its context menu.
- Addendum to 0241b5c4e9 and 5aaead3fdb. CORE-20152
- Also remove FIXME for CORE-19477 which is fixed now. CORE-20151