Commit Graph

3583 Commits

Author SHA1 Message Date
Katayama Hirofumi MZ
6af07a31b0 [FONTEXT][SHELL32][SDK] Support delete operation (#8639)
Improve usability of Fonts folder.
JIRA issue: CORE-17311
- Modify PIDL design to contain
  name and filename.
- Implement CFontExt::
  ParseDisplayName to parsing
  name as PIDL.
- Modify CDefaultContextMenu::
  GetCommandString and
  CDefaultContextMenu::
  DoCopyOrCut for DFM_GETVERBA,
  DFM_GETVERBW, DFM_CMD_COPY,
  and DFM_CMD_MOVE.
- Add IDS_CONFIRM_DELETE_FONT,
  IDS_CANTDELETEFONT, and
  IDS_PROPERTIES resource strings.
- Add SHMultiFileProperties
  prototype to <shlobj.h>.
2026-02-13 18:37:06 +09:00
Justin Miller
5213cf717c [BOOT][ENVIRON] Remove Environ (#8667)
* [SDK][BOOT] Reimport the EDK2 headers

* [ENVIRON] Remove Environ
2026-02-11 14:01:16 -08:00
Doug Lyons
a727273fbf [FREETYPE] HACK: Verify we have format 4 for tt_cmap4_char_map_binary (#8649)
[FREETYPE] HACK: Verify the cmap format 4 is used in the function
"tt_cmap4_char_map_binary" in ttcmap.c before proceeding.
Otherwise issue debug message.

CORE-12549
2026-02-04 00:39:05 -06:00
Mikhail Tyukin
c5c0e5987d [MSAFD][AFD] Implement WSPConnectEx and SO_UPDATE_CONNECT_CONTEXT (#8636)
- Update AFD to use the shared structure
- Fix AFD get context to match windows behavior
- implement SO_UPDATE_CONNECT_CONTEXT

CORE-17174
CORE-16335
2026-02-04 00:14:55 -06:00
Timo Kreuzer
dcca81a716 [UCRTBASE] Switch to msvcrt_shared 2026-02-01 11:46:59 +02:00
Timo Kreuzer
4c19b94ae9 [VCRUNTIME] Implement _chkesp / _chkesp_failed 2026-02-01 11:46:59 +02:00
Timo Kreuzer
89506818c4 [VCRUNTIME] Implement purecall handler support
Implements _get_purecall_handler, _set_purecall_handler and _purecall
2026-02-01 11:46:59 +02:00
Hermès Bélusca-Maïto
0dc78396f5 [SDK/INCLUDE] Introduce boot display discovery helper functions (#6661)
Their purpose is to simplify the way a compatible boot video driver
and a generic framebuffer miniport driver can retrieve this information.

In this iteration, the data is retrieved only from the kernel loader-block
ARC tree, via the `KeFind(Next)ConfigurationEntry()` routines.
As such it can be used only by the boot video driver (loaded early in the
boot process).
Other methods, suitable for retrieving this information later in the
boot process, will be added in the future.
2026-01-30 20:53:23 +01:00
Hermès Bélusca-Maïto
f21d692342 [SDK/INCLUDE] Define a structure describing boot-time framebuffer information (#6658)
This information is set up by the bootloader hardware detector and stored
into the system configuration tree for consumption by the NT OS loader and
other OS subsystems. This method doesn't require modifying the NT kernel
loader parameter block or extension(s), thus also allowing for a backward-
compatible usage when loading Windows OSes like 2000, XP/2003, or Vista/7.

The framebuffer information can then be retrieved by a supported bootvid
and a generic framebuffer win32k video driver.
2026-01-30 13:50:01 +01:00
Justin Miller
0203d1778a [WINED3D] FFS has to return correct values on both msvc and gcc (#8625)
accordingly to
https://www.man7.org/linux/man-pages/man3/ffs.3.html
we have been doing this wrong for awhile and it causes opengl to freeze
2026-01-29 22:30:34 +00:00
Timo Kreuzer
62cc9c498e [CMAKE] Don't re-archive import libraries
Instead create an IMPORTED library from the output of dlltool.
This prevents binutils 2.40+ nested archive crash (bug #31614):
2026-01-29 17:13:40 +02:00
Timo Kreuzer
07de64139a [GCC_SSP] Turn the GCC stack protector lib into a normal library
Stop pointless target_sources(xxx PRIVATE $<TARGET_OBJECTS:gcc_ssp_nt>). The only effect it has is to force the object file into the target, which was already done by specifying the libraries as OBJECT libraries, which is also pointless, and only leads to problems.
2026-01-29 17:13:40 +02:00
Oleg Dubinskiy
27fde6f4dd [MMIXER] Further imrovements to volume control support (follow-up of 376708b)
Add more improvements and fixes to volume control implementation.
- Don't allocate and don't use an array for storing volume level values. Also, get rid from some stuff, which is not used any more (some fields of MIXERVOLUME_DATA structure and MMixerGetVOlumeControlIndex() function).
- Use the following formulas to properly convert the volume level values from the logical units range (0 - 65535) to the hardware Decibel (DB) range (defined by audio miniport driver): <decibels> = <units> * <range_in_db> / <range_in_units> + <minimal_level> (for setting the new value) and <units> = (<decibels> - <mimimal_level> + 1) * <range_in_db> / <range_in_units> (for getting the previous value), where <decibels> is a DB hardware value, <units> is logical units value, <rang_in_db> is the hardware range (DB), <range_in_units> is range in the logical units and <minimal_level> is the most minimum volume level value defined by an audio miniport driver.
- I've created this formula myself basing on my calculations and investigations (with some help from Hermes Belusca-Maito), so it's tested and confirmed to be working for all possible values range (at least for our official Intel AC97 driver, and, as tested later, Realtek HD audio).
- Do this in both cases when setting the new and when getting the previous volume value as well.
- Fallback to default values range -96 - 0 DB in case either the volume level property is not supported by audio miniport driver, or the values range is empty (SignedMinimum is equal to SignedMaximum and both of them typically have a 0 (zero) value). Realtek HD audio codec is one of such a drivers, so this fixes the volume control on real hardware too (tested on Asus-F5R notebook with Realtek ALC660 audio controller). Moreover, the volume values set by user are even properly saved (aren't lost) after reboot (unlike with Intel AC97 in VirtualBox or SoundBlaster in VMware)! Realtek probably uses another mechanism to write/read the value(s) to/from Registry, which is handled by the miniport (codec) driver instead.
This fixes some remaining bugs when changing the volume level, so now 1) min/max position of the volume bar can be reached correctly and 2) left/right balance sliders are now behaving properly (they don't affect position of each other anymore when moving them manually).
CORE-19189, CORE-19190
2026-01-22 16:49:09 +01:00
Oleg Dubinskiy
c9911d3de9 [MMIXER] Revert "HACK: Decrease SteppingDelta for each volume value by 1"
This is actually a hack and isn't required anymore because I made a proper fix instead.
Doing -1 does not fix the problem correctly, but only makes a pseudo-effect that it's fixed by actually truncating each volume value, so then the volume sliders misbehaving does occur less (but it still does).
This reverts commit 206b52833f.
CORE-19190
2026-01-22 16:49:09 +01:00
Katayama Hirofumi MZ
3342fc6633 [SYSSETUP][SDK] Set arrow to current task (#8598)
Follow-up of #8596.
JIRA issue: N/A
- Add IDI_ARROWICON (arrow-16x16.ico)
  icon and IDI_CROSSICON
  (cross-16x16.ico).
- Retrieve normal font from control.
- Set arrow icon to the current task.
- Set bold font to the current task.
- Set normal font to done tasks.
2026-01-22 08:24:21 +09:00
Hermès Bélusca-Maïto
fda2ee2ad8 [BOOTVID] Modularize the different bootvid's build rules (#8548)
The aim is to be able to compile multiple bootvids for a given ReactOS
build without having to duplicate the same commands.
2026-01-18 18:19:01 +01:00
Timo Kreuzer
668c9c0528 [CMAKE] Defeat the GNU linker
Make the GNU linker behave less backwards and more like a real linker (like the MSVC one) by wrapping all libraries in a linker group, which essentially disables the linear ordering requirement for dependencies.
No more GCC linker dependency hell!
The sad thing is, that one has to resort to hacking the CMake linker command line to achieve this, as there is neither a global linker option nor a CMake option to achieve this.
This commit also modifies the linker command order slightly for consistency.
2026-01-18 17:05:46 +02:00
Katayama Hirofumi MZ
c877247064 [SDK][PSDK] Add <msctfmonitorapi.h> header (#8599)
Supporting advanced IME.
JIRA issue: CORE-19268
Add sdk/include/psdk/msctfmonitorapi.h.
2026-01-18 02:06:21 +09:00
Katayama Hirofumi MZ
d3aef68c16 [SYSSETUP][SDK] Add checkmarks to completed tasks (#8596)
First impression is important.
JIRA issue: N/A
- Modify IDD_PROCESSPAGE resource dialogs.
- Add IDI_CHECKICON icon (check-16x16.ico).
- Add HICON hCheckIcon into SETUPDATA structure.
- Draw checkmark to done task.
2026-01-14 21:44:29 +09:00
Katayama Hirofumi MZ
78c645e01b [SDK] Add msaatext.idl (#8592)
Providing <msaatext.h> header file for
advanced IME support.
JIRA issue: CORE-19268
- Add msaatext.idl and modify
  CMakeLists.txt.
2026-01-14 20:55:58 +09:00
Timo Kreuzer
02185fb226 [MSXML3] Sync with wine-10.0 2026-01-10 19:03:40 +02:00
Timo Kreuzer
8b7ade14ef [LIBXML2] Update to release 2.12.8 (from Wine-10.0) 2026-01-10 19:03:40 +02:00
Timo Kreuzer
79a014446b [LIBXSLT] Update to release 1.1.42 (from Wine-10.0) 2026-01-10 19:03:40 +02:00
Timo Kreuzer
1628f5e682 [CMAKE] Fix some dependencies on autogenerated headers 2026-01-10 01:32:06 +02:00
Alex Mendoza
2be203234c [PSDK] Add missing DPI_HOSTING_BEHAVIOR enumeration (#8540)
Add some missing high-DPI macros into windef.h
2026-01-08 12:20:58 +03:00
Katayama Hirofumi MZ
5c6fcfbf62 [WIN32SS][SDK] ImmGetHotKey's 4th parameter is optional (#8557)
Fix SAL2 annotations of the IME hot-key functions.
JIRA issue: N/A
- Add ImmGetHotKey and ImmSetHotKey prototypes
  into <imm32_undoc.h>.
- Fix CliImmSetHotKey annotation in user32 and
  <undocuser.h>.
- Also fixes ImmSetHotKey, NtUserGetImeHotKey and
  NtUserSetImeHotKey annotations.
2026-01-04 07:57:21 +09:00
Hermès Bélusca-Maïto
d4ffcf81be [BOOTVID][NTOS:INBV] Improve SAL annotations for *BufferToScreenBlt() and *ScreenToBufferBlt() 2026-01-03 14:19:25 +01:00
Hermès Bélusca-Maïto
5674e5d32b [BOOTVID][HAL][NTOS:INBV][NDK] *DisplayString(): Use a more suitable string pointer parameter type
Use `PCSTR` for the type of the (Hal,Inbv,Vid)DisplayString() routines'
`String` parameter, instead of `PCHAR` or `PUCHAR`, since it points to a
NUL-terminated string. (The buffer isn't a counted string.)

And improve SAL annotations along the way.
2026-01-03 14:19:24 +01:00
Hermès Bélusca-Maïto
44e4781600 [BOOTVID] Split common.c into graphics-specific and console (in console.c) parts (#8547)
In addition:
- move back common function prototypes to precomp.h;
- const-ify `VidpFontData` and adjust its usages;
- improve SAL annotations for `InitPaletteWithTable()`;
- rename the (Vid)ResetDisplay() parameter to "SetMode".
2026-01-03 13:42:47 +01:00
Hermès Bélusca-Maïto
e616f29a24 🎆 ⚛️ ☢️ Happy New Year 2026 to the ReactOS community! 🎊 🍾 🥳
And do you know what this also means?!
...
Yes, you've guessed it...
...
It means that in few days, ReactOS will be 30 !! 🎉 🥳
2026-01-01 00:00:00 +01:00
Timo Kreuzer
1106678cc0 [MSVCRT] Add some missing exports
- Add _mbcasemap, __p__mbcasemap, _fileinfo, __p__fileinfo, _get_fileinfo, _set_fileinfo, _get_winver
- Add strtoll and strtoull import symbols
- Add CrtDbgReport*
- Enable a few stubs
2025-12-30 12:57:14 +02:00
Timo Kreuzer
b6ae4e1296 [RTL] Fix searching resource names
Resource names are sorted with '_' being higher than any alphabetic characters. This means _wcsicmp cannot be used to search, because it lowercases the characters before comparison, which would make '_' lower than lowercase alphabetic characters. Implement a custom compare function instead.

See CORE-20401, CORE-20408
2025-12-28 12:33:01 +02:00
Eric Kohl
d39657cfe0 [VFATLIB] Add GPT partition support 2025-12-24 15:04:14 +01:00
Mark Jansen
d6bf1637c7 [SDK] Add script to update caroots.inf
CORE-16744
2025-12-24 13:43:53 +01:00
Eric Kohl
363aa21a54 [PSDK] Add missing GPT partition attributes 2025-12-13 18:55:24 +01:00
Timo Kreuzer
6da82e1c18 [WINE] winternl.h: Add VerifyConsoleIoHandle 2025-12-12 12:21:53 +02:00
Timo Kreuzer
87502c1082 [XDK] winnt_old.h: Fix definition of __WINE_MALLOC / __WINE_DEALLOC
This is to prevent redefinition warnings when including wine's corecrt.h
The additional !defined(malloc) prevents errors when compiling libwine, which defines malloc to libwine_malloc.
2025-12-12 12:21:53 +02:00
Timo Kreuzer
99aabc5981 [CRT] Fix __call_atexit
This prevents a first chance exception on process cleanup.
2025-12-12 12:21:53 +02:00
Timo Kreuzer
eba2bbd177 [CRT] Remove ftol2_sse 2025-12-12 12:21:53 +02:00
Timo Kreuzer
9c66d9eaba [MSVCRTEX] Add ftol2_asm
It already contains ftoul2_legacy_asm. Do it like this instead of having to link ftol2 lib.
2025-12-12 12:21:53 +02:00
Timo Kreuzer
f20c09fcd6 [LIBCNTPR] Implement NT versions of _strlwr, _strupr, _wcslwr, _wcsupr 2025-12-10 09:55:30 +02:00
Timo Kreuzer
abfaf2e75f [LIBCNTPR] Implement NT version of _wcsicmp / _wcsnicmp
Passes all ntdll wine tests.
2025-12-10 09:55:30 +02:00
Timo Kreuzer
7872c0d391 [LIBCNTPR] Implement NT versions of _stricmp and _strnicmp 2025-12-10 09:55:30 +02:00
Timo Kreuzer
0dea0cfa01 [LIBCNTPR] Implement NT version of _invalid_parameter 2025-12-10 09:55:30 +02:00
Timo Kreuzer
090129bb1d [LIBCNTPR] Implement NT version of iswctype
Passes all ntdll wine tests.
2025-12-10 09:55:30 +02:00
Timo Kreuzer
5cbb2c9a4c [LIBCNTPR] Implement multibyte NT version of toupper
Windows ntdll and ntoskrnl export a multibyte capable version of toupper (not tolower though!)
The internal version is kept as it is, because the multibyte version requires unicode tables to be set up and doesn't support IRQL > APC_LEVEL.

Why though would toupper (but not tolower) support raw, undecoded multibyte characters, you might ask. Well I don't know, but someone at MS must have decided that this is a good idea, and winetests show this is how it behaves.
2025-12-10 09:55:30 +02:00
Timo Kreuzer
36696585ae [LIBCNTPR] Implement NT version of tolower 2025-12-10 09:55:30 +02:00
Timo Kreuzer
080ac7bd97 [LIBCNTPR] Implement NT version of towupper 2025-12-10 09:55:30 +02:00
George Bișoc
0f30e8163e [NTOS:PS] Annotate the Query/Set related functions with SAL2
- Annotate the functions in query.c file with SAL2 of which they weren't annotated before
- Use _Out_writes_bytes_to_opt_ to further clarify the output parameter is being written to it based on the length size provided.
This is so the code analyzer understands such a parameter is being written into only the specific amount of bytes.
2025-12-01 22:22:00 +01:00
Hermès Bélusca-Maïto
17419ab4a2 [NDK][NTOS:PS] Add missing THREADINFOCLASS values 2025-11-28 22:08:42 +01:00