Commit Graph

1530 Commits

Author SHA1 Message Date
Doug Lyons
ad6cb32fa5 [NTGDI] Fix 3D-text screensaver not moving in preview mode (#8402)
Thanks, @I_Kill_Bugs for the fix.
CORE-5601
2025-10-10 15:59:13 -05:00
Mikhail Tyukin
0172338964 [USER32] Fix pointer truncation (#8421)
Fix `UnregisterDeviceNotification()` crash on x64 due to pointer truncation.
Change signature of `CMP_REGNOTIFY` and `CMP_UNREGNOTIFY` to be correct (use `HDEVNOTIFY` instead of `ULONG`).
2025-10-10 20:43:34 +02:00
Doug Lyons
34fce8a997 [NTGDI][GDI32] SAI Paint Tool regression fix (#8383)
CORE-20336
Move some code in win32ss/gdi/ntgdi/dibobj.c into win32ss/gdi/gdi32/objects/bitmap.c.
Condition "YSrc = 0;" on "if (Height + YDest + 1 < ScanLines)" which fixes some gdi32:bitmap regressions.
2025-09-27 02:01:57 -05:00
Timo Kreuzer
fff6d96000 [WIN32K:NTGDI] Check for failure of PATH_CreatePath
Also use common cleanup path.
2025-09-10 16:39:22 +03:00
Timo Kreuzer
8a2a587e57 [WIN32K:NTGDI] Save and restore FP state in IntGdiWidenPath 2025-09-10 16:39:22 +03:00
Doug Lyons
5d5e5d1a46 [NTGDI] Fix SAI Paint Tool Initial Graphics Display (#8348)
CORE-15002
2025-09-06 19:20:44 -05:00
Hermès Bélusca-Maïto
c6fecdda65 [NTUSER] NtUserSetLogonNotifyWindow(): Lock-protect access to global data (#8369)
Like with all the other win32k NtUser* functions, acquire on entry and
release on exit the global lock, since the function is reading/writing
to global variables.

Also, set the last-error to ERROR_ACCESS_DENIED if the caller isn't the
registered logon process.
2025-09-04 11:43:30 +02:00
Hermès Bélusca-Maïto
10d57cb8b2 [NTUSER] IntLanguageToggle(): Guard against NULL pFocusQueue (#8368)
Addendum to commit 25b7447818 (PR #5839)
2025-09-04 11:42:06 +02:00
Hermès Bélusca-Maïto
6a6ed54495 [NTUSER] Some lifting for the Int/UserGet[Active|Capture|Foreground|ThreadFocus]Window() functions 2025-09-04 11:41:57 +02:00
Timo Kreuzer
6d321562c9 [NTOS][NTDLL][UCRTBASE] Use new setjmp/longjmp
This fixes 2 todo tests
2025-08-22 09:12:51 +03:00
Timo Kreuzer
011ce7088c [PSEH] Use _setjmp3 with custom unwind function 2025-08-22 09:12:51 +03:00
Hervé Poussineau
4da4648092 [WIN32SS:USER] Add 'DISPLAY' as an alternate name for global display
CORE-20303
2025-08-20 19:33:17 +02:00
Hervé Poussineau
45c8cf7efd [WIN32SS:USER] UserEnumDisplayDevices: correctly report monitor device ids
desk.cpl can now open Monitor properties.
2025-08-20 19:33:17 +02:00
Doug Lyons
8e6fbe0c90 [NTUSER][COMCTL32] Fix garbage displayed at bottom of listbox.c (#8316)
CORE-20062
@I_Kill_Bugs fix for rect.bottom in LISTBOX_Paint function.
2025-08-20 11:34:44 -05:00
Serge Gautherie
ea41cfe290 [USER32] .spec: Fix GetDpiForMonitorInternal() param type (#8302)
Use ptr for handles.
2025-08-08 23:36:35 +02:00
Doug Lyons
d413de1b19 [WIN32K:ENG] Fix CyberBoard BSOD: Use 'MAXLONG' instead of 'MAX_COORD' in lStyleMax (#8279)
CORE-20209

* Add ASSERT's as suggested by @HBelusca.
2025-07-31 16:14:21 -05:00
Carl J. Bialorucki
c9842e5aad Move /sdk/include/reactos/wine to /sdk/include/wine, reorder global includes, remove unneeded includes (#8258)
- Move sdk\include\reactos\wine to sdk\include\wine
- Reorder the directories in include_directories() to be closer to alphabetical. This should make it easier to determine what global include directories can be removed in the future.
2025-07-29 13:57:12 -06:00
Doug Lyons
10bc0d4660 [WIN32K:ENG] Fix triangle gradient fill solid color versus gradient color selection logic (#8269)
CORE-13532
* Fix macros VCMPCLR and VCMPCLRS to correctly select between gradient color or solid color triangles.
* Remove hack from commit 1c0aedc and replace it with 'if' test before STEPCOL in 'while' test.
* Other assorted fixes for FILLLIINE macro starting position to completely fill triangles.
* Remove warning/FIXME: about IntEngGradientFillTriangle being broken.
* Precede some 'while' loops by 'if' tests to exclude possible loops.
2025-07-28 22:00:35 -05:00
Katayama Hirofumi MZ
915b771037 [EXPLORER][NTUSER] Notify ABN_FULLSCREENAPP and fix monitor code (#8254)
Enable ABN_FULLSCREENAPP notification.
Fix some monitor functions.
JIRA issue: CORE-7237
- Improve NtUserMonitorFromRect and
  NtUserMonitorFromWindow functions.
- Remove if-statement in
  OnWindowActivated function.
- Don't check WS_EX_TOOLWINDOW in
  IntIsWindowFullscreen function.
- Add IntGetMonitorFromRect helper
  function to commonize some code in
  monitor functions.
2025-07-28 17:58:59 +09:00
Doug Lyons
996bde80a9 [WIN32K] Fix gdi/dib horizontal line draw function crashes (#8263)
* [WIN32K] Fix gdi/dib assembly code and 'C' code horizontal line draw function crashes.
Do not do subtracts that cause a wrap to a negative value when determining length.
This affects bit depths of 8, 16, 24, and 32 Bits per Plane.

CORE-19634
CORE-13532
2025-07-22 13:09:53 -05:00
Katayama Hirofumi MZ
d958a24678 [NTUSER][USER32_APITEST] Support ShowWindow.SW_FORCEMINIMIZE (#8261)
One more step to support ghost windows.
JIRA issue: CORE-19671
- Add IntForceMinimizeWindow helper
  function.
- Use IntForceMinimizeWindow in
  co_WinPosShowWindow function.
- Enhance ShowWindow testcase in
  user32_apitest.
- Add mask to the return value of
  GetWindowLong.
2025-07-20 13:14:01 +09:00
Katayama Hirofumi MZ
e7358c5930 [NTUSER][USER32] Fix IME UI exception (#8227)
Fix BSoD when toggling visibility of the IME status
window (IME Toolbar).
JIRA issue: CORE-20261
- Add IntGetImeUIFromWnd helper function.
- Fix exception in IntNotifyImeShowStatus function.
- Fix initialization of IME UI in ImeWndProc_common
  function.
- Delete RegisterIMEClass function.
2025-07-09 08:16:26 +09:00
Whindmar Saksit
c0ea1c0e9f [USER32][APITESTS] Use the correct user32 icon resource ids (#7807) 2025-07-06 15:24:25 +02:00
Serge Gautherie
4164b8a053 [NTUSER] menu.c: Tiny optimizations (#8111)
A bit clearer code. A bit faster execution.
- NtUserGetTitleBarInfo(): Add/Use early returns.
  Addendum to
3b4c9ded42 (r33657).
- NtUserTrackPopupMenuEx():
  Check flags a bit earlier.
  Addendum to
3c35117f97
  (0.4.16-dev-1275).
- NtUserThunkedMenuItemInfo():
  Sort out code and comments
- menu.c: Move UserLeave() a bit earlier.
2025-06-25 21:15:28 +09:00
Timo Kreuzer
c36d8c9271 [WIN32K] Fix a possible NULL pointer dereference in co_IntGetScrollBarInfo
The following code in user32_winetest scroll.c was causing it:

    ret = EnableScrollBar( mainwnd, SB_CTL, ESB_ENABLE_BOTH );
    ok( !ret, "EnableScrollBar should fail.\n" );
2025-06-22 17:35:15 +00:00
Katayama Hirofumi MZ
3a96c90c54 [NTUSER][USER32] Re-implement WM_POPUPSYSTEMMENU message (#8144)
This PR resolves a bug of #8094. #8094
correctly validates the flags. TPM_SYSTEM_MENU is an internal flag
and not a valid flag for TrackPopupMenu.
Thus, calling TrackPopupMenu.TPM_SYSTEM_MENU
in User32DefWindowProc was wrong.
This caused failure of taskbar context
menu.

JIRA issue: CORE-20238

- Move WM_POPUPSYSTEMMENU
  message handling of user32 into
  win32k.sys!IntDefWindowProc.
- Use win32k.sys!IntTrackPopupMenuEx
  instead of user32!TrackPopupMenu
  in handling of WM_POPUPSYSTEMMENU.
2025-06-19 22:59:27 +09:00
Katayama Hirofumi MZ
62ad2403a0 [USER32][COMCTL32] Edit: Optimize EDIT_SetCaretPos for speed (#8113)
The caret move on IME was slow until this PR.
JIRA issue: CORE-19268
- Don't use ImmIsIME but use IS_IME_HKL(hKL) in
  EDIT_SetCaretPos function. This change improves
  the caret speed.
- Prohibit display of composition window for Korean
  in the handling of WM_IME_SETCONTEXT and
  WM_IME_STARTCOMPOSITION, because Korean
  doesn't want it.
2025-06-14 20:26:05 +09:00
Katayama Hirofumi MZ
d809cd0f7f [BOOTDATA][NTUSER] Add DontLoadCTFIME and use it (#8110)
Improve CTF IME customization.
Use the proper names for CTF IME.
JIRA issue: CORE-19268
- In the registry key "HKLM\SOFTWARE\Microsoft\
  Windows NT\CurrentVersion\IMM", add
  DontLoadCTFIME value and set it to 1.
- Delete LoadCTFIME value to avoid user
  confusing.
- Rename UserIsCiceroEnabled function
  as UserIsCTFIMEEnabled.
- Rename SRVINFO_CICERO_ENABLED
  flag as SRVINFO_CTFIME_ENABLED.
2025-06-12 13:55:49 +09:00
Katayama Hirofumi MZ
3c35117f97 [NTUSER][USER32_APITEST] TrackPopupMenuEx: Check flags (#8094)
Validate flags.
JIRA issue: CORE-3247
- In NtUserTrackPopupMenuEx function, validate the flags.
- If validation failed, then set last error and return FALSE.
- Add SAL annotations to NtUserTrackPopupMenuEx.
- Keep reference to menu in the function.
- Add TrackPopupMenuEx testcase to user32_apitest.
2025-06-10 21:25:14 +09:00
Katayama Hirofumi MZ
4cf350a716 [IMM32] Use ANSI_NULL and UNICODE_NULL (#8109)
Coding style fix.
JIRA issue: CORE-19268
- Use ANSI_NULL for '\0'.
- Use UNICODE_NULL for L'\0'.
2025-06-10 20:45:23 +09:00
Katayama Hirofumi MZ
87f4b28b99 [NTUSER][FORMATTING] NtUserTrackPopupMenuEx: Just formatting
for #8094. CORE-3247
2025-06-08 07:48:41 +09:00
Katayama Hirofumi MZ
2335229c32 [USER32][IMM32][SDK] Support WM_IME_SYSTEM.0x1D (#8088)
Splitted from #8080. The message
handling of WM_IME_SYSTEM.0x1D
is needed for IME menu handling.
JIRA issue: CORE-20142
- Define IMS_IMEMENUITEMSELECTED
  (0x1D) in <immdev.h>.
- Add WM_IME_SYSTEM.0x1D handling
  in ImeWnd_OnImeSystem function.
- Rename and extend
  User32GetImmFileName function as
  User32GetSystemFilePath, with
  adding a filename parameter.
2025-06-07 06:51:46 +09:00
Katayama Hirofumi MZ
5b4d1dbd4b [NTUSER] IntTrackPopupMenuEx: Check TPMPARAMS.cbSize (#8092)
Validate structure size.
JIRA issue: CORE-3247
- In IntTrackPopupMenuEx function,
  if lpTpm was non-NULL, then
  validate lpTpm->cbSize.
- If validation failed, then set last
  error and return FALSE.
2025-06-06 22:37:27 +09:00
Hermès Bélusca-Maïto
273b4c8702 [WIN32SS:NTUSER] Minor code cleanup in hotkey code (#8084)
- Remove duplicated code in NtUserRegisterHotKey() and in
  NtUserUnregisterHotKey() by directly calling UserRegisterHotKey()
  and UserUnregisterHotKey() after the usual user-validation steps.

- In UserRegisterHotKey(), ignore hotkeys with virtual key VK_PACKET
  since this is not a real keyboard input, but is instead used in
  conjunction with unicode characters to simulate keystrokes for
  non-keyboard input methods.

- s/StartDebugHotKeys/SetDebugHotKeys/

- Remove duplicate code between NtUserCallMsgFilter() and IntCallMsgFilter().
2025-06-04 14:26:34 +02:00
Katayama Hirofumi MZ
67a4cf93be [NTUSER] ime.c: Add SAL2 annotations and tracing (#8070)
Refactoring and improving trace.
JIRA issue: CORE-19455
- Add SAL2 annotations to
  function parameters.
- Add and improve tracing
  (TRACE and ERR) for easier
  debugging.
2025-06-04 05:47:54 +09:00
Katayama Hirofumi MZ
d80fdbe146 [IMM32][SDK] Refactor IMM32 and fix annotations (#8071)
Fix annotations' mistakes. Improve debug output.
JIRA issue: CORE-19268
- Fix some SAL annotations.
- Use debugstr_a and debugstr_w for tracing
  strings.
- Add static to some functions.
- Remove APIENTRY of some functions.
- Fix code formatting.
2025-06-03 11:09:36 +09:00
Katayama Hirofumi MZ
2543e2179c [USER32] Alt+Tab: Don't switch to IME-related window (#8061)
The application switcher (Alt+Tab) shouldn't switch to IME-related (CS_IME) windows.
JIRA issue: CORE-19268
2025-06-03 06:53:51 +09:00
Serge Gautherie
bc03c010b3 [WIN32K:DIB] USE_DIBLIB: Use new DIB_16BPP_AlphaBlend() (#4568)
* [WIN32K:DIB] Fix 'DIB_16BPP_AlphaBlend' copypasta in a DPRINT()

Addendum to 684c3d3 (r49275).

* [WIN32K:DIB] USE_DIBLIB: Use new DIB_16BPP_AlphaBlend()

Addendum to 7540c2e (r64953).
2025-05-28 22:06:41 -05:00
Hervé Poussineau
72dcb3a11f [WIN32SS:ENG] Initialize pdo variable before using it 2025-05-28 23:37:28 +02:00
Hervé Poussineau
9f21cc3e98 [WIN32SS:ENG] Do not allocate 0 bytes if no monitor is reported
Addendum to 2f00ca4663
2025-05-28 18:26:23 +02:00
Hervé Poussineau
4534537036 [WIN32SS:USER] Remove useless assignations of pdo variable
Addendum to 30a7d19d84
2025-05-28 18:26:23 +02:00
Katayama Hirofumi MZ
b4e471c87d [IMM32][SDK] Add install.c and move some code (#8032)
Splitting IME installation code for code readability.
JIRA issue: CORE-19268
- Add win32ss/user/imm32/install.c.
- Move some code to install.c.
- Add SAL annotations. Use debugstr_a/_w macro.
- Modify <imm32_undoc.h>.
- Don't CharUpperW for IME pathname due to
  security reason.
2025-05-28 16:08:51 +09:00
Hermès Bélusca-Maïto
2a0d98c2bc [DOSKEY][USETUP][KERNEL32][NTVDM][CONSRV][REGEXPL] Fix build (#8019)
Fix build after the move and update of private console API
definitions to wincon_undoc.h
2025-05-27 20:52:20 +02:00
Hermès Bélusca-Maïto
6696d40cfc [SDK] Introduce winbase_undoc.h for undocumented exported kernel32 definitions (#8019)
This header is based on the following files from the official
Windows 10.0.10240.0 PSDK, a copy of which can be found at:
- https://github.com/tpn/winsdk-10/blob/master/Include/10.0.10240.0/um/minwin/winbasep.h
- https://github.com/tpn/winsdk-10/blob/master/Include/10.0.10240.0/um/minwin/wbasek.h
2025-05-27 20:52:17 +02:00
Hervé Poussineau
30a7d19d84 [WIN32SS:USER] Rework UserEnumDisplayDevices to correctly report monitors
desk.cpl now returns the correct monitor name.
2025-05-27 20:34:37 +02:00
Hervé Poussineau
29b5003455 [VIDEOPRT] Implement IOCTL_VIDEO_ENUM_MONITOR_PDO 2025-05-27 20:34:37 +02:00
Hervé Poussineau
2f00ca4663 [WIN32SS:ENG] Retrieve and store list of associated monitors for each video adapter device 2025-05-27 20:34:37 +02:00
Katayama Hirofumi MZ
17577d2581 [IMM32][SDK] Support ImmIMPQueryIMEA/W and ImmIMPSetIMEA/W (#8033)
Implementing missing features...
These functions are given for IME
program handling.
JIRA issue: CORE-19268
- Implement ImmIMPQueryIMEA
  and ImmIMPQueryIMEW functions.
- Implement ImmIMPSetIMEA and
  ImmIMPSetIMEW functions.
- Add prototypes to <imm32_undoc.h>.
2025-05-27 20:10:25 +09:00
Hervé Poussineau
0743ceefa2 [WIN32SS:ENG] Fix check to enable panning driver
If ldevtype is not LDEV_DEVICE_DISPLAY, pdm is really a PMDEVOBJ structure.
So, we must not read the dmFields value.
2025-05-25 20:24:00 +02:00
Katayama Hirofumi MZ
8a913baed8 [CONSRV] Improve Japanese (ja-JP) translation
CORE-18706
2025-05-25 19:36:12 +09:00