This is needed for PCI debugging devices whose KD modules depend
on the functions registered in HalpRegisterKdSupportFunctions().
Also it's consistent with what x86 does, and also what Win7 x64 does
(the KdInitSystem is invoked after the HalInitializeProcessor call).
Necessary for PR #9156 on AMD64. CORE-20385
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 <hermes.belusca-maito@reactos.org>
#8974 implemented custom mouse
cursor shapes. However, the custom
cursor shape didn't consider zooming.
This PR applies zooming to the
custom cursor shapes.
JIRA issue: CORE-20520
- Enhance CStyledCursor for
zooming.
- Enhance CopyMonoImage and
CopyDIBImage for stretch mode.
- Add DEFAULT_ZOOM constant
(1000).
- Send WM_SETCURSOR message
on ToolsModel::SetZoom.
- Improve accuracy of Zoomed
and UnZoomed functions by
using MulDiv function.
Import fix from Wine-11.6, commit 46e5cabca7
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 <zmtong1988@gmail.com>
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
Avoid hitting ReactOS interprocess file sharing bugs that are not fixed
yet and use a pair of fresh temporary files for testing the function.
Addendum to 4e3729f06f (#9145). CORE-10271
Use preferred memory handling on memory
shortage.
JIRA issue: N/A
- Link cppstl instead of cpprt.
- Use <new> new(std::throw) for memory
allocation.
- Return E_OUTOFMEMORY on allocation
failure.
- Don't use <stdlib.h> min macro but use
<cstdlib> __min.
Cover the bug fix in PR #9133 with API tests. CORE-10271
Add them into a suitable Wine test to cover ReactOS-specific bug.
The tests are confirmed to pass on Windows 2003, 7, and 10.
VS2022 version 17.2 and later (`_MSC_VER >= 1932`) added new intrinsic
functions (`strncmp`, `strncpy`, `wcsncmp`, and `wcsncpy`).
As we implement these ourselves, we have to avoid compiler error C2169.
This problem surfaced with a recent GitHub Actions update:
https://github.com/actions/runner-images/issues/14017
Use `#pragma function(...)` to disable new intrinsic functions.
This is a termporary solution to provide part of the needed APIs from wine modules, until we have a fully working kernelbase.
This one imports from msvcrt, kernel32 and advapi32.
This fixes the mismatch, where the flush checks wrongly tested `mi.dwFlags` (`MOUSEEVENTF_XDOWN/XUP`) against the raw `MOUSE_BUTTON_4/5` bits, so the combined button-4+5 events were flushed in the wrong block or were dropped.