14 Commits
Author SHA1 Message Date
Mohammad Amin Mollazadeh ec4af44cff [RPCRT4] Sync rpcrt4.spec to Wine-10.0 (#9338) 2026-07-27 12:12:15 +02:00
Mohammad Amin Mollazadeh e3c4b21737 [RAPPS] Force download online apps catalog in ID_RESETDB (#9242)
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
2026-07-25 08:15:19 +02:00
Mohammad Amin Mollazadeh 64f1cf3b6d [WIN32SS:NTUSER] Fix DrawText ellipsification bug (#9240)
CORE-20581

Fix DrawText ellipsification rendering bug when `DT_WORD_ELLIPSIS` / `DT_PATH_ELLIPSIS` is used.

Import patch from Wine 11.3: wine-mirror/wine@5909e90 (https://gitlab.winehq.org/wine/wine/-/merge_requests/11298)
```
user32: Fix lastSlash handling in TEXT_PathEllipsify.

Set lastSlash to end of string when no path separator is found.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=59727

wine commit id 5909e9070f2fba8f6231e6a2b1459dadce524b4b by Maotong Zhang <[email protected]>
```
2026-07-04 20:25:18 +02:00
Mohammad Amin Mollazadeh 3d86d5eed9 [SHCORE] IsOS(OS_XPORGREATER) should return TRUE on NT 6.0+ (#9196)
CORE-20577

Even though the official documentation[^1] says `IsOS(OS_XPORGREATER)` always
returns FALSE, the tests show otherwise and there are application compatibility
issues otherwise.

[^1]: https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-isos
2026-07-03 19:09:49 +02:00
Mohammad Amin Mollazadeh cb25e90266 [SHLWAPI_APITEST] Add tests for IsOS() (#9196)
CORE-20577

Test some `OS_*` values that should return FALSE, and other values that
actually return TRUE, contrary to what the official documentation[^1] claims.

[^1]: https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-isos
2026-07-03 19:09:44 +02:00
Mohammad Amin Mollazadeh f66f40ec43 [RICHED20] Fix crash on copy (#9224)
CORE-20482

The reason for the crash was a wrong sign extension being done when right-shifting an integer.
Casting to an unsigned integer allows the correct zero-extension instead.

Import patch from Wine 11.3: wine-mirror/wine@bb4ef1f (https://gitlab.winehq.org/wine/wine/-/merge_requests/9776)
```
riched20: Fix crash when copying text.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=59005
wine commit id bb4ef1fbf7d8dae627025ea698c740cca8d15a06 by Piotr Caban <[email protected]>
```
2026-07-03 14:30:52 +02:00
Mohammad Amin MollazadehandSimone Mario Lombardo 6d8a5fa0bb [WIN32SS:NTGDI] Allow calling NtGdiCreateHalftonePalette with a NULL hDC (#9217)
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]>
2026-07-02 20:19:33 +02:00
Mohammad Amin Mollazadeh 3e78f9a735 [GDI32_APITEST] Add a test for CreateHalftonePalette (#9217)
CORE-20231

The test calls `CreateHalftonePalette(NULL)` and verifies it returns
a valid palette.
2026-07-02 20:19:33 +02:00
Mohammad Amin Mollazadeh b4b8774bee [SETUPAPI] Fix SetupGetBinaryField not reading HEX values properly from INF files (#9182)
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...)
2026-06-19 17:16:19 +02:00
Mohammad Amin MollazadehandHermès BÉLUSCA - MAÏTO 2351d0ea8c [SETUP:REACTOS] Fix page transition in setup wizard (#9172)
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]>
2026-06-18 23:16:31 +02:00
Mohammad Amin MollazadehandMaotong Zhang ea313e6129 [MSI] Fix not showing combobox items (#9165)
Import fix from Wine-11.6, commit https://github.com/wine-mirror/wine/commit/46e5cabca7be1d09d561f6203f073a7bff385d5d

msi: Add ComboBox items, using value if text does not exist.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56296

PR #8971 will upgrade module to Wine-10.0,
so guard the change with `#ifdef __REACTOS__`. Fixes CORE-15709.

Co-authored-by: Maotong Zhang <[email protected]>
2026-06-16 17:52:31 +03:00
Mohammad Amin Mollazadeh 91146de1cd [KERNEL32] BasepCopyFileExW: Check dwCopyFlags properly (#9133)
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
2026-06-16 16:10:23 +03:00
Mohammad Amin Mollazadeh 0fa49018cd [FREELDR] Show a notice message when booting in debug mode (#7967)
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.
2025-05-14 22:15:11 +02:00
Mohammad Amin Mollazadeh be87e0099f [SHELL32] Return correct CSIDL for "Network Connections" menu item (#7938)
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
2025-04-28 22:44:58 +03:00