89267 Commits
Author SHA1 Message Date
Mikhail Tyukin 07fe476126 [UIAUTOMATIONCORE] Use add_idl_reg_scripts and register in syssetup
Oleacc winetest depends on uiautomation.dll to be registered to use IAccessible interface. The oleacc DLL does not use the wine_dllregister library but instead registers the proxy class which results in the interface not being accessible.
2026-07-14 17:21:17 +02:00
Mikhail Tyukin 1616b215a3 [OLEACC] Sync to Wine-10.0 2026-07-14 17:21:17 +02:00
Whindmar Saksit 796000921d [CMD] Add support for the NT CHOICE command syntax (#9284)
This makes our built-in choice command compatible with how choice is implemented on NT5.2+ (it isn't included in Windows XP and below), while retaining compatibility with how it worked in DOS/9x.

- Changes /C and /T to also support the NT syntax.
- Adds the /CS, /D and /M switches.

This makes it easy for JIRA issue CORE-20043 to use this code to create a proper choice.exe
2026-07-14 17:17:42 +02:00
Timo Kreuzer 4117217b61 [RSYM] Make the ROSSYM_ENTRY::Address field ULONG
This is an RVA, so there is no reason to expand it to 64 bit on x64.
Fixes crash of dbghelp_apitest rsym on x64, as the test was using ULONG while dbghelp was using ULONG_PTR and rsym itself was using TARGET_ULONG_PTR.
2026-07-13 12:39:42 +00:00
Katayama Hirofumi MZ 3b241f5e8e [IMM32] ImmGetRegisterWordStyleA: Change MB_PRECOMPOSED to zero (#9286)
The parameter was wrong.
JIRA issue: CORE-20683
- Don't use MB_PRECOMPOSED flag
  for WideCharToMultiByte.
2026-07-13 20:18:41 +09:00
Oleg Dubinskiy 02d7bbc54d [SETUPAPI] Create device interface related keys in case they don't exist yet (#9283)
In SetupDiCreateDeviceInterfaceRegKeyW(), force creating device and reference subkeys of device interface in Registry if they are not created yet.
- Change RegOpenKeyExW() to RegCreateKeyExW() for device and reference subkeys.
This properly fixes audio device name string improperly set in registry and displaying audio device name system-wide. Now it's properly written not only after re-installing audio driver from Device Manager, but also during 2nd setup stage, so it's correct just right after 1st boot.
Addendum to 1ef584c446 and b205c04173.
CORE-20603
2026-07-13 11:25:15 +02:00
Eric Kohl 46e69e6e50 [UMPNPMGR] PNP_FreeLogConf: Implement the deletion of one requirements list from a list of multiple alternatives 2026-07-12 10:52:46 +02:00
Eric Kohl c802387242 [UMPNPMGR] Fix indentation 2026-07-12 10:44:21 +02:00
Timo Kreuzer e45b639372 [KMTEST] Make Ob type tests work on Vista+ 2026-07-12 07:44:53 +00:00
Timo Kreuzer d5daba4789 [NDK] Add missing extern "C" 2026-07-12 07:44:53 +00:00
Timo Kreuzer 020b5b7b0a [USER32] Fix GetDisplayConfigBufferSizes
Fixes crash in user32_winetest on NT6 builds.
2026-07-12 07:42:40 +00:00
Serge Gautherie f9e3448f16 [BOOT][ROSTESTS][SHELL32][USERENV] Fix 'StartUp' typo (#8304)
CORE-18893
2026-07-11 23:47:53 +02:00
Eric Kohl 776b4389f8 [NETSH] Silence some debug messages 2026-07-11 19:11:09 +02:00
Timo Kreuzer 34d71f7879 [ROSAUTOTEST] Fix potential issues in pipe reading
- Initialize m_ReadOverlapped.hEvent as unset
- Reset m_ReadOverlapped.hEvent before use
- Zero-inialize m_ReadOverlapped (except for hEvent) before use
- Call CancelIo, if waiting on the asynchronous read event failed
2026-07-11 16:48:14 +00:00
Timo Kreuzer be66db5ab4 [ROSAUTOTEST] Fix handling of empty test lists
Throw a test exception from GetNextTest if DoListCommand() returned an empty string, instead of continuing with a NULL buffer.
2026-07-11 16:48:14 +00:00
Oleg Dubinskiy 1ef584c446 [SETUPAPI] Fix the creation of symbolic link passed to SetupDiCreateDeviceInterfaceRegKeyW() (#8967)
- Create the actual symbolic link, instead of just instance key name (don't replace all \ by # and don't cut reference string from it) inside CreateSymbolicLink() internal helper of SetupDiInstallDeviceInterfaces(), to pass it in SetupDiCreateDeviceInterfaceRegKeyW() inside InstallOneInterface() internal helper later.
- Fix handling the received symbolic link inside SetupDiCreateDeviceInterfaceRegKeyW() itself. Except it to be the fully unmodified one, instead of transformed to an instance key name.
- Additionally, change the SetupInstallFromInfSection() call to SetupInstallFromInfSectionW(), since it's actually called with Unicode parameters from Unicode version of SetupDiCreateDeviceInterfaceRegKeyW(). Otherwise, if to not precisely specify Unicode version call, it might call ANSI function instead and hence will obviously not work correctly because of that.
This fixes regression with improper writing "CLSID" and "FriendlyName" values in "Device Parameters" subkey of device interfaces in Registry, because of reference key open failure, and therefore it also fixes detection of the audio device name in Sound Proeprties from Control Panel in particular.
Follow-up of b205c04173.
CORE-20603
2026-07-10 19:04:29 +02:00
Oleg Dubinskiy d8f4c417c5 [SETUPAPI_WINETEST] Import test_open_device_interface_key() test from Wine 11.12 (#9269)
Import the Winetest part of the following commit: https://github.com/wine-mirror/wine/commit/4a3cd01bd150c27d7fd40d04fc92b173f2f988af#diff-faec0db2bbb0fae700317fc0160fb2d3f2406ad9f6b55b0c667a9ca4d566d097
CORE-20603
2026-07-10 19:02:01 +02:00
Katayama Hirofumi MZ c296dcfa29 [MSPAINT] Fix unzooming coordinate conversion (#9251)
Always rounding of unzooming coordinate values had caused
display glitch (e.g. black line on top edge in zooming).
JIRA issue: CORE-19466
- Add bRound parameter to UnZoomed function. If bRound is
  TRUE, then do round by kernel32!MulDiv function.
  Otherwise don't round.
- Add bRound parameter to CCanvasWindow::CanvasToImage.
- Make bRound = FALSE default.
- Use bRound = TRUE for CCanvasWindow::OnButtonDown,
  CCanvasWindow::OnButtonDblClk,
  CCanvasWindow::OnMouseMove, and CCanvasWindow::OnButtonUp.
2026-07-10 16:31:25 +09:00
Eric Kohl 1a706d759e [NETSH] Fix version info and add version callback checks 2026-07-10 00:20:14 +02:00
Whindmar Saksit 2885d40937 [SYSSETUP] Unattended ComputerName=* means random name (#9267)
Windows supports[^1] using * as "automatic" for some entries. Let's support it as well.

[^1]: https://web.archive.org/web/20070506023846/http://www.microsoft.com/technet/prodtechnol/Windows2000Pro/deploy/unattend/sp1ch01.mspx
2026-07-09 23:35:05 +02:00
Hermès Bélusca-Maïto 8b5e6383f2 [COMCTL32] Pass a couple of window messages to the active page of property sheets (#9239)
CORE-20681

Send `WM_ACTIVATE` and `WM_ACTIVATEAPP` to the property sheet active page.
And do the same with `WM_ENABLE`, `WM_QUERYENDSESSION`, `WM_ENDSESSION`,
and `WM_DEVICECHANGE`, after sending them to the tab control first.

Similar in spirit to commit d09c3d0af8.
2026-07-09 20:32:29 +02:00
Hermès Bélusca-Maïto 3b157605bc [COMCTL32] Pass WM_SYSCOLORCHANGE/WM_DISPLAYCHANGE/WM_WININICHANGE also to the property sheet tab control (#9239)
Addendum to commit d09c3d0af8.

CORE-13212, CORE-20681
2026-07-09 20:32:13 +02:00
Ethem Çılgın 7d08042343 [SHELL32] Improve Turkish (tr-TR) translation (#9222)
Translate several missing English strings and fix translation error in the context menu.

- Update `IDS_MOVETOMENU` from `"Di&zini kopyala..."` to `"Di&zine taşı..."`. The previous translation mistakenly used "kopyala" (copy) for a move operation, which caused confusion and duplicated string appearance in the shell context menu.
- Complete translations for various previously untranslated strings (including advanced folder options, visual effects, and shortcut run states).
2026-07-09 15:14:13 +03:00
Karol Gocłowski 10186d2d13 [RUNAS] Add Polish (pl-PL) translation (#9180) 2026-07-09 14:54:10 +03:00
Ahmed Arif 63deca5a96 [ACPI][UEFI] Use bootloader-provided ACPI root pointer in OSL (#8980)
Fix ACPI table discovery on the UEFI boot path by teaching the ACPI OSL
to use the loader-provided ACPI root table information instead of relying
only on legacy BIOS RSDP scanning:

- Build a synthetic RSDP from the ACPI BIOS configuration node
  populated by the bootloader
- Fallback to the old scan only if that data is unavailable
- Keep full 64-bit physical addresses when mapping ACPI tables
- Improve failure diagnostics if initialization still fails

This lets ACPICA initialize from the UEFI-provided RSDT/XSDT path.
CORE-11954

So QEMU Q35 on UEFI is now able to discover ACPI tables through the loader-
provided root table path, which fixes 0x7B INACCESSIBLE_BOOT_DEVICE bugcheck:

https://github.com/user-attachments/assets/25d4d9c9-4197-496b-84f9-e5642c65809d
2026-07-09 01:40:17 +03:00
Timo Kreuzer d7aa4ad3f3 [SYSSETUP] Fix use of uninitialized variable 2026-07-08 11:07:34 +00:00
Timo Kreuzer 5e428f34df [RTL_UNITTEST] Add RtlpInitialize
This will be compiled as a dummy in the test library, but in the unit test it will actually initialize the required RTL things.
For now it is only RtlpInitializeVectoredExceptionHandling.
This prevents a problem with the RtlVirtualUnwind test.
2026-07-07 11:32:46 +00:00
Timo Kreuzer 7aef1353e9 [ROSAUTOTEST] Fix testlist parsing
- Fix reading of test list. Fixes large test lists, that previously got truncated and could result in a crash.
- Prevent crash on parsing invalid test lists.
- Use an std::string for the list storage.
2026-07-07 11:32:08 +00:00
Timo Kreuzer 877416e6a5 [ROSAUTOTEST] Don't run random executables in the bin folder
Instead only run *test.exe.
Stops randomly spawning gui apps and then timing out.
2026-07-07 11:32:08 +00:00
Timo Kreuzer 731ff54e56 [XDK] Fix C++ definition of RTL_NUMBER_OF_V2 for GCC 2026-07-07 11:32:08 +00:00
Timo Kreuzer 72425186d7 [KMTEST] Rename kmtest_.exe back to kmtest.exe 2026-07-07 11:32:08 +00:00
Timo Kreuzer d8b075e382 [ROSAUTOTEST] Handle test executable names that don't have an underscore
This removes the need for the trailing underscore in "kmtest_.exe"
2026-07-07 11:32:08 +00:00
Katayama Hirofumi MZ d6ac48ec5d [MSPAINT] Support dithering drawing (#9175)
Support drawing with dithering on
monochrome palette mode.
JIRA issue: CORE-15990
- Enhance drawing routines for
  dithering in drawing.cpp.
- Add VirtualBrush class to the
  tools model in order to virtualize
  the drawing colors.
- Move PaletteModel::CreateDitherBrush
  to drawing.cpp ::CreateDitherBrush.
Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
2026-07-07 12:44:29 +09:00
Oleg Dubinskiy f729134316 [USER32] Implement IsServerSideWindow() (undocumented) (#9229)
CORE-19946
Adapted from PR #7577

Implement the undocumented `IsServerSideWindow()` function in user32.
It checks whether a window has a window procedure that resides in kernel
mode, and returns a boolean condition based on the appropriate internal
window state flag (`WNDS_SERVERSIDEWINDOWPROC`).

This function is not officially documented by Microsoft, but there exists
unofficial documentation[^1] for it.

It is required and used internally by uxtheme.dll from Windows XP/2003/Vista/7/etc.
The log spams with it a lot, when using uxtheme.dll from Windows in ReactOS.

[^1]: https://undoc.airesoft.co.uk/user32.dll/IsServerSideWindow.php
2026-07-06 18:01:29 +02:00
Oleg DubinskiyandMohammad Amin Mollazadeh c126bccb4b [USER32_APITEST] Add a test for IsServerSideWindow() (#9229)
CORE-19946
Adapted from PR #7577

This function tests whether a window has a window procedure that resides in kernel mode.
It is not documented by Microsoft, but unofficial (3rd party) documentation[^1] exists.
It is required and used internally by uxtheme.dll from Windows XP/2003/Vista/7/etc.

[^1]: https://undoc.airesoft.co.uk/user32.dll/IsServerSideWindow.php

Co-authored-by: Mohammad Amin Mollazadeh <[email protected]>
2026-07-06 17:58:55 +02:00
Oleg Dubinskiy 55eb678043 [SDK] Add the IsServerSideWindow() function prototype in undocuser.h (#9229)
CORE-19946
See also PR #7577

This function is not officially documented.
2026-07-06 17:58:41 +02:00
Whindmar Saksit 55c0ae4198 [GITHUB] Try flexbison.7z fallback mirror (#9247) 2026-07-06 12:51:07 +02:00
Eric Kohl 71ee75477e [WKSSVC][NETAPI32] Fix NetGetJoinInformation 2026-07-04 22:41:48 +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
Hermès Bélusca-Maïto c67be4ceff [ROSTESTS] Add an interactive "menuaccels" test to view window keyboard messages
This test allows viewing the window keyboard messages (`WM_KEYDOWN/UP`,
`WM_CHAR`, ...) that are sent by Win32k whenever the user presses keys,
including what happens when Alt+Numpad combinations are typed in.

The application shows the list of received messages in a format similar
to that of Microsoft Spy++.
2026-07-04 19:28:17 +02:00
Carl J. Bialorucki 6117b1bdef [SYSSETUP][BOOTDATA] Add winevdm as an optional module (#9219)
- Add winevdm_setup as an optional module that can be preloaded on install
- Prompt to install both gecko and winevdm if the installer is not on disk
- Change "DisableGeckoInst" to "DisableAddonsInst" because we are installing more than just Gecko now
- No longer use appwiz,,install_gecko hack from wine appwiz
- Delete installer after successfully installing winevdm and gecko locally
2026-07-04 12:03:47 -05:00
Timo Kreuzer 5e76d075f1 [WIN32K:ENG] Relax surface parameter validation
If no bitmap buffer size is provided (e.g. allocation path from EngCreateBitmap), do not validate that the size calculation is valid. Should fix some display drivers, like Radeon IGP 320M.
See CORE-13036, CORE-11676
2026-07-04 07:55:24 +00: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
Timo Kreuzer 7955690ad7 [NTOS:EX] Create a stub for SystemModuleInformationEx sysinfo class
The stub returns STATUS_INVALID_INFO_CLASS rather than STATUS_NOT_IMPLEMENTED.
This is a temporary measure to indicate to ntdll_winetest that this system information class is not implemented and prevent the test from crashing.
2026-07-03 17:04:11 +00:00
Timo Kreuzer c6410fb0c2 [NTOS:EX] Fix query of SystemTimeAdjustmentInformation 2026-07-03 17:04:11 +00:00
Timo Kreuzer feb0f56da7 [NTOS:EX] Fix query of SystemInterruptInformation 2026-07-03 17:04:11 +00:00
Timo Kreuzer eb3d5a4f9d [NTOS:EX] Implement query of SystemRecommendedSharedDataAlignment 2026-07-03 17:04:11 +00:00
Timo Kreuzer 05017d7160 [NTOS:EX] Implement query of SystemExtendedProcessInformation 2026-07-03 17:04:11 +00:00
Timo Kreuzer f7cac4a97c [NDK] Add SYSTEM_EXTENDED_THREAD_INFORMATION 2026-07-03 17:04:11 +00:00