Commit Graph
89135 Commits
Author SHA1 Message Date
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
Timo Kreuzer ef7d4d2043 [NTOS:EX] Implement query of SystemProcessorBrandString 2026-07-03 17:04:11 +00:00
Timo Kreuzer 1704b28ed0 [HAL] Implement HaliQueryProcessorBrandString 2026-07-03 17:04:11 +00:00
Timo Kreuzer 5ab5b8e5f3 [NTOS:EX] Implement query of SystemEmulationProcessorInformation 2026-07-03 17:04:11 +00:00
Timo Kreuzer 252a552dc6 [NTOS:EX] Implement query of SystemEmulationBasicInformation 2026-07-03 17:04:11 +00:00
Katayama Hirofumi MZ 79761d88fd [SHELL32][SHLWAPI][SHELL32_APITEST][SDK] Support AssocCreateElement (#9215)
Prepare for CLSID_QueryAssociations.
JIRA issue: CORE-20467
- Add dll/win32/shell32/evalcmd/
  elements.cpp.
- Implement AssocCreateElement
  function in elements.cpp.
- Modify shell32.spec.
- Fix shlwapi!AssocCreate by using
  AssocCreateElement.
- Add SKGetValueW and
  SKSetValueW prototypes into
  <shlwapi_undoc.h>.
- Add AssocCreateElement
  prototype into <shlwapi_undoc.h>.
- Add some CLSIDs into
  <shlguid_undoc.h>.
- Add some resource strings into
  shlwapi.
- Add AssocGetPerceivedType
  prototype into <shlwapi.h>.
- Add AssocCreateElement
  testcase into shell32_apitest.
2026-07-04 01:10:31 +09: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
Timo Kreuzer ed51a5d1e2 [RTL][NTDLL] Implement processor related NT6+ functions
Implements RtlGetCurrentProcessorNumberEx, RtlIsProcessorFeaturePresent
2026-07-01 21:45:34 +00:00
Timo Kreuzer dbb4d36927 [NTOS:KE][NTDLL][NTDLL_VISTA] Implement NtGetCurrentProcessorNumberEx 2026-07-01 21:45:34 +00:00
Timo Kreuzer aab0eac949 [NTDLL_APITEST] Add test for NtGetCurrentProcessorNumberEx 2026-07-01 21:45:34 +00:00
Timo Kreuzer 098532b9c5 [NDK] Add NtGetCurrentProcessorNumberEx 2026-07-01 21:45:34 +00:00
Amine Khaldi deb11f4e67 [URLMON_WINETEST] Sync with Wine 10.0. CORE-20596 2026-07-01 16:58:14 +01:00
Amine Khaldi 72eb24c100 [PSDK] Update urlmon.idl. CORE-20596 2026-07-01 16:58:14 +01:00
Whindmar Saksit ff2ad34155 [CABVIEW][ZIPFLDR] Implement ParseDisplayName and GetDetailsEx (#9197) 2026-07-01 12:29:53 +02:00
Whindmar Saksit c891aefdcf [SHELL32] Implement CFolder[Item] getters/setters (#9173) 2026-07-01 11:41:17 +02:00
Timo Kreuzer 6679825f21 [WS2_32] Import inet_addr from wine
The old implementation was buggy and caused stack corruption (triggered by ws2_32_winetest:sock test_inet_pton)
2026-07-01 06:52:45 +00:00
Eric Kohl e848ce1c52 [NETSH] Add the pfnOsVersionCheck function to the internal data structures and retrieve the WMI version information 2026-06-30 23:14:18 +02:00
Whindmar Saksit e21afa5b21 [SHLEXTDBG] Dump IShellFolder column names and properties (#9228) 2026-06-30 14:50:52 +02:00
Serge Gautherie cd609f468a [DBGHELP] Fix a warning (#9214)
Fix the warning:
```
dll/win32/dbghelp/type.c:25: warning: "NONAMELESSUNION" redefined
```

CORE-18933
Addendum to commit 212a1a5c74 (PR #7031).
2026-06-29 21:32:20 +02:00
Ahmed Arif cf47094103 [NTUSER] Preserve WM_QUIT in move/size modal loop (#9087)
Dragging the first-boot install/status window could make setup stall,
and the shell never started after that.

The problem is that the move/size modal loop can remove a posted `WM_QUIT`
while setup is tearing the thread down. That quit message then does not
reach the outer `GetMessage()` loop, so the setup thread keeps waiting
instead of exiting.

This fix keeps the `WM_QUIT` message alive by re-posting it and leaving
the move/size loop.

See also: https://devblogs.microsoft.com/oldnewthing/20050222-00/?p=36393

## How to test

Boot to first-boot setup, drag the install/status window while it is finishing,
and check that setup continues and Explorer starts instead of hanging.
2026-06-29 21:20:26 +02:00
Ahmed Arif b82e2884fc [NTUSER] Report fresh scrollbar state in co_IntGetScrollBarInfo (#9137)
`co_IntGetScrollBarInfo()` computed the `rgstate` bits into the output buffer
and then immediately overwrote them with the cached copy, so callers always
got stale state.

Fix this by copying the cached info before computing `rgstate`.

This also exposed an inverted `WS_DISABLED` test (per wine, disabled `SB_CTL`
should report `UNAVAILABLE`, not enabled ones), which is now fixed as well.
2026-06-29 21:10:41 +02:00
Katayama Hirofumi MZ 0572d36024 [CRT][UCRT][MSVCRT] intrinsic functions: Follow-up of #9157 (#9226)
JIRA issue: CORE-20617
@learn-more found #9157 breaks the build as follows:
> error C2220: the following warning is treated as an error
> warning C4163: 'strncmp': not available as an intrinsic function
> warning C4163: 'strncpy': not available as an intrinsic function
_MSC_VER=1932 was not the version that the intrinsic functions
(strncmp, strncpy, wcsncmp, wcsncpy) added.
Using Compiler Explorer could detect the correct version:
_MSC_VER=1950.
2026-06-29 13:48:51 +09:00
Whindmar Saksit 3dfa23f661 [KEYBOARD] Fix AltGr for VkKeyScan on some keyboards (#9176) 2026-06-29 00:04:38 +02:00
Hermès Bélusca-Maïto 9de4cd4cf2 [EVTLIB] Fix EVTLTRACE(1) macro expansion in MSVC builds 2026-06-28 21:50:21 +02:00
Dmitry Borisov c54a9ca090 [DC21X4] Improve MII link status indication (#9220)
This code should be generic for all MII PHYs so always read the BMSR register twice.
2026-06-28 20:35:01 +02:00
Karol Gocłowski ff7ed205fb [SHLWAPI] Add Polish translation for SHRestrictedMessageBox (#9192) 2026-06-28 20:33:48 +02:00
Jose Carlos Jesus fbfe8321ef [CHKDSK] Update Portuguese (pt-PT) translation (#9162) 2026-06-28 20:32:46 +02:00
Jose Carlos Jesus ae0f8d52ac [CONSRV] Add Portuguese (pt-PT) translation (#9158) 2026-06-28 20:31:02 +02:00
Ahmed Arif b38db9dd23 [NTUSER] Clip the non-client update region to the dirty region (#9126)
Remove the excessive repainting of the non-client window area (title caption/buttons and borders) whenever other windows are being dragged over.

CORE-5877, CORE-16672
2026-06-28 20:24:50 +02:00
Ahmed Arif 24e904e095 [EVTLIB] Do not preallocate event logs to MaxSize (#9071)
Keep the configured event log `MaxSize` as a capacity limit and track the
physical file size separately.

New logs now start at the Windows 64 KiB file-size granularity, instead of
growing immediately to the full configured maximum. They are then grown in
64 KiB chunks as records are written, while preserving the logical used area
in the header offsets and EOF record.
2026-06-28 20:14:56 +02:00
Ahmed Arif 1b91127bbe [FLOPPY] Fix double-free of the interrupt object on init failure (#9225)
AddControllers already disconnects the controller interrupt on its error paths but left InterruptObject pointing at the freed object.

Now that DriverEntry runs Cleanup on failure (and Unload() routes through it too), that stale pointer is handed to IoDisconnectInterrupt a second time, bugchecking with BAD_POOL_HEADER.

Clear InterruptObject right after disconnecting so Cleanup() skips it.

CORE-20669
2026-06-28 10:23:39 -05:00