The Wine team is proud to announce that the stable release Wine 10.0
is now available.
This release represents a year of development effort and over 6,000
individual changes. It contains a large number of improvements that
are listed below. The main highlights are the new ARM64EC
architecture and the high-DPI scaling support.
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0.tar.xz>
Binary packages for various distributions will be available
from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people.
See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.0/AUTHORS
## What's new in Wine 10.0
### ARM64
- The ARM64EC architecture is fully supported, with feature parity with the
ARM64 support.
- Hybrid ARM64X modules are fully supported. This allows mixing ARM64EC and
plain ARM64 code into a single binary. All of Wine can be built as ARM64X
by passing the `--enable-archs=arm64ec,aarch64` option to configure. This
still requires an experimental LLVM toolchain, but it is expected that the
upcoming LLVM 20 release will be able to build ARM64X Wine out of the box.
- The 64-bit x86 emulation interface is implemented. This takes advantage of
the ARM64EC support to run all of the Wine code as native, with only the
application's x86-64 code requiring emulation.
No emulation library is provided with Wine at this point, but an external
library that exports the emulation interface can be used, by specifying
its name in the `HKLM\Software\Microsoft\Wow64\amd64` registry key. The
[FEX emulator][4] implements this interface when built as ARM64EC.
- It should be noted that ARM64 support requires the system page size to be
4K, since that is what the Windows ABI specifies. Running on kernels with
16K or 64K pages is not supported at this point.
[4]: https://fex-emu.com
### Graphics
- High-DPI support is implemented more accurately, and non-DPI aware windows
are scaled automatically, instead of exposing high-DPI sizes to
applications that don't expect it.
- Compatibility flags are implemented to override high-DPI support, either
per-application or globally in the prefix.
- Vulkan child window rendering is supported with the X11 backend, for
applications that need 3D rendering on child windows. This was supported
with OpenGL already, and the Vulkan support is now on par.
- The Vulkan driver supports up to version 1.4.303 of the Vulkan spec. It
also supports the Vulkan Video extensions.
- Font linking is supported in GdiPlus.
### Desktop integration
- A new opt-in modesetting emulation mechanism is available. It is very
experimental still, but can be used to force display mode changes to be
fully emulated, instead of actually changing the display settings.
The windows are being padded and scaled if necessary to fit in the
physical display, as if the monitor resolution were changed, but no actual
modesetting is requested, improving user experience.
- A new Desktop Control Panel applet `desk.cpl` is provided, to inspect and
modify the display configuration. It can be used as well to change the
virtual desktop resolution, or to control the new emulated display
settings.
- Display settings are restored to the default if a process crashes without
restoring them properly.
- System tray icons can be completely disabled by setting `NoTrayItemsDisplay=1`
in the `HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer`
key.
- Shell launchers can be disabled in desktop mode by setting `NoDesktop=1`
in the `HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer`
key.
### Direct3D
- The GL renderer now requires GLSL 1.20, `EXT_framebuffer_object`, and
`ARB_texture_non_power_of_two`. The legacy ARB shader backend is no longer
available, and the `OffscreenRenderingMode` setting has been removed.
- Shader stencil export is implemented for the GL and Vulkan renderers.
- A HLSL-based fixed function pipeline for Direct3D 9 and earlier is
available, providing support for fixed function emulation for the Vulkan
renderer. It can also be used for the GL renderer, by setting the D3D
setting `ffp_hlsl` to a nonzero value using the registry or the
`WINE_D3D_CONFIG` environment variable.
- The Vulkan renderer uses several dynamic state extensions, if available,
with the goal of reducing stuttering in games.
- An alternative GLSL shader backend using vkd3d-shader is now available,
and can be selected by setting the D3D setting `shader_backend` to
`glsl-vkd3d`. Current vkd3d-shader GLSL support is incomplete relative to
the built-in GLSL shader backend, but is being actively developed.
### Direct3D helper libraries
- Initial support for compiling Direct3D effects is implemented using
vkd3d-shader.
- D3DX 9 supports many more bump-map and palettized formats.
- D3DX 9 supports saving palettized surfaces to DDS files.
- D3DX 9 supports mipmap generation when loading volume texture files.
- D3DX 9 supports reading 48-bit and 64-bit PNG files.
### Wayland driver
- The Wayland graphics driver is enabled by default, but the X11 driver
still takes precedence if both are available. To force using the Wayland
driver in that case, make sure that the `DISPLAY` environment variable is
unset.
- Popup windows should be positioned correctly in most cases.
- OpenGL is supported.
- Key auto-repeat is implemented.
### Multimedia
- A new opt-in FFmpeg-based backend is introduced, as an alternative to the
GStreamer backend. It is intended to improve compatibility with Media
Foundation pipelines. It is still in experimental stage though, and more
work will be needed, especially for D3D-aware playback. It can be enabled
by setting the value `DisableGstByteStreamHandler=1` in the
`HKCU\Software\Wine\MediaFoundation` registry key.
- Media Foundation multimedia pipelines are more accurately implemented, for
the many applications that depend on the individual demuxing and decoding
components to be exposed. Topology resolution with demuxer and decoder
creation and auto-plugging is improved.
- DirectMusic supports loading MIDI files.
### Input / HID devices
- Raw HID devices with multiple top-level collections are correctly parsed,
and exposed as individual devices to Windows application.
- Touchscreen input and events are supported with the X11 backend, and basic
multi-touch support through the `WM_POINTER` messages is
implemented. Mouse window messages such as `WM_LBUTTON*`, `WM_RBUTTON*`,
and `WM_MOUSEMOVE` are also generated from the primary touch events.
- A number of USER32 internal structures are stored in shared memory, to
improve performance and reduce Wine server load by avoiding server
round-trips.
- An initial version of a Bluetooth driver is implemented, with some basic
functionality.
- The Joystick Control Panel applet `joy.cpl` enables toggling some advanced
settings.
- The Dvorak keyboard layout is properly supported.
### Internationalization
- Locale data is generated from the Unicode CLDR database version 46. The
following additional locales are supported: `kaa-UZ`, `lld-IT`, `ltg-LV`,
and `mhn-IT`.
- Unicode character tables are based on version 16.0.0 of the Unicode
Standard.
- The timezone data is based on version 2024a of the IANA timezone database.
### Internet and networking
- The JavaScript engine supports a new object binding interface, used by
MSHTML to expose its objects in a standard-compliant mode. This eliminates
the distinction between JavaScript objects and host objects within the
engine, allowing scripts greater flexibility when interacting with MSHTML
objects.
- Built-in MSHTML functions are proper JavaScript function objects, and
other properties use accessor functions where appropriate.
- MSHTML supports prototype and constructor objects for its built-in
objects.
- Function objects in legacy MSHTML mode support the `call` and `apply`
methods.
- The JavaScript garbage collector operates globally across all script
contexts within a thread, improving its accuracy.
- JavaScript ArrayBuffer and DataView objects are supported.
### RPC / COM
- RPC/COM calls are fully supported on ARM platforms, including features
such as stubless proxies and the typelib marshaler.
- All generated COM proxies use the fully-interpreted marshaling mode on all
platforms.
### C runtime
- C++ exceptions and Run-Time Type Information (RTTI) are supported on ARM
platforms.
- The ANSI functions in the C runtime support the UTF-8 codepage.
### Kernel
- Process elevation is implemented, meaning that processes run as a normal
user by default but can be elevated to administrator access when required.
- Disk labels are retrieved from DBus when possible instead of accessing the
raw device.
- Mailslots are implemented directly in the Wine server instead of using a
socketpair, to allow supporting the full Windows semantics.
- Asynchronous waits for serial port events are reimplemented. The previous
implementation was broken by the PE separation work in Wine 9.0.
- The full processor XState is supported in thread contexts, enabling
support for newer vector extensions like AVX-512.
### macOS
- When building with Xcode >= 15.3 on macOS, the preloader is no longer
needed.
- Syscall emulation for applications doing direct NT syscalls is supported
on macOS Sonoma and later.
### Builtin applications
- The input parser of the Command Prompt tool `cmd` is rewritten, which
fixes a number of long-standing issues, particularly with variable
expansion, command chaining, and FOR loops.
- The Wine Debugger `winedbg` uses the Capstone library to enable
disassembly on all supported CPU types.
- The File Comparison tool `fc` supports comparing files with default
options.
- The `findstr` application supports regular expressions and case
insensitive search.
- The `regsvr32` and `rundll32` applications can register ARM64EC modules.
- The `sort` application is implemented.
- The `where` application supports searching files with default options.
- The `wmic` application supports an interactive mode.
### Miscellaneous
- The ODBC library supports loading Windows ODBC drivers, in addition to
Unix drivers that were already supported through libodbc.so.
- Optimal Asymmetric Encryption Padding (OAEP) is supported for RSA
encryption.
- Network sessions are supported in DirectPlay.
### Development tools
- The IDL compiler generates correct format strings in interpreted stubs
mode (`/Oicf` in midl.exe) on all platforms. Interpreted mode is now the
default, the old mixed-mode stub generation can be selected with `widl
-Os`.
- The IDL compiler can generate typelibs in the old SLTG format with the
`--oldtlb` command-line option.
- The `winegcc` and `winebuild` tools can create hybrid ARM64X modules with
the `-marm64x` option.
- The `winedump` tool supports dumping minidump tables, C++ exception data,
CLR tables, and typelib resources.
### Build infrastructure
- The `makedep` tool generates a standard-format `compile_commands.json`
file that can be used with various IDEs.
- Using `.def` files as import libraries with `winegcc` is no longer
supported, all import libraries need to be in the standard `.a` format. If
necessary, it is possible to convert a `.def` library to `.a` format using
`winebuild --implib -E libfoo.def -o libfoo.a`.
- Static analysis is supported using the Clang Static Analyzer. It can be
enabled by passing the `--enable-sast` option to configure. This is used
to present Code Quality reports with the Gitlab CI.
### Bundled libraries
- The Capstone library version 5.0.3 is bundled and used for disassembly
support in the Wine Debugger, to enable disassembly of ARM64 code. This
replaces the bundled Zydis library, which has been removed.
- Vkd3d is updated to the upstream release [1.14][5].
- Faudio is updated to the upstream release 24.10.
- FluidSynth is updated to the upstream release 2.4.0.
- LDAP is updated to the upstream release 2.5.18.
- LCMS2 is updated to the upstream release 2.16.
- LibJpeg is updated to the upstream release 9f.
- LibMPG123 is updated to the upstream release 1.32.9.
- LibPng is updated to the upstream release 1.6.44.
- LibTiff is updated to the upstream release 4.7.0.
- LibXml2 is updated to the upstream release 2.12.8.
- LibXslt is updated to the upstream release 1.1.42.
- Zlib is updated to the upstream release 1.3.1.
[5]: https://gitlab.winehq.org/wine/vkd3d/-/releases/vkd3d-1.14
### External dependencies
- The FFmpeg libraries are used to implement the new Media Foundation
backend.
- A PE cross-compiler is required for 32-bit ARM builds, pure ELF builds are
no longer supported (this was already the case for 64-bit ARM).
- Libunwind is no longer used on ARM platforms since they are built as
PE. It's only used on x86-64.
The Wine development release 10.0-rc6 is now available. This is
expected to be the last release candidate before the final 10.0.
What's new in this release:
- Bug fixes only, we are in code freeze.
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0-rc6.tar.xz>
Binary packages for various distributions will be available
from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people.
See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.0-rc6/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.0-rc6 (total 18):
- #47036 C&C Red Alert 2 Yuri's Revenge missing graphical elements
- #48501 U.S. Naval Observatory MICA2 software has annoying error message upon closing
- #50398 Microsoft Office XP 2002 installer shows "Error 25504. Failed to set Feature xyz to the install state of Feature xyz for mode 2." message boxes since Wine 2.12
- #53567 The Medium crashes when starting new game
- #53891 user32:msg - test_swp_paint_regions() fails on Windows 7
- #55263 Boulder Remake doesn't recognise arrow keys (other keys work)
- #56452 Wingdings font seems not to be found; regression test done
- #57019 wineboot crashes in create_bios_processor_values() on 2013 Mac Pro
- #57076 Harmony Assistant 9.9.8d (64 bit) reports missing stoccata.ttf font on startup
- #57077 Micrografx Window Draw 4.0a crashes when backspacing while editing freeform text object
- #57179 File uploads in Hotline Client 1.2.3 hang after about 200 KB
- #57312 Rebuild 3: Broken texture filtering
- #57579 Deformed symbols in LTSpice
- #57610 No windows are shown when using a dual monitor setup
- #57632 fallout 3 radio broke with gstreamer 1.24.10 (9.22 silent, 10rc4 stalls)
- #57652 Some windows have cut bottom and right sides
- #57657 Null pointer dereference in traces
- #57661 Port Royale 2: black screen during intro videos
### Changes since 10.0-rc5:
```
Alexandre Julliard (3):
ieframe/tests: Fix more property change errors for the new test.winehq.org server.
wshom.ocx/tests: Mark a failing tests as todo.
winebth.sys: Don't print an error when Bluetooth is not available.
Bernhard Übelacker (2):
gdiplus/tests: Fix use-after-free of a graphics object (ASan).
kernel32/tests: Avoid stack buffer overflow in get_com_dir_size (ASan).
Elizabeth Figura (2):
msi/tests: Test msidbFeatureAttributesDisallowAdvertise.
msi: Set features to absent if advertising is disallowed.
Esme Povirk (1):
gdiplus/tests: Trace locked bitmap data on failure.
Rémi Bernon (5):
gdi32: Avoid crashing when tracing NULL xform.
configure: Use per-architecture cross flags if they are provided.
winex11: Adjust requested visible rect relative to the previous position.
winex11: Always blit offscreen over any other onscreen clients.
mf/topology_loader: Avoid modifying downstream media type when attempting to connect.
Santino Mazza (1):
gdiplus: Check for MapFont result in generate_font_link_info.
Zhiyi Zhang (1):
winex11.drv: Fix display name in X11DRV_UpdateDisplayDevices().
```
The Wine development release 10.0-rc5 is now available.
What's new in this release:
- Bug fixes only, we are in code freeze.
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0-rc5.tar.xz>
Binary packages for various distributions will be available
from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people.
See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.0-rc5/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.0-rc5 (total 31):
- #38975 Alpha Protocol launcher: menu options hidden behind grey boxes
- #48737 Microsoft Golf 2.0 demo crashes on startup
- #52542 NVIDIA GeForceNow Installer fails due to rundll32 problems
- #53352 Redefinition of typedef ‘D2D1_PROPERTY_BINDING’ breaks compilation with gcc 4.3.4
- #54717 dbghelp:dbghelp - SymRefreshModuleList() sometimes returns STATUS_INFO_LENGTH_MISMATCH on Windows
- #56205 The Egyptian Prophecy: The Fate of Ramses: text displayed without transparency
- #56474 Crowns and Pawns: Graphic bugs
- #56523 The Dark Pictures Anthology: Man of Medan hangs/crashes after company logo
- #56605 V-Rally 4 crashes right before starting a race
- #56627 Direct3D applications run out of memory on Windows XP
- #56770 Geneforge 4: stuttering in character and mouse movement
- #56886 Wincatalog can't scan folders
- #57207 Fallout 3: Regression spams console with errors
- #57274 Regression causing Obduction to hang and exit
- #57306 Multiple programs crash due to memory corruption since 5924ab4c515 (Nikon NX studio, Profit, Falcosoft's Soundfont Midi Player, IBExpert)
- #57333 Civilization IV fails to start (XML load Error)
- #57409 Interactivity The Interactive Experience from itch.io deadlocks (regression)
- #57476 Methods arguments attributes are missing from dwrite.idl
- #57522 Voltage sources have the wrong shapes in Micro-Cap 12.2.0.5 on Wine 9.21 and later
- #57549 Fighter Factory 3: Window Graphics don't display correctly after prolonged use.
- #57550 Geneforge 4 complains about resolution and crashes when run in virtual desktop
- #57551 10-rc2 regression: MS Office 2007/2010: some dialogs are only ~1/4 visible
- #57558 joy.cpl xinput joysticks circles are cropped by 1px on the bottom
- #57566 Silent crash for application attempting to use RSA
- #57582 Eschalon Book I: launcher menu flickering
- #57583 Truncated popup
- #57584 8-bit color mode is broken in Wine 9.11 and later
- #57599 HyperBall Shareware: black screen (regression)
- #57601 Touchscreen input broken for x11drv/mouse.c
- #57636 Black screen in menu until button click in Age of Empires
- #57649 call .bat doesn't propagate errorlevel
### Changes since 10.0-rc4:
```
Alexandre Julliard (7):
shell32: Look for the file name without extension also for the path search case.
dnsapi/tests: Update DNS names for the new test.winehq.org server.
wininet/tests: Update certificate for the new test.winehq.org server.
secur32/tests: Update expected results for the new test.winehq.org server.
winhttp/tests: Allow some more notifications for the new test.winehq.org server.
ieframe/tests: Allow more property changes with the new test.winehq.org server.
win32u: Fix stack corruption in NtUserScrollDC.
Anton Baskanov (2):
ddraw/tests: Test that releasing a primary surface invalidates the window.
ddraw: Invalidate the window when the primary surface is released.
Bernhard Übelacker (2):
d3dx9_36/tests: Fix test data buffer underflow (ASan).
gdi32: Explicitly check for negative text length in GetTextExtentExPointW().
Billy Laws (1):
ntdll: Emulate mrs xN, CurrentEL instructions.
Brendan McGrath (1):
mfmediaengine: Fix maths in scaling check.
Brendan Shanks (2):
wineboot: Correctly handle SMBIOS tables older than v3.0.
ntdll: On macOS, only use actual SMBIOS tables if they are v2.5 or higher.
Connor McAdams (1):
quartz/dsoundrender: Restart the render thread when clearing EOS in dsound_render_sink_end_flush().
Conor McCarthy (1):
mf: Do not clean up a session op if it was submitted to a work queue.
Dmitry Timoshkov (4):
rsaenh/tests: Add some tests for RC4 salt.
rsaenh/tests: Add a test for RC4 session key.
rsaenh/tests: Make RC4 tests more distinct.
rsaenh: CPGenKey() shouldn't generate RC4 key salt if not requested.
Elizabeth Figura (13):
Revert "win32u: Forward to Rectangle() if the ellipse width or height is zero.".
Revert "win32u: Do not convert back to integer before finding intersections.".
Revert "win32u: Correctly handle transforms which flip in get_arc_points().".
Revert "win32u: Normalize inverted rectangles in dibdrv_RoundRect().".
Revert "win32u: Always select the point that's closer to the ellipse.".
Revert "win32u: Allocate the whole max_points for the top_points array.".
Revert "win32u: Implement drawing transformed round rectangles.".
Revert "win32u: Implement drawing transformed arcs.".
gdi32: Trace more functions.
gdi32/tests: Add some arc tests.
ddraw/tests: Test preservation of the X channel when clearing.
wined3d: Separate a cpu_blitter_clear_texture() helper.
ddraw: Clear sysmem textures on the CPU.
Eric Pouech (4):
cmd/tests: Add more tests.
cmd: Skip trailing white spaces in FOR's option.
cmd: Fix some CALL errorlevel propagation.
cmd: Don't return syntax error code on empty lines.
Esme Povirk (1):
gdiplus: Use font linking only for missing glyphs.
Francis De Brabandere (3):
vbscript/tests: Refactor Mid() error tests.
vbscript: Fix Mid() empty and null handling.
vbscript: Remove trailing semicolon in parser.
Gabriel Ivăncescu (1):
winex11: Respect swp_flags when syncing window position.
Jactry Zeng (1):
po: Update Simplified Chinese translation.
Lauri Kenttä (2):
documentation: Update Linux and Mac OS X versions.
po: Update Finnish translation.
Nikolay Sivov (1):
include: Fix method arguments annotations in dwrite.idl.
Paul Gofman (5):
ddraw/tests: Test state application on multiple devices.
ddraw: Factor out d3d_device_apply_state().
ddraw: Correctly apply state when multiple devices are used.
winex11: Flush display when presenting offcreen drawable from wglFlush / wglFinish.
winex11: Call glFinish() when presenting offscreen drawable from wglFlush.
Rémi Bernon (5):
winex11: Check window region instead of forcing offscreen on parent.
winebus: Ignore unsupported hidraw touchscreen devices.
winex11: Map mouse/touch event coordinates even without a hwnd.
win32u: Initialize dibdrv info from the surface color bitmap.
winex11: Always fill the window surface color info.
Santino Mazza (1):
mmdevapi/tests: Fix audio clock adjustment tests failing in testbot.
William Horvath (1):
winex11: Use the win32 client rect in needs_client_window_clipping.
```
The Wine development release 10.0-rc4 is now available.
What's new in this release:
- Bug fixes only, we are in code freeze.
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0-rc4.tar.xz>
Binary packages for various distributions will be available
from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people.
See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.0-rc4/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.0-rc4 (total 13):
- #37372 Unexpected order of results in wildcard expansion
- #48877 Melodyne crashes when using the Pitch tool
- #51656 Gaea Installer crashes in riched when pressing enter
- #52447 64-bit .NET framework 2.0 installer hangs while generating/installing native images of 'System.Windows.Forms' assembly into GAC
- #53405 Into The Breach freezes when enabling fullscreen
- #54342 ws2_32:sock - test_WSARecv() sometimes fails with "got apc_count 1." on Windows
- #56531 Final Fantasy XI Online: Some textures are transparent, malformed, or misplaced.
- #56533 Final Fantasy XI Online: Incorrect/corrupt textures shown on models.
- #56885 WinCatalog has a crash at startup
- #57248 Rhinoceros 8.11 installer crashes on start
- #57568 Arcanum (and many other titles) crashes on start
- #57577 Minimised applications are restored with -4 vertical pixels.
- #57587 10.0-rc1 regression (dsoundrender): no audio or hangs in some videos
### Changes since 10.0-rc3:
```
Alexandre Julliard (3):
Update copyright info for 2025.
ntdll: Set the processor architecture variable from the current arch.
xml: Disable the non-determinist schema check.
André Zwing (6):
bluetoothapis/tests: Don't test functions directly when reporting GetLastError().
kernel32/tests: Don't test functions directly when reporting GetLastError().
iphlpapi/tests: Don't test functions directly when reporting GetLastError().
msvcr120/tests: Don't test function directly when reporting GetLastError().
msvcp140/tests: Don't test function directly when reporting GetLastError().
msvcp120/tests: Don't test function directly when reporting GetLastError().
Bernhard Übelacker (7):
mfplat/tests: Fix copy-paste release calls.
dwrite: Avoid stack-buffer-overflow in arabic_setup_masks.
comctl32/tests: Fix test array size (ASan).
comctl32/tests: Use sufficient user data buffer in the Tab tests (ASan).
comctl32/tests: Mark a test as broken on Windows.
dwrite: Fix off-by-one clustermap indexing (ASan).
uiautomationcore: Fix a double-free of advisers array (ASan).
Elizabeth Figura (1):
qasf/dmowrapper: Acquire new output samples for each ProcessOutput() call.
Eric Pouech (1):
kernelbase: Don't free pathname if query failed.
Etaash Mathamsetty (1):
nsiproxy: Set rcv/xmit speed to 1000000 on linux.
Floris Renaud (1):
po: Update Dutch translation.
Jinoh Kang (1):
user32/tests: Force window to be visible in subtest_swp_paint_regions.
Piotr Caban (2):
msvcr120/tests: Skip _fsopen tests if file can't be created.
msvcp120/tests: Skip _Fiopen tests if file can't be created.
Rémi Bernon (6):
winex11: Improve GetWindowStateUpdates traces.
win32u: Check window state updates again after applying new state.
win32u: Don't overwrite dummy vulkan window.
win32u: Always update the surface regions in apply_window_pos.
server: Remove now unnecessary needs_update member.
winex11: Don't re-create the GL drawable if pixel format didn't change.
Zhiyi Zhang (2):
d2d1/tests: Remove a duplicate test.
dxgi: Support more feature levels in debug_feature_level().
```
The Wine development release 10.0-rc3 is now available.
What's new in this release:
- Bug fixes only, we are in code freeze.
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0-rc3.tar.xz>
Binary packages for various distributions will be available
from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people.
See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.0-rc3/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.0-rc3 (total 15):
- #11674 Dual-core unsupported in WoW and SC2
- #49473 Chaos Legion videos are played upside down
- #52738 No keyboard input in "STREET CHAVES - O LUTADOR DA VILA"
- #56319 Parallel Port Tester won't start (fails to locate driver "System32\Drivers\inpoutx64.sys", but changing to absolute path works)
- #56348 Bricks: moving a brick causes it to rapidly alternate positions
- #56471 starting of native program with "start /unix ..." is broken
- #56632 Explorer cannot run any files in Windows ME compatibility mode (or below)
- #56714 Startopia is stuck on a black screen on launch
- #57227 IL-2 1946 crash at startup
- #57286 Dark Age of Camelot - camelot.exe required igd10umd32.dll but the .dll file is not found.
- #57319 Painting in a proprietary application is broken with vulkan renderer
- #57515 desktop mode did not show taskbar anymore
- #57523 PokerTracker 4: cannot launch anymore
- #57525 Systray icons cannot be interacted with
- #57541 CMake doesn't find toolchain
### Changes since 10.0-rc2:
```
Akihiro Sagawa (1):
po: Update Japanese translation.
Alanas Tebuev (1):
comctl32/tests: Initialize hwnd to NULL before calling rebuild_toolbar().
Alexandre Julliard (6):
ntdll: Align heap virtual allocations to a multiple of the page size.
shell32: Don't call AW functions internally.
shell32: Return the file itself without extension if it exists.
propsys/tests: Fix a test that fails on some Windows versions.
win32u/tests: Mark the foreground thread test as flaky.
advapi32/tests: Use the correct key handle in the notify thread.
Alistair Leslie-Hughes (1):
msxml3: Correct looping of Document Element node map.
Bernhard Übelacker (4):
server: Avoid crash when handle table is allocated but not yet filled.
crypt32: Avoid stack-use-after-scope in CSignedEncodeMsg_GetParam (ASan).
d3dx9_36/tests: Fix logging of expected bytes in check_vertex_components. (ASan).
xmllite/tests: Avoid buffer overflow by using LONG_PTR (ASan).
Elizabeth Figura (2):
wined3d: Add nop state entries for states now invalidated on the client side.
Revert "wined3d: Use bindless textures for GLSL shaders if possible.".
Eric Pouech (3):
cmd/tests: Add more tests about variable expansion.
cmd: Fix regression in variable search in expansion.
winedump: Fix variable overwrite when dumping exception.
Esme Povirk (1):
gdiplus: GdipPathAddRectangle should close the path.
Gerald Pfeifer (1):
capstone: Avoid GCC being treated as old VisualStudio.
Jacek Caban (1):
mshtml: Ignore Gecko events on detached nodes.
Louis Lenders (1):
kernelbase: Don't try to print the path in the FIXME in GetTempPath2.
Nikolay Sivov (9):
windowscodecs/tests: Added some tests for Exif and Gps IFDs embedded in App1 blob.
windowscodecs/tests: Add some tests for CreateMetadataWriterFromReader().
windowscodecs/tests: Add some tests for CreateMetadataWriter().
windowscodecs/tests: Add some tests for metadata stream objects handling.
windowscodecs/tests: Add loading tests for the writers.
windowscodecs/tests: Check persist options after Load().
windowscodecs: Fix a typo in interface name.
include: Add methods arguments annotations for DirectWrite types.
dwrite/tests: Allocate test inline objects dynamically.
Owen Rudge (2):
odbc32: Avoid crashing if str is null in debugstr_sqlstr.
odbc32: Add null pointer checks to update_result_lengths helpers.
Paul Gofman (2):
winex11: Use NtUserReleaseDC() with hdc.
server: Cleanup all the global hooks owned by terminating thread.
Rémi Bernon (5):
winex11: Sync gl drawable outside of the win_data mutex.
winex11: Use DCX_USESTYLE when checking DC clipping regions.
winex11: Move GL/VK offscreen if the clipping region is NULLREGION.
dinput: Copy the device format if the user format is a subset of it.
dinput: Check that the device format data fits in the user format data.
```
The Wine development release 10.0-rc2 is now available.
What's new in this release:
- Bug fixes only, we are in code freeze.
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0-rc2.tar.xz>
Binary packages for various distributions will be available
from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people.
See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.0-rc2/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.0-rc2 (total 21):
- #28861 Final Fantasy XI hangs after character selection
- #47640 No Man's Sky (Beyond) does not start anymore: Unable to initialize Vulkan (vkEnumerateInstanceExtensionProperties failed)
- #51998 Unable to start CloneCD
- #53453 Command & Conquer 3: Tiberium Wars - fails to start (splash screen not even shown)
- #54437 ntoskrnl.exe:ntoskrnl breaks test_rawinput() [(RIM|WM)_INPUT] in user32:input for non-English locales on Windows 7
- #55583 d3d8:device - test_wndproc() often is missing a WM_WINDOWPOSCHANGING in Wine
- #56056 Exiting IrfanView full screen mode creates a redundant task bar "Untitled window" item which is not clickable
- #56325 Prefix path string in wineboot dialog is cut off
- #56940 vs_community.exe halts:"The application cannot find one of its required files, possibly because it was unable to create it in the folder."
- #57216 Mouse wheel input in IL-2 1946 is not applied consistently to UI elements and throttle
- #57285 Foxit Reader - maximized view don't work properly
- #57384 The shareware installer for Daytona (16-bit) hangs at the end of installing.
- #57418 PlayOnline Viewer throws an application error at launch.
- #57442 Several applications: abnormal input delay with Wine
- #57481 Prey (2016) X11 fullscreen fails in 9.22
- #57503 World in conflict has a frozen screen - updating only when alt-tabbing out and in
- #57504 Possible regression with Unity3D games: Framedrops when moving cursor.
- #57506 Wine doesn't show any window
- #57524 Commit c9592bae7f475c1b208de0a72ed29e94e3017094 breaks VKB Gladiator HIDRAW support
- #57527 Drop-down list appears behind the main window
- #57530 Regression: Tiny extra form displays in Delphi programs
### Changes since 10.0-rc1:
```
Alexandre Julliard (7):
user32: Fixup forwarded functions on 32-bit.
ntoskrnl: Support relative driver paths.
ntoskrnl: Fix off-by-one error in buffer size.
wineboot: Always wrap the wait dialog text.
wineboot: Resize the wait dialog to accommodate the text size.
wineboot: Scale the wait dialog icon with the dialog size.
winetest: Filter out color escapes for junit output.
Eric Pouech (2):
dbghelp: Fix error handling in PDB/FPO unwinder.
dbghelp: Lower vector allocation for local variables.
Esme Povirk (1):
mscoree: Use correct variable for codebase path.
Gabriel Ivăncescu (1):
mshtml: Remove unused MutationObserver DISPID and related hook.
Gerald Pfeifer (1):
webservices: Rename a struct member from bool to boolean.
Jacek Caban (1):
configure: Define _load_config_used symbol in the cross-compiler test program.
Louis Lenders (1):
shell32: Remove trailing spaces in SHELL_execute.
Marcus Meissner (1):
ucrtbase/tests: Use correct size to GetEnvironmentVariableW.
Nikolay Sivov (8):
windowscodecs/tests: Use test context in a few metadata tests.
windowscodecs/tests: Add some tests for GetContainerFormats().
windowscodecs/tests: Use a helper instead of a macro.
windowscodecs/tests: Remove endianess compile time checks from the tests.
windowscodecs/tests: Move IFD data tests to a helper.
windowscodecs/tests: Run data test on the Exif reader.
windowscodecs/tests: Add some tests for the Gps reader.
windowscodecs/tests: Add some tests for the App1 reader.
Piotr Caban (1):
msvcrt: Don't leak find handle or error in _findfirst().
Rémi Bernon (17):
win32u: Skip updating the cache on driver load if we're already updating it.
win32u: Release the Win16 mutex when yielding in peek_message.
win32u: Copy the shape from the old surface when surface is recreated.
server: Force surface region update when window region is modified.
win32u: Extend display_lock CS around winstation check.
server: Add a winstation monitor update serial counter.
win32u: Use the winstation monitor update serial to detect updates.
winex11: Request window config when it needs to be raised.
winebus: Wait until the device is started before processing reports.
dmloader: Remove redundant flag.
winex11: Fixup window config size back to 0x0 if we've requested 1x1.
winex11: Always check if the GL drawable offscreen state needs to be changed.
winex11: Skip offscreening if the children don't require clipping.
dinput: Queue the relative wheel motion as event data.
explorer: Avoid hiding the taskbar if it's enabled.
server: Allow merging WM_MOUSEMOVE across internal messages.
winex11: Fix inconsistent coordinates when reparenting host window.
Vibhav Pant (3):
winebth.sys: Fix new bluetooth events being incorrect set due to variable shadowing.
winebth.sys: Set the Information field in the IRP's STATUS_BLOCK after handling IOCTL_BTH_GET_LOCAL_INFO.
winebth.sys: Use the correct byte-ordering for setting the radio's address property.
William Horvath (2):
include: Use inline assembly on Clang MSVC mode in YieldProcessor().
win32u: Check for driver events more often.
Zhiyi Zhang (1):
win32u: Use width and height to check if the display mode is vertical.
```
The Wine development release 10.0-rc1 is now available.
This is the first release candidate for the upcoming Wine 10.0. It
marks the beginning of the yearly code freeze period. Please give this
release a good testing and report any issue that you find, to help us
make the final 10.0 as good as possible.
What's new in this release:
- Bundled vkd3d upgraded to version 1.14.
- Mono engine updated to version 9.4.0.
- Initial version of a Bluetooth driver.
- UTF-8 support in the C runtime functions.
- Support for split debug info using build ids.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0-rc1.tar.xz>
Binary packages for various distributions will be available
from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people.
See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.0-rc1/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.0-rc1 (total 17):
- #43172 IDirectPlay4::EnumConnections needs to support wide string in DPNAME structure
- #56109 Broken Radiobutton navigation (Up/Down, Accelerators) in several InnoSetup installers
- #56709 PackTouchHitTestingProximityEvaluation not located in USER32.dll when attempting to run Clip Studio Paint 3.0
- #56838 FL Studio 21 gui problem
- #57064 Bloodrayne 2 (legacy and Terminal Cut): graphical issue (foggy screen)
- #57308 Cannot load split debug symbols under /usr/lib/debug
- #57401 Dragon Unpacker crashes on both wine devel and staging
- #57411 Heroes of the Storm: screen sporadically flickers black
- #57431 Links 2003 Crashes
- #57437 PStart isn't showing a menu in the tray bar
- #57453 Regression: TWM: Cursor position offset in *some* programs.
- #57457 Mathcad 15 crashes when enter trace tab
- #57463 winebus always crashing with unknown since 8b41c2cfddba1f9973246f61e39d4a4d92912da5
- #57472 Systray support is broken in Wine 9.22
- #57474 Windows disappear irreversibly when are not shown on a virtual desktop
- #57477 After commit of 484c61111ef32d75dcf5cf1656b4469b4de3ec37 game could not launch with dxvk
- #57493 Mathcad 15 crashes on startup due to unhandled domdoc MaxElementDepth property
### Changes since 9.22:
```
Aida Jonikienė (6):
dsound: Handle NaN values in the 3D code.
dsound: Add an angle check for SetOrientation().
dsound/tests: Add NaN tests for floating-point 3D functions.
dsound: Add non-NaN value tests for SetOrientation().
winevulkan: Mirror function handling in vk_is_available_instance_function32().
winevulkan: Use WINE_UNIX_LIB instead of WINE_VK_HOST.
Alexandre Julliard (20):
ntdll: Initial version of NtContinueEx().
ntdll: Always return the handle from NtCreateIoCompletion().
server: Do not allow to open an existing mailslot in NtCreateMailslotFile.
server: Fix a token reference leak.
ntdll/tests: Remove some workarounds for old Windows versions.
ntdll/tests: Add tests for opening objects with zero access.
vkd3d: Import upstream release 1.14.
server: Use the correct handle allocation pattern for all object types.
win32u: Add some access rights when creating a desktop object.
server: Make CurrentControlSet a symlink in new prefixes.
ntdll: Make a debug channel dynamically settable only if there's no specified class.
taskmgr: Only list dynamically settable debug channels.
server: Only store a Unix name for regular files.
widl: Avoid unused variable warning.
configure: Correctly check the --enable-build-id option.
winegcc: Remove support for .def files as import libraries.
winebuild: Remove support for .def files as import libraries.
wrc: Use the correct error function for syntax errors.
server: Print signal names in traces.
ntdll: Move update_hybrid_metadata() to the ARM64EC backend.
Alfred Agrell (2):
dsound/tests: Add nonlooping SetNotificationPositions test.
dsound: Fix SetNotificationPositions at end of nonlooping buffer.
Alistair Leslie-Hughes (3):
include: Add _WIN32_WINNT_ version defines.
include: Add DB_VARNUMERIC struct.
include: Add SQL_C_TCHAR define.
Andrew Nguyen (1):
msxml3: Accept the domdoc MaxElementDepth property.
Anton Baskanov (2):
dplayx/tests: Test client side of GetMessageQueue() separately.
dplayx: Support DPMESSAGEQUEUE_RECEIVE in GetMessageQueue().
Billy Laws (5):
msi: Dynamically determine supported package architectures.
ntdll: Test more ARM64 brk instruction exception behaviour.
ntdll: Fix reported exception code for some brk immediates.
ntdll: Add arm64ec_get_module_metadata helper.
ntdll: Force redirect all ARM64EC indirect calls until the JIT is ready.
Brendan McGrath (2):
mfmediaengine: Implement the Simple Video Renderer.
mfmediaengine: Fallback to sample copy if scaling is required.
Brendan Shanks (3):
include: Use %fs/%gs prefixes instead of a separate .byte 0x64/.byte 0x65.
ntdll: Use %fs/%gs prefixes instead of a separate .byte 0x64/.byte 0x65.
ntdll: Use sched_getcpu instead of the getcpu syscall.
Conor McCarthy (12):
winegstreamer: Handle null transform in video IMediaObject::Flush().
winegstreamer: Handle null transform in video IMFTransform::ProcessMessage() DRAIN.
winegstreamer: Handle null transform in video IMFTransform::ProcessMessage() FLUSH.
winegstreamer: Handle null transform in WMA IMediaObject::Flush().
winegstreamer: Return the result code from media_source_Pause().
mf/tests: Add tests for shutting down a media source used in a session.
mf: Handle media source EndGetEvent() failure due to shutdown.
mf: Handle media source BeginGetEvent() failure due to shutdown.
mf: Handle media source event subscription failure due to source shutdown.
mf: Handle media source Start() failure due to source shutdown.
mf: Introduce IMFMediaShutdownNotify for notification of media source shutdown.
winegstreamer: Send media source shutdown notification via IMFMediaShutdownNotify.
Daniel Lehman (5):
msvcr120/tests: Add tests for _fsopen.
msvcp120/tests: Add tests for _Fiopen.
ucrtbase/tests: Add tests for _fsopen.
msvcp140/tests: Add tests for _Fiopen.
msvcp140: Call into fopen from _Fiopen.
Dmitry Timoshkov (1):
ntdll: Add NtFlushBuffersFileEx() semi-stub.
Dāvis Mosāns (1):
ntdll/tests: Unify APC test functions.
Elizabeth Figura (14):
wined3d: Use wined3d_texture_download_from_texture() even if the dst texture map binding is not valid.
wined3d: Beginnings of an HLSL FFP pixel shader implementation.
wined3d: Implement pretransformed varyings in the HLSL FFP pipeline.
wined3d: Take the depth buffer into account for HLSL pretransformed draws.
wined3d: Implement lighting in the HLSL FFP pipeline.
wined3d: Implement vertex fog in the HLSL FFP pipeline.
quartz/dsoundrender: Always treat samples as continuous if they are late or out of order.
quartz/dsoundrender: Remove the unused "tStop" argument to send_sample_data().
quartz/dsoundrender: Play non-discontinuous samples consecutively.
quartz/tests: Test whether the DirectSound renderer provides a position.
quartz/dsoundrender: Do not provide time to the passthrough.
quartz/dsoundrender: Do not ignore preroll samples.
quartz/dsoundrender: Queue samples and render them on a separate thread.
quartz/dsoundrender: Use send_sample_data() to fill the buffer with silence at EOS.
Eric Pouech (11):
kernel32: Add tests for checking the exit code of default ctrl-c handlers.
kernelbase: Fix exit code for default ctrl-c handler.
ntdll/tests: Fix format warning with clang.
configure: Properly test clang for dwarf support.
winegcc: Remap build-id linker option for clang.
configure: Use -Wl,--build-id unconditionally if requested.
configure: Don't add -Wl,--build-id linker option to CFLAGS.
dbghelp: Extend search for buildid in system directories.
dbghelp: Search debug info with buildid for RSDS debug entry w/o filenames.
server: Ensure in pending delete on close that path to unlink are unique.
winedbg: Add support for dynamic debug channel.
Esme Povirk (1):
mscoree: Update Wine Mono to 9.4.0.
Evan Tang (2):
kernelbase: Properly return 0 from EnumSystemFirmwareTable on error.
kernelbase: Add test for EnumSystemFirmwareTables on missing provider.
Fabian Maurer (8):
dplayx: Add a few more locks (Coverity).
comctl32/tests: Add tests for radio button WM_SETFOCUS.
comctl32: Send parent BN_CLICKED notification when a radio button get focused.
user32/tests: Add tests for radio button WM_SETFOCUS.
user32: Send parent BN_CLICKED notification when a radio button get focused.
oleaut32: Make OleCreateFontIndirect return error if font name is missing.
oleaut32: Remove unneeded null checks.
d3dx9: Remove superfluous null check (Coverity).
Gabriel Ivăncescu (38):
mshtml: Move htmlcomment.c contents into htmltextnode.c.
mshtml: Add an internal IWineHTMLCharacterData interface and forward text node methods to it.
mshtml: Expose the props from the IWineHTMLCharacterData interface for CharacterDataPrototype.
mshtml: Don't expose toString from text nodes in IE9+ mode.
mshtml: Expose IHTMLCommentElement2 interface for comment elements.
mshtml: Don't expose 'atomic' prop from comment nodes in IE9+ modes.
mshtml: Don't expose element props from comment nodes in IE9+ modes.
mshtml: Implement get_data for legacy DOCTYPE comment elements.
mshtml: Expose ie9_char as char for KeyboardEvent.
mshtml: Make PageTransitionEvents only available in IE11 mode.
mshtml: Make ProgressEvent constructor only available in IE10+ modes.
mshtml: Expose respective props from Element prototype.
mshtml: Don't expose fireEvent from elements in IE11 mode.
mshtml: Don't expose onmspointerhover from elements in IE11 mode.
mshtml: Move toString from HTMLElement to HTMLAnchorElement or HTMLAreaElement in IE9+ modes.
mshtml: Move hasAttributes from HTMLElement to HTMLDOMNode in IE9+ modes.
mshtml: Move normalize from HTMLElement to HTMLDOMNode in IE9+ modes.
mshtml: Don't expose onpage from elements in IE9+ modes.
mshtml: Don't expose expression methods from elements in IE9+ modes.
mshtml: Don't expose some props from elements in IE10+ modes.
mshtml: Don't expose some props from elements in IE11 mode.
mshtml: Move HTMLTableDataCellElement prototype props to the HTMLTableCellElement prototype.
mshtml: Add IHTMLDOMNode2 in every mode in node's init_dispex_info.
mshtml: Get rid of HTMLELEMENT_TIDS.
mshtml: Move HTMLDocument prototype props to the Document prototype.
mshtml: Use DocumentPrototype as the document's prototype for modes prior to IE11.
mshtml: Expose the right props from document fragments.
mshtml: Don't expose some props from document prototype depending on mode.
mshtml/tests: Add more tests for the style aliased prop names.
mshtml: Expose respective props from MSCSSPropertiesPrototype.
mshtml: Prefer builtins for style aliases that have the same name.
mshtml: Move 'filter' prop to MSCSSPropertiesPrototype in IE9 mode.
mshtml: Don't expose 'behavior' prop from styles in IE11 mode.
mshtml: Don't expose the clip* props from style declaration or properties in IE9+ modes.
mshtml: Don't expose the *Expression methods from styles in IE9+ modes.
mshtml: Don't expose toString from styles in IE9+ modes.
mshtml: Expose respective props from StyleSheetPrototype.
mshtml: Get rid of unused HTMLElement_toString_dispids.
Georg Lehmann (1):
winevulkan: Update to VK spec version 1.4.303.
Gerald Pfeifer (3):
win32u: Don't use bool as member of a union type.
msi: Use mybool instead of bool as variable name.
winhlp32: Drop unused member of struct lexret.
Giovanni Mascellani (2):
user32/tests: Check that message-only windows ignore WS_EX_TOPMOST.
win32u/window: Ignore changing WS_EX_TOPMOST for message-only windows.
Hans Leidekker (2):
msi: Assume PLATFORM_INTEL if the template property is missing.
bcrypt: Trace returned handles.
Haoyang Chen (1):
gdiplus: Use the FormatID of the source image when cloning.
Henri Verbeet (3):
d3dcompiler/tests: Clean up tests fixed by vkd3d merges.
d3d10_1/tests: Clean up tests fixed by vkd3d merges.
d3dx11/tests: Clean up tests fixed by vkd3d merges.
Jacek Caban (18):
msvcrt/tests: Silence -Wformat-security Clang warning in test_snprintf.
include: Apply LONG_PTR format hack only to Wine build.
include: Use LONG_PTR format hack on Clang in MSVC mode.
include: Use format attribute on Clang in MSVC mode.
d3d11/tests: Always use a format string in winetest_push_context calls.
ddraw/tests: Always use a format string in winetest_push_context calls.
imagehlp: Cast AddressOfData to size_t in debug traces.
mmdevapi/tests: Use %u format for unsigned int arguments.
include: Enable format attributes for debug traces in Clang MSVC mode.
gdiplus: Cast enums to unsigned type when validating its value.
jscript: Avoid unused variable warning.
msi: Avoid unused variable warning.
msxml: Avoid unused variable warning.
vbscript: Avoid unused variable warning.
wbemprox: Avoid unused variable warning.
include: Use inline assembly on Clang MSVC mode in exception helpers.
jscript: Move property allocation to update_external_prop.
jscript: Add support for deleting host properties.
Louis Lenders (1):
msvcp140: Add a version resource.
Marc-Aurel Zent (8):
ntdll: Implement NtGetCurrentProcessorNumber for macOS on x86_64.
server: Do not suspend mach task in read_process_memory.
server: Use mach_vm_read_overwrite in read_process_memory.
server: Do not suspend mach task in get_selector_entry.
server: Use mach_vm_read_overwrite in get_selector_entry.
server: Do not suspend mach task in write_process_memory.
server: Do not page-align address in write_process_memory.
server: Work around macOS W^X limitations in write_process_memory.
Matteo Bruni (5):
d3dcompiler/tests: Clean up further tests fixed by vkd3d merges.
d3dx9_43: Generate an import library.
d3dx9/tests: Add d3dx9_43 tests.
d3dx9/tests: Test the 'double' HLSL data type.
d3dcompiler/tests: Test the 'double' HLSL data type.
Mohamad Al-Jaf (5):
windows.networking.connectivity: Add stub dll.
windows.networking.connectivity: Add INetworkInformationStatics stub interface.
windows.networking.connectivity: Implement INetworkInformationStatics::GetInternetConnectionProfile().
windows.networking.connectivity/tests: Add some INetworkInformationStatics::GetInternetConnectionProfile() tests.
windows.networking.connectivity: Implement IConnectionProfile::GetNetworkConnectivityLevel().
Nikolay Sivov (6):
d2d1/effect: Improve handling of blob properties.
windowscodecs/tests: Use string literals in the metadata tests.
windowscodecs/tests: Add some tests for CreateMetadataReader().
windowscodecs/tests: Add a basic test for CreateComponentEnumerator().
windowscodecs/metadata: Add a helper to iterate over components.
windowscodecs: Implement CreateMetadataReader().
Orin Varley (3):
msxml3/tests: Add indentation test.
comctl32/tests: Add tests for a small number of items but big size to the combobox dropdown size tests.
comctl32: Make CBS_NOINTEGRALHEIGHT only set minimum combobox height.
Paul Gofman (1):
explorer: Prevent apps from showing Wine specific shell tray window with no icons.
Piotr Caban (43):
include: Add ___lc_codepage_func() declaration.
msvcp60: Improve wcsrtombs implementation.
msvcp60/tests: Add wcsrtombs tests.
msvcrt: Call _wmkdir in _mkdir function.
msvcrt: Call _wrmdir in _rmdir function.
msvcrt: Call _wchdir in _chdir function.
msvcrt: Call _wgetcwd in _getcwd function.
msvcrt: Call _wgetdcwd in _getdcwd function.
msvcrt: Call _wfullpath in _fullpath function.
ole32: Fix unsupported vector elements detection in PropertyStorage_ReadProperty.
ole32/tests: Add FMTID_UserDefinedProperties property storage tests.
ole32: Read property storage section from correct location.
ole32/tests: Add more FMTID_UserDefinedProperties property storage tests.
msvcrt: Prepare _fsopen to handle UTF-8 strings.
msvcrt: Call _wunlink in _unlink function.
msvcrt: Call _waccess in _access function.
msvcrt: Call _wchmod in _chmod function.
msvcrt: Call _unlink in remove function.
msvcrt: Call _wunlink in _wremove function.
msvcrt: Prepare _mktemp to handle UTF-8 strings.
msvcrt: Prepare _mktemp_s to handle UTF-8 strings.
msvcrt: Call _wstat64 in _stat64 function.
msvcrt: Call _wrename in rename function.
msvcrt: Call _wtempnam in _tempnam function.
msvcrt: Don't return success on GetFullPathName error in _wsearchenv_s.
msvcrt: Prepare _searchenv_s() for utf-8 encoded filename.
include: Cleanup corecrt_io.h file and use it in io.h.
msvcrt: Call _wfindfirst32 in _findfirst32 function.
msvcrt: Call _wfindnext32 in _findnext32 function.
msvcrt: Call _wfindfirst64 in _findfirst64 function.
msvcrt: Call _wfindnext64 in _findnext64 function.
msvcrt: Call _wfindfirst64i32 in _findfirst64i32 function.
msvcrt: Call _wfindnext64i32 in _findnext64i32 function.
msvcrt: Add putenv() utf-8 tests.
msvcrt: Return error on NULL path parameter in _wsopen_dispatch.
msvcrt: Prepare _sopen_dispatch to handle utf-8 encoded path.
msvcrt: Prepare freopen to handle utf-8 encoded path.
msvcrt: Prepare _loaddll to handle utf-8 encoded path.
msvcrt: Prepare _spawnl to handle utf-8 encoded arguments.
msvcrt: Prepare _execle to handle utf-8 encoded arguments.
msvcrt: Prepare remaining process creation functions to handle utf-8 encoded arguments.
ucrtbase: Enable utf8 support.
ucrtbase: Always use CP_ACP when converting environment block.
Roman Pišl (1):
kernel32: Use a proper import for HeapFree.
Rémi Bernon (45):
winebus: Ignore reports with unexpected IDs.
winex11: Read _NET_SUPPORTED atom list on process attach.
winex11: Only request the supported _NET_WM_STATE atoms.
winevulkan: Add missing wine_vkGetPhysicalDeviceSurfaceFormatsKHR manual wrapper.
win32u: Use PFN_* typedefs for vulkan function pointers.
winevulkan: Get rid of the instance/device funcs structs.
winevulkan: Generate ALL_VK_(DEVICE|INSTANCE)_FUNCS in wine/vulkan.h.
winevulkan: Move vulkan_client_object header to wine/vulkan_driver.h.
winevulkan: Name wine_instance parameters and variables more consistently.
winevulkan: Hoist physical device array and client instance handle.
winevulkan: Introduce a new vulkan_instance base structure.
winevulkan: Introduce a new vulkan_physical_device base structure.
winevulkan: Name wine_device parameters and variables more consistently.
winevulkan: Introduce a new vulkan_device base structure.
winevulkan: Restore some wine_*_from_handle helpers.
winevulkan: Introduce a new vulkan_queue base structure.
winevulkan: Introduce a new vulkan_surface base structure.
winevulkan: Introduce a new vulkan_swapchain base structure.
winevulkan: Use a vulkan_object header for other wrappers.
winevulkan: Use the result to decide if creation failed.
winevulkan: Introduce a new vulkan_object_init helper.
winevulkan: Fix incorrect client queue pointers.
winevulkan: Avoid changing client command buffer pointer.
winevulkan: Get rid of unnecessary *to_handle helpers.
winevulkan: Use the vulkan object as the wrapper tree node.
winevulkan: Keep the host function pointers in devices and instances.
win32u: Move surface and swapchain wrappers from winevulkan.
winex11: Don't update Win32 window position for offscreen windows.
winex11: Do not use desired_state when computing state updates.
winex11: Set a non-transparent window background pixel color.
win32u: Let fullscreen windows cover entire monitors, keeping aspect ratio.
winex11: Use bilinear filtering in xrender_blit.
quartz/dsoundrender: Rename "This" to "filter".
quartz/dsoundrender: Add missing static qualifier to IDispatch methods.
quartz/dsoundrender: Make brace placement consistent.
quartz/dsoundrender: Use a consistent style for method names.
quartz/dsoundrender: Make trace messages more consistent.
win32u: Add a force parameter to lock_display_devices.
win32u: Implement update_display_cache with lock_display_devices.
win32u: Remove recursive lock_display_devices calls.
win32u: Hold the display_lock when checking the cache update time.
mfmediaengine: Implement D3D-aware video frame sink.
windows.networking.connectivity: Use %I64d instead of %llu.
winex11: Move the _NET_SUPPORTED information to the thread data.
winex11: Listen to root window _NET_SUPPORTED property changes.
Santino Mazza (2):
mmdevapi/tests: Test for IAudioClockAdjustment.
mmdevapi: Do not modify buffer size after sample rate change.
Sven Baars (1):
win32u: Allow unsetting the user driver.
Tim Clem (3):
explorer: Apply a default admin token when running for the desktop.
Revert "win32u: Create explorer with the thread effective access token.".
kernelbase: Improve logging of information classes in GetTokenInformation.
Tingzhong Luo (3):
dwrite/tests: Add a test for DrawGlyphRun() bounds.
dwrite/gdiinterop: Always return valid bounds from DrawGlyphRun on success.
dwrite/gdiinterop: Apply dpi scaling to the whole target transform.
Torge Matthies (2):
advapi32/tests: Add test for CurrentControlSet link.
loader: Add Default, Failed, and LastKnownGood values to HKLM\System\Select.
Vibhav Pant (15):
winebth.sys: Add base winebth.sys driver.
winebth.sys: Add a basic unixlib stub using DBus.
winebth.sys: Create radio PDOs from the list of org.bluez.Adapter1 objects on BlueZ.
winebth.sys: Derive a unique hardware ID for radio PDOs from their corresponding BlueZ object path.
winebth.sys: Register and enable BTHPORT_DEVICE and BLUETOOTH_RADIO interfaces for radio PDOs.
bluetoothapis/tests: Fix potential test failure from memcmp'ing uninitialized bytes.
bluetoothapis/tests: Add tests for BluetoothFindFirstRadio.
bluetoothapis/tests: Add tests for BluetoothFindNextRadio.
bluetoothapis/tests: Add tests for BluetoothFindRadioClose.
bluetoothapis: Implement BluetoothFindFirstRadio, BluetoothFindNextRadio, BluetoothFindRadioClose.
winebth.sys: Set radio PDO properties from the device's corresponding org.bluez.Adapter1 object properties.
winebth.sys: Create new radio PDOs on receiving InterfacesAdded for objects that implement org.bluez.Adapter1.
winebth.sys: Remove the corresponding radio PDO on receiving InterfacesRemoved for a org.bluez.Adapter1 object.
winebth.sys: Update radio PDO properties on receiving PropertiesChanged for an org.bluez.Adapter1 object.
winebth.sys: Implement IOCTL_BTH_GET_LOCAL_INFO.
Vijay Kiran Kamuju (2):
user32: Add PackTouchHitTestingProximityEvaluation stub.
user32: Add EvaluateProximityToRect stub.
Vladislav Timonin (1):
comctl32/edit: Scroll caret on Ctrl+A.
Zhiyi Zhang (2):
appwiz.cpl: Fix wine_get_version() function pointer check.
uxtheme: Check DrawThemeEdge() content rectangle pointer.
Ziqing Hui (5):
qasf: Return S_FALSE for flushing in dmo_wrapper_sink_Receive.
qasf/tests: Test dmo_wrapper_sink_Receive if downstream fail to receive.
qasf: Return failure in dmo_wrapper_sink_Receive if process_output fails.
qasf/tests: Add more tests for dmo_wrapper_sink_Receive.
qasf: Correctly return failure in process_output.
```
The Wine development release 9.22 is now available.
What's new in this release:
- Support for display mode virtualization.
- Locale data updated to Unicode CLDR 46.
- More support for network sessions in DirectPlay.
- Wayland driver enabled in default configuration.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.22.tar.xz>
Binary packages for various distributions will be available
from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people.
See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.22/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.22 (total 19):
- #42606 wine doesn't *fully* respect locale settings in some corner cases
- #52105 Cygwin setup hangs (handle to \Device\NamedPipe\ used as the RootDirectory for NtCreateNamedPipeFile)
- #53019 MusicBee: inconsistent CJK/non-Latin support with Tahoma, no support on any other font.
- #53321 snakeqr: Unhandled page fault on write access in A_SHAFinal (needs NtdllDefWindowProc_A)
- #56466 Dark souls remastered crashing with winewayland when trying to open "pc settings" in game
- #56790 wine binds dedicatedServer.exe to "lo" adapter
- #56833 Installer of LabOne 24.04 stops with error " ... setup wizard ended prematurely ..."
- #57072 Window is flashing when painting transluent effects
- #57277 Wine 9.19 fails to compile
- #57290 String Substitution not working
- #57325 MS Office 2007 and MS Office 2013 setup fails
- #57334 FL Studio - huge graphical glitch when moving windows inside the app
- #57341 Heidisql 7.0 crashes
- #57370 The Steam systray icon does not respond to mouse clicks.
- #57382 World Of Warcraft no longer start
- #57388 Major perf loss with blocking ReadFile() & OVERLAPPED
- #57391 FSCTL_DISMOUNT_VOLUME does not work on drives with spaces in path
- #57407 Windows Movie Maker hangs in Win7 mode (regression)
- #57423 Active window no longer receives keyboard input after losing and regaining focus (only in virtual desktop)
### Changes since 9.21:
```
Agustin Principe (1):
d2d1: Accept DXGI_FORMAT_R8G8B8A8_UNORM format for WIC targets.
Alexandre Julliard (63):
user32: Add an ANSI version of the desktop window proc.
user32: Add an ANSI version of the icon title window proc.
user32: Add an ANSI version of the menu window proc.
user32: All builtin window procs are now dual A/W.
ntdll/tests: Use the function pointer for NtWow64QueryInformationProcess64.
server: Fix a thread reference leak.
ntdll: Add support for the builtin window procs table.
user32: Use the ntdll definitions for builtin windows procs.
user32: Use the ntdll function table for builtin window procs.
user32: Make the builtin window procs table layout compatible with Windows.
ntdll/tests: Add tests for the builtin window procs table.
user32/tests: Add tests for ntdll builtin window procs.
user32/tests: Remove some obsolete winproc tests.
kernel32/tests: Add some tests for EnumSystemFirmwareTables().
ntdll: Implement BIOS table enumeration.
kernelbase: Implement EnumSystemFirmwareTables().
tools: Download all Unicode data files before generating anything.
nls: Update locale data to CLDR version 46.
mpg123: Import upstream release 1.32.9.
fluidsynth: Import upstream release 2.4.0.
rundll32: Don't bother cleaning up at process exit.
rundll32: Use crt allocation functions.
rundll32: Rewrite command line parsing.
rundll32: Restart itself if the dll is for a different architecture.
ntdll: Always return 0 length on failure in SystemFirmwareTableInformation.
ntdll/tests: Fix a test failure on 64-bit Windows.
server: Print a warning if page size isn't 4k.
server: Move the generated part of request.h to a separate header.
server: Move the generated part of trace.c to a separate header.
server: Simplify updating the protocol version.
server: Use an explicit union instead of a typedef for APC calls.
server: Use an explicit union instead of a typedef for APC results.
server: Use an explicit struct instead of a typedef for user APCs.
server: Use an explicit struct instead of a typedef for async I/O data.
server: Use an explicit union instead of a typedef for message data.
server: Use an explicit union instead of a typedef for hardware input.
server: Use an explicit union instead of a typedef for debug event data.
server: Use an explicit union instead of a typedef for IRP params.
server: Use an explicit union instead of a typedef for select operations.
win32u: Implement NtUserBuildPropList().
win32u: Implement NtUserBuildNameList().
user32: Move PostQuitMessage() implementation to win32u.
user32: Move support for posting a DDE message to win32u.
user32: Don't use server data types in clipboard.c.
win32u: Implement NtUserQueryWindow().
server: Use an explicit struct instead of a typedef for generic access mappings.
server: Use an explicit struct instead of a typedef for process startup info.
server: Use an explicit struct instead of a typedef for PE image info.
server: Use an explicit struct instead of a typedef for window property data.
server: Use an explicit struct instead of a typedef for cursor positions.
win32u: Implement the remaining arguments of NtUserBuildHwndList().
user32: Reimplement the enum window functions using NtUserBuildHwndList().
user32: Reimplement GetDlgItem() using NtUserBuildHwndList().
user32: Reimplement WIN_ListChildren() using NtUserBuildHwndList().
user32: Move GetLastActivePopup() implementation to win32u.
user32: Move GetLastInputInfo() implementation to win32u.
server: Add a new request to find sibling windows by class name.
win32u: Reimplement list_window_children() using NtUserBuildHwndList().
server: Use an explicit union instead of a typedef for TCP connections.
server: Use an explicit union instead of a typedef for UDP endpoints.
server: Use an explicit struct instead of a typedef for object locators.
server: Use an explicit struct instead of a typedef for register contexts.
server: Use an explicit struct instead of a typedef for rectangles.
Alistair Leslie-Hughes (1):
user32: Implement GetDpiAwarenessContextForProcess.
Anton Baskanov (27):
dplayx/tests: Add missing pragma pack directives.
dplayx/tests: Check that groups from SUPERENUMPLAYERSREPLY are added to the session.
dplayx: Add group to the parent group in DP_CreateGroup().
dplayx: Set group data in DP_CreateGroup().
dplayx: Return HRESULT from DP_CreateGroup().
dplayx: Inform the SP about group creation in DP_CreateGroup().
dplayx: Add groups from SUPERENUMPLAYERSREPLY to the session.
dplayx: Respect enumeration flags in EnumGroups().
dplayx: Always set the data size in GetGroupData().
dplayx: Factor out a function for adding player to a group.
dplayx: Add group players from SUPERENUMPLAYERSREPLY to the group.
dplayx/tests: Test client side of AddPlayerToGroup() separately.
dplayx: Queue DPSYS_ADDPLAYERTOGROUP in DP_AddPlayerToGroup().
dplayx: Send ADDPLAYERTOGROUP in AddPlayerToGroup().
dplayx/tests: Test that group data is updated from GROUPDATACHANGED.
dplayx: Enter the critical section when accessing the group list.
dplayx: Handle GROUPDATACHANGED, update the group data and queue DPSYS_SETPLAYERORGROUPDATA.
dplayx: Factor out a function for reading service providers.
dplayx: Convert connection name to UNICODE when enumerating through UNICODE interface.
dplayx/tests: Test UNICODE version of EnumSessions().
dplayx: Convert session name and password to UNICODE when enumerating through UNICODE interface.
dplayx: Forward IDirectPlay3A to IDirectPlay4A.
dplayx: Cache connections.
dplayx: Read connection name from descriptionW and descriptionA when available.
dplayx: Use DP_GetRegValueW() to read SP GUID.
dplayx: Reimplement DirectPlayEnumerateAW() using DP_GetConnections().
dplayx: Reimplement DP_LoadSP() using DP_GetConnections().
Aurimas Fišeras (1):
po: Update Lithuanian translation.
Bernhard Übelacker (4):
msvcrt: Do not create a separate heap in newer msvcrt versions.
kernel32/tests: Remove todo_wine from now succeeding heap test.
include: Add ucrt _sprintf_l declaration.
wineps.drv: Use locale aware variants _sprintf_l and _sscanf_l (ASan).
Billy Laws (1):
msi: Also set x64 properties for arm64 hosts.
Biswapriyo Nath (1):
include: Add UI Automation Annotation Type ID definitions.
Brendan McGrath (2):
mf: Retry PROCESSINPUTNOTIFY if TRANSFORM_TYPE_NOT_SET is returned.
mf: Send MEError when IMFStreamSink_ProcessSample fails.
Brendan Shanks (1):
Add .gitattributes file to mark generated files.
Charlotte Pabst (2):
jscript: Handle star and opt operators while matching global regex properly.
jscript/tests: Add tests for star and opt operators in global regex.
Connor McAdams (6):
d3dx9/tests: Include ddraw.h in surface.c for DDS header flag definitions.
d3dx9: Don't attempt to save palettized surfaces in D3DXSaveSurfaceToFileInMemory().
d3dx9/tests: Add more tests for saving surfaces as DDS files.
d3dx9: Improve save_dds_surface_to_memory().
d3dx9: Set the DDSCAPS_ALPHA flag when saving DDS files with a pixel format containing an alpha channel.
d3dx9: Add support for saving paletted surfaces to DDS files.
Daniel Lehman (2):
kernel32/tests: Add some tests for Thai and Mongolian codes.
nls: Set alpha bit on some Thai and Mongolian codes.
Elias Norberg (4):
wintrust: Implement CryptCATAdminAcquireContext2().
wintrust/tests: Add CryptCATAdminAcquireContext2() tests.
wintrust: Implement CryptCATAdminCalcHashFromFileHandle2().
wintrust/tests: Add CryptCATAdminCalcHashFromFileHandle2() tests.
Elizabeth Figura (17):
winevulkan: Use extend() instead of passing two separate roots to functions.
winevulkan: Use the correct logger method.
wined3d: Do not clamp fog in the VS.
wined3d: Calculate the texture matrix solely from the vertex declaration.
wined3d: Rewrite the comment in compute_texture_matrix().
wined3d: Clear caps to zero in shader caps query functions.
wined3d: Initialize max_blend_stages in the SPIRV fragment pipe.
wined3d: Move shader_trace().
wined3d: Move shader parsing to shader_set_function().
wined3d: Create stub FFP pixel shaders.
wined3d: Create stub FFP vertex shaders.
wined3d: Account for HLSL FFP shaders in find_ps_compile_args().
wined3d: Allow using the HLSL FFP replacement with GL.
wined3d: Use the FFP HLSL pipeline for pretransformed draws as well.
wined3d: Beginnings of an HLSL FFP vertex shader implementation.
include: Add dxvahd.idl.
dxva2: Stub DXVAHD_CreateDevice().
Eric Pouech (17):
kernel32/tests: Don't hardcode page size in buffer size.
advapi32/tests: Fix typo in manifest constant.
advapi32: Test some other cases of process access rights mapping.
server: Amend process rights mapping.
cmd/tests: Add tests about substring substitution in variable expansion.
cmd: Fix substring substitution in variable expansion.
cmd: Implement 'touch' equivalent in COPY builtin.
cmd/tests: Add test about IF EXIST.
cmd: Modifiers in tilde variable expansion are case insensitive.
cmd: Fix 'IF EXIST DIRECTORY' test condition evaluation.
dbghelp: Don't try to load PDB for a RSDS debug directory in .buildid section.
dbghelp: Only WARN on stripped PE images.
dbghelp/tests: Improve SymSrvGetFileIndexInfo tests.
dbghelp: Fill-in data in SymSrvGetFileIndexIndo if BAD_EXE_FORMAT.
dbghelp/tests: Add retry wrapper around SymRefreshModuleList().
dbghelp/tests: Add tests for SymRefreshModuleList().
dbghelp: Implement SymRefreshModuleList().
Etaash Mathamsetty (1):
explorer: Enable the Wayland driver.
Fabian Maurer (9):
net/tests: Add test for stopping non existing service.
net: Correct error code for stopping non existing service.
msi/tests: Add more tests for MsiSummaryInfoPersist.
msi: Make MsiGetSummaryInformationW open database as direct instead of transacted.
ieframe: Add IERefreshElevationPolicy stub.
comctl32/listbox: Close a few leaked window handles.
comctl32/combo: Add tests for keypresses showing search functionality.
comctl32/listbox: Add tests for keypresses showing search functionality.
msxml3: Undo removal of xmlThrDefTreeIndentString.
Floris Renaud (1):
po: Update Dutch translation.
Gabriel Ivăncescu (18):
mshtml: Reset builtin function props to their default values when deleted.
mshtml: Throw invalid action for IE8 window prop deletion.
jscript: Add basic semi-stub implementation of GetMemberProperties.
mshtml: Use BSTR to store global prop's name.
mshtml: Override window's element prop directly rather than using GLOBAL_DISPEXVAR.
mshtml: Check if window global prop still exists before returning its id.
mshtml: Forward deletion for GLOBAL_SCRIPTVAR to the script's object.
jscript: Delete external props before redefining them.
jscript: Make most builtin global objects configurable.
mshtml: Use actual referenced prop flags for window script props.
mshtml: Don't use cycle collection for nsChannel.
mshtml: Enumerate all own builtin props from host object's NextProperty.
mshtml/tests: Add initial tests for prototype chain props.
mshtml: Expose ownerDocument from NodePrototype.
mshtml: Don't expose removeNode from NodePrototype.
mshtml: Don't expose replaceNode from NodePrototype.
mshtml: Don't expose swapNode from NodePrototype.
mshtml: Set the name of the non-function constructors to the same as the object.
Georg Lehmann (1):
winevulkan: Update to VK spec version 1.3.302.
Gerald Pfeifer (3):
dpwsockx: Don't use true as a variable name.
msi: Don't use bool as a variable name.
jscript: Don't use bool as a variable name.
Hans Leidekker (3):
wininet: Accept UTC as the equivalent of GMT.
wininet: Use InternetTimeToSystemTimeW() to convert header values.
iphlpapi: Sort adapters by route metric in GetAdaptersAddresses().
Haoyang Chen (5):
winhttp/tests: Add some tests for WinHttpRequestOption_SslErrorIgnoreFlags in IWinHttpRequest_{put,get}_Option.
winhttp: Add support WinHttpRequestOption_SslErrorIgnoreFlags in IWinHttpRequest_put_Option.
winhttp: Add support WinHttpRequestOption_SslErrorIgnoreFlags in IWinHttpRequest_get_Option.
winex11: Fix URL encoding for non-ASCII characters.
wined3d: Fix a memory leak.
Jacek Caban (6):
configure: Use -ffunction-sections for PE targets.
winegcc: Pass -fms-hotpatch to the linker.
configure: Use -fms-hotpatch when available.
configure: Preserve original CFLAGS when adding LLVM flags.
ntdll: Use proper format string for ULONG type.
windowscodecs/tests: Always use a format string in winetest_push_context calls.
Jinoh Kang (2):
server: Don't crash when opening null path with a console handle as RootDirectory.
server: Don't crash when opening null path with a console server as RootDirectory.
John Chadwick (2):
wintab32: Align WTPACKET for 32/64-bit archs.
winex11: Remove stub tablet_get_packet wow64 thunk.
Marc-Aurel Zent (5):
winemac.drv: Allow symbol vkeys to match on Mac virtual key codes.
winemac.drv: Add Mac virtual key code information to the German layout.
winemac.drv: Add additional French symbol vkeys mappings.
include: Add Japanese IME virtual key codes to kbd.h.
winex11: Include kbd.h instead of ime.h.
Matteo Bruni (1):
wined3d: Allow reusing current GL context without a current RT.
Michael Müller (2):
ntdll: Implement HashLinks field in LDR module data.
ntdll: Use HashLinks when searching for a dll using the basename.
Mohamad Al-Jaf (3):
icmui: Add stub dll.
icmui: Add SetupColorMatchingW() stub.
icmui/tests: Add some SetupColorMatchingW() tests.
Nikolay Sivov (4):
dwrite/layout: Skip to the next typography range when current one has no features.
comctl32/listview: Initialize hot cursor handle.
comctl32/listview: Send LVN_HOTTRACK in response to mouse moves.
d2d1/tests: Add some tests for WIC target formats.
Paul Gofman (4):
kernel32/tests: Factor out is_old_loader_struct().
kernel32/tests: Add tests for module hash links.
server: Don't update cursor pos in set_window_pos() if window wasn't moved.
opengl: Avoid infinite recursion in bezier_approximate() in case of degraded curve.
Piotr Caban (2):
services: Sort services start order by start type.
wine.inf: Set MountMgr service start option to SERVICE_BOOT_START.
Pétur Runólfsson (1):
wtsapi32: Handle WTSSessionInfo class in WTSQuerySessionInformationW().
Rémi Bernon (63):
d3d9/tests: Avoid creating visible windows concurrently.
d3d9/tests: Use static class for the dummy window.
d3d8/tests: Avoid creating visible windows concurrently.
d3d8/tests: Use static class for the dummy window.
wined3d: Cast format_id when comparing it to the last format index.
winewayland: Fix surface scaling with HiDPI compositor.
win32u: Offset the new display modes relative to the primary source.
server: Use the monitor infos to map points from raw to virt.
win32u: Compute monitors raw DPI from the physical / current mode ratio.
win32u: Introduce a new registry setting to emulate modesetting.
desk.cpl: Expose the modesetting emulation registry setting.
winex11: Avoid requesting unnecessary _NET_WM_STATE changes.
winex11: Avoid requesting unnecessary window config changes.
winex11: Avoid updating _NET_WM_STATE on iconic windows.
winex11: Simplify the control flow in WM_STATE handlers.
winex11: Simplify the control flow in ConfigureNotify handlers.
winex11: Reset embedded window position to 0x0 before docking it.
winex11: Reset the window relative position when it gets reparented.
winex11: Introduce a new host_window_send_configure_events helper.
winex11: Retrieve the HWND for the host window's child window.
winex11: Avoid overriding previously received ConfigureNotify events.
winex11: Generate ConfigureNotify events for the children tree.
winex11: Always generate ConfigureNotify events for embedded windows.
winex11: Ignore focus changes during WM_STATE transitions.
winex11: Use the new window state tracker to get _NET_WM_STATE value.
winex11: Use the new window state tracker to get WM_STATE value.
winex11: Introduce a new window_update_client_state helper.
winex11: Introduce a new window_update_client_config helper.
winebus: Always return success from PID effect control.
winebus: Enable all PID effect types for wheel devices.
winebus: Build HID report descriptors on device creation.
winebus: Lookup device HID usage and usage page on the PE side.
winebus: Count HID buttons and pass it to is_hidraw_enabled.
winebus: Enable hidraw by default for various HOTAS controllers.
dinput: Assume that clipping the cursor uses the requested rectangle.
dinput: Only call SetCursorPos if ClipCursor fails.
winex11: Listen to PropertyNotify events on the virtual desktop window.
winex11: Don't expect WM_STATE events on override-redirect windows.
winex11: Wait for pending _NET_WM_STATE before updating the client state.
winex11: Wait for pending ConfigureNotify before updating the client state.
winex11: Update the window client config on window state changes.
winex11: Request window state updates asynchronously.
d3d9/tests: Flush events after minimizing and restoring focus window.
evr: Use D3DCREATE_MULTITHREADED device creation flag.
winex11: Use the state tracker to decide if changes can be made directly.
winex11: Update other window state properties within window_set_wm_state.
winex11: Call window_set_wm_state when unmapping embedded windows.
winex11: Get rid of the now unnecessary iconic field.
winex11: Get rid of the now unnecessary mapped field.
kernel32/tests: Check for the _SW_INVALID bit presence only.
gitlab: Wait for the fvwm process to start.
win32u: Check if parent is the desktop window in get_win_monitor_dpi.
win32u: Map cursor pos to raw DPI before calling drivers SysCommand.
secur32/tests: Update the tests to expect HTTP/2 headers.
urlmon/tests: Expect "Upgrade, Keep-Alive" connection string.
wininet: Parse multi-token Connection strings for Keep-Alive.
winex11: Introduce a new get_window_state_updates helper.
winex11: Generate GravityNotify events instead of ConfigureNotify.
winex11: Avoid sending WM_WINDOWPOSCHANGING when applying window manager config.
winex11: Delay window config request when restoring from fullscreen/maximized.
user32/tests: Workaround a FVWM maximized window state bug.
winex11: Update the Win32 window state outside of event handlers.
winex11: Remove now unnecessary WindowPosChanged re-entry guards.
Vibhav Pant (5):
setupapi: Add stub for SetupDiGetDevicePropertyKeys.
setupapi/tests: Add tests for SetupDiGetDevicePropertyKeys.
setupapi: Implement SetupDiGetDevicePropertyKeys.
threadpoolwinrt: Fix potential NULL dereference in QueryInterface for IAsyncAction.
threadpoolwinrt: Associate work items with the appropriate callback environment.
Vitor Ramos (2):
include: Add cpp header guard to the pathcch.h.
include: Use enum for PATHCCH_ options.
Yuxuan Shui (1):
dinput: Keep the module around while input thread is running.
Zhiyi Zhang (14):
urlmon: Support Uri_HOST_IDN.
urlmon: Support Uri_DISPLAY_NO_FRAGMENT.
urlmon: Support Uri_PUNYCODE_IDN_HOST.
urlmon: Support Uri_DISPLAY_IDN_HOST.
urlmon/tests: Test flags for getting properties.
ntdll/tests: Add NtSetIoCompletionEx() tests.
ntdll: Implement NtSetIoCompletionEx().
wintypes: Implement RoParseTypeName().
wintypes/tests: Add RoParseTypeName() tests.
win32u: Print the correct index when source_enum_display_settings() fails.
ntdll/tests: Remove a workaround for older systems.
ntdll/tests: Add more NtSetInformationFile() tests.
server: Set overlapped fd to signaled after setting completion information.
kernel32: Add GetCurrentPackageInfo() stub.
Ziqing Hui (6):
propsys: Add PropVariantToBSTR stub.
propsys/tests: Test PropVariantToBSTR.
propsys/tests: Test truncating for PropVariantToString.
propsys: Implement PropVariantToBSTR.
propsys: Use debugstr_variant for the trace in VariantToPropVariant.
propsys: Support converting to BSTR for PropVariantToVariant.
```
The Wine development release 9.21 is now available.
What's new in this release:
- More support for network sessions in DirectPlay.
- Header fixes for C++ compilation.
- I/O completion fixes.
- More formats supported in D3DX9.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.21.tar.xz>
Binary packages for various distributions will be available
from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people.
See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.21/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.21 (total 16):
- #27933 Implement sort.exe command
- #47776 Multiple games crash on unimplemented function D3DXOptimizeVertices (Timeshift, Call of Duty 2 modding tools, Rise of Nations: Rise of Legends 2010)
- #48235 Multiple applications need 'ntdll.NtWow64QueryInformationProcess64' (IP Camera Viewer 4.x)
- #48796 Saints Row 2 needs GUID_WICPixelFormat48bppRGB
- #52078 MusicBee: exception when attempting to drag tabs ( (QueryInterface for the interface with IID '{83E07D0D-0C5F-4163-BF1A-60B274051E40}' gives Exception E_NOINTERFACE))
- #54295 Touhou Puppet Dance Performance: Shard of Dreams Can't Locate Base Game Data After Installation
- #54623 MediRoutes crashes on unimplemented function websocket.dll.WebSocketCreateClientHandle
- #56219 Paint Shop Pro 9.01, printing function doesn't work
- #57164 Can't start RtlpWaitForCriticalSection
- #57183 9.17-devel: Drag and Drop no longer works on Ubuntu 24.04 Noble
- #57275 Black screen when using full-screen mode from version 9.18
- #57292 unimplemented function apphelp.dll.SdbSetPermLayerKeys
- #57296 WineHQ-devel-9.19: Renders Distorted Radio Buttons on WinXP Solitaire
- #57314 Metal Gear Solid V gametrainer needs wmi Win32_Process executablepath property
- #57355 Window-resize won't refresh controls on mainform
- #57392 AnyRail msi crashes
### Changes since 9.20:
```
Alex Henrie (2):
ntdll: Implement NtWow64QueryInformationProcess64.
include: Annotate PFN_CMSG_ALLOC with __WINE_ALLOC_SIZE.
Alexandre Julliard (22):
winetest: Remove strmake() len argument for consistency with other modules.
winetest: Get default tag and URL from Gitlab CI variables.
capstone: Allow callers to specify their memory allocators.
capstone: Comment out error printfs.
opengl32: Cache downloaded files in make_opengl.
opencl: Cache downloaded files in make_opencl.
winevulkan: Cache downloaded files in make_vulkan.
include: Use __attribute__ in preference to __declspec.
wow64: Fix handle conversion in NtWow64QueryInformationProcess64.
wow64: Move NtWow64QueryInformationProcess64 to process.c.
user32: Add some new entry points and ordinals.
gdi32: Add some new entry points and ordinals.
win32u: Add some new stub entry points.
ntdll/tests: Skip the syscall relocation test if the file on disk is not updated.
kernel32/tests: Search the current directory for newly-created dlls.
netstat: Use wide character string literals.
notepad: Use wide character string literals.
oleview: Use wide character string literals.
services: Use wide character string literals.
taskmgr: Use wide character string literals.
winefile: Use wide character string literals.
wordpad: Use wide character string literals.
Alexey Prokhin (1):
kernelbase: Set the proper error code in GetQueuedCompletionStatus{Ex} when the handle is closed.
Alistair Leslie-Hughes (11):
include: Add rstscr.idl.
include: Add rstxsc.idl.
include: Add rstfnd.idl.
include: Add rstidn.idl.
include: Add DBGUID_DBSQL define.
include: Add DB_S_ROWLIMITEXCEEDED define.
include: Dbs.idl: Added DBVECTOR/DB_VARNUMERIC types.
include: Move ISAXXMLFilter interface to after base ISAXXMLReader.
dplayx: Use a single reference count for IDirectPlay interfaces.
dplayx: Remove numIfaces variable in IDirectPlayLobby.
dplayx: Use default DllCanUnloadNow implementation.
Anton Baskanov (31):
dplayx: Inline logic from CreatePlayer() functions into DP_IF_CreatePlayer().
dplayx: Allow storing group SP data.
dpwsockx: Get player address from SP header and use it in SendEx().
dpwsockx: Add partial SendToGroupEx() implementation.
dplayx: Send CREATEPLAYER instead of ADDFORWARDREQUEST in CreatePlayer().
dplayx: Queue DPSYS_CREATEPLAYERORGROUP on player creation.
dplayx: Remove received message from the queue.
dplayx: Set message sender and receiver IDs in Receive().
dplayx: Make a deep copy of the message.
dplayx: Set message data size in Receive().
dplayx: Set flags correctly in CreatePlayer().
dplayx: Always set the data size in GetPlayerData().
dplayx/tests: Test that player from CREATEPLAYER is added to the session.
dplay: Handle CREATEPLAYER and add player to the session.
dplayx/tests: Use the correct system player ID in sendSuperEnumPlayersReply().
dplayx/tests: Test client side of Send() separately.
dplayx: Queue the message for local players in SendEx().
dplayx: Remove the separate branch for DPID_ALLPLAYERS in SendEx().
dplayx: Send the message in SendEx().
dplayx/tests: Test client side of Receive() separately.
dplayx: Handle game messages.
dplayx: Check the buffer size in Receive().
dplayx: Return DPERR_BUFFERTOOSMALL from Receive() if data is NULL.
dplayx: Handle DPRECEIVE_TOPLAYER and DPRECEIVE_FROMPLAYER in Receive().
dplayx: Enter the critical section in DP_IF_Receive().
dplayx/tests: Test non-guaranteed Send().
dpwsockx: Support non-guaranteed delivery.
dplayx/tests: Test receiving UDP messages.
dpwsockx: Receive UDP messages.
dplayx/tests: Test that PINGREPLY is sent in reply to PING.
dplayx: Handle PING and send PINGREPLY.
Aurimas Fišeras (1):
po: Update Lithuanian translation.
Bartosz Kosiorek (2):
gdiplus: Add GdipGetEffectParameterSize stub and fix GdipDeleteEffect.
gdiplus/tests: Add GdipGetEffectParameterSize test.
Biswapriyo Nath (2):
include: Add new property keys in propkey.h.
include: Add windows.applicationmodel.datatransfer.idl.
Brendan Shanks (2):
ntdll/tests: Add test for direct syscalls on x86_64.
ntdll: Add SIGSYS handler to support syscall emulation on macOS Sonoma and later.
Christian Costa (1):
d3dx9: Add semi-stub for D3DXOptimizeVertices().
Connor McAdams (10):
d3dx9: Introduce d3dx_pixel_format_id enumeration.
d3dx9: Use the d3dx_pixel_format_id enumeration inside of the d3dx_image structure.
d3dx9: Use the d3dx_pixel_format_id enumeration inside of the DDS pixel format lookup structure.
d3dx9: Use the d3dx_pixel_format_id enumeration inside of the WIC pixel format lookup structure.
d3dx9/tests: Add more tests for handling JPG/PNG files.
d3dx9: Report 24bpp RGB as 32bpp XRGB for JPG and PNG files.
d3dx9: Add support for decoding 64bpp RGBA PNG files.
d3dx9: Add support for decoding 48bpp RGB PNG files.
d3dx9: Add support for loading surfaces from 48bpp RGB PNG files.
d3dx9: Add support for loading volumes from 48bpp RGB PNG files.
Elizabeth Figura (7):
win32u: Normalize inverted rectangles in dibdrv_RoundRect().
win32u: Correctly handle transforms which flip in get_arc_points().
win32u: Do not convert back to integer before finding intersections.
win32u: Forward to Rectangle() if the ellipse width or height is zero.
wmilib.sys: Add stub DLL.
ntoskrnl: Stub PoRequestPowerIrp().
ntdll: Do not queue completion for a synchronous file.
Eric Pouech (2):
midiseq: Reduce race window when closing sequencer.
kernelbase: Add undocumented EXTENDED_FLAGS to process attribute list.
Fabian Maurer (13):
comdlg32/tests: Fix compilation for gcc 4.7.
mf/tests: Fix compilation for gcc 4.7.
wbemprox/tests: Add test for Win32_Process querying "ExecutablePath" propery.
wbemprox: Add property "ExecutablePath" to Win32_Process.
userenv/tests: Add another test for GetProfilesDirectoryA.
ntdll/tests: Add more tests for RtlExpandEnvironmentStrings/_U.
kernel32/tests: Add tests for ExpandEnvironmentStringsW.
kernel32/tests: Add more tests for ExpandEnvironmentStringsA.
kernel32/tests: Add ExpandEnvironmentStringsA tests for japanese.
ntdll: Rework RtlExpandEnvironmentStrings/_U to account for corner cases.
kernel32: Rework ExpandEnvironmentStringsW error handling.
kernel32: Rework ExpandEnvironmentStringsA to return ansi size and fix corner cases.
userenv: Fix GetProfilesDirectoryA return value.
Hans Leidekker (2):
fc: Support /c option.
wintypes/tests: Add tests for RoResolveNamespace().
Jacek Caban (2):
winecrt0: Use version 2 of CHPE metadata.
winegcc: Skip --no-default-config in find_libgcc.
Jactry Zeng (11):
msvcrt/tests: Test tolower() with DBCS.
msvcrt: Improve DBCS support for _tolower_l().
msvcrt/tests: Test _tolower_l() with DBCS.
msvcrt: Correct the result of non-ASCII characters for _strnicmp_l().
msvcrt/tests: Test _stricmp() with multiple bytes characters.
include: Add _strnicmp_l() declaration.
msvcrt/tests: Add tests of _strnicmp_l().
msvcrt/tests: Test toupper() with DBCS.
msvcrt: Improve DBCS support for _toupper_l().
msvcrt/tests: Add tests for locale information.
msvcrt: Try to generate CTYPE data according to the given codepage.
Jinoh Kang (2):
server: Allow creating named pipes using \Device\NamedPipe\ as RootDirectory.
server: Implement more FSCTLs on \Device\NamedPipe and \Device\NamedPipe\.
Matteo Bruni (2):
d3dx9/tests: Disable test sometimes crashing on Windows.
winegstreamer: Split large WMA samples.
Maxim Karasev (1):
klist: Migrate to KerbQueryTicketCacheExMessage.
Michael Lelli (1):
ntdll: Use __wine_unix_spawnvp() to invoke unmount command.
Paul Gofman (7):
ntdll: Introduce a separate per-thread object for internal completion waits.
ntdll: Assign completion to thread when wait for completion is satisfied.
ntdll: Handle user APCs explicitly in NtRemoveIoCompletionEx().
server: Signal completion port waits on handle close.
ntdll/tests: Add tests for completion port signaling.
server: Sync cursor position on window position change.
mountmgr.sys: Stub StorageDeviceSeekPenaltyProperty query.
Piotr Caban (1):
kernelbase: Support backslashes when parsing relative URL in UrlCombine.
Rémi Bernon (59):
win32u: Do not adjust old valid rect when moving child window bits.
winex11: Introduce a new struct host_window for host-only windows.
winex11: Create host windows recursively up to root_window.
winex11: Keep track of the host window children of interest.
winex11: Keep track of the host windows relative rects.
winex11: Keep track of the host windows children window rects.
winex11: Use the new host windows to register foreign window events.
winex11: Generate relative ConfigureNotify on parent ConfigureNotify events.
winex11: Get rid of the now unnecessary foreign windows.
windows.gaming.input: Invoke event handlers outside of the critical section.
windows.devices.enumeration: Invoke event handlers outside of the critical section.
windows.media.speech: Invoke event handlers outside of the critical section.
winex11: Avoid processing RRNotify events in xrandr14_get_id.
winemac: Merge DND structures and rename constants / functions.
winemac: Introduce a new QUERY_DRAG_DROP_ENTER query.
winemac: Use the new win32u drag'n'drop interface.
winex11: Set configure_serial when resizing on display mode change.
winex11: Rename read_net_wm_state to get_window_net_wm_state.
winex11: Move ConfigureNotify checks after computing visible rect.
winex11: Move embedded check in update_net_wm_states / sync_window_style.
winex11: Register PropertyChangeMask for unmanaged windows.
win32u: Clear display device before refreshing the registry cache.
win32u: Allocate device manager context gpu dynamically.
win32u: Keep the source registry key on the source struct.
win32u: Allocate device manager context source dynamically.
win32u: Allocate device manager context monitors dynamically.
winex11: Track WM_STATE window property requests and updates.
winex11: Track _XEMBED_INFO window property changes.
winex11: Introduce a new window_set_wm_state helper.
winex11: Introduce a new window_set_net_wm_state helper.
winex11: Track _NET_WM_STATE window property requests and updates.
winex11: Introduce a new window_set_config helper.
winex11: Track window config requests and updates.
win32u: Introduce a NTGDI_RGN_MONITOR_DPI flag for NtGdiGetRandomRgn.
winex11: Compute absolute rect using the window data window rects.
winex11: Use the toplevel window drawable to create DCs.
winex11: Remove now unused child_window_from_point helper.
win32u: Compute the owner window hint on behalf of the drivers.
include: Add __pctype_func declaration.
include: Add some localized ctype.h function declarations.
include: Add some struct timespec definitions.
include: Add some ___mb_cur_max_func declarations.
include: Add some __sys_nerr declaration.
include: Fix _strtod_l/strtold/_strtold_l declarations.
include: Remove non-existing _atold definition.
include: Add math.h _(l|f)dtest function declarations.
include: Add wcscat_s C++ wrapper definitions.
include: Add abs C++ wrapper definitions.
include: Add atan2l inline definition.
include: Add max_align_t definition.
include: Add CaptureStackBackTrace macro definition.
include: Add SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE flag.
include: Fix IMAGE_IMPORT_BY_NAME declaration.
win32u: Implement get_win_monitor_dpi.
win32u: Use MDT_RAW_DPI monitor DPI type in the drivers.
win32u: Move some monitor info getter code around.
win32u: Inform wineserver about the winstation monitors.
server: Use the monitor infos to compute the virtual screen rect.
winex11: Skip faking ConfigureNotify if state/config change is expected.
Sebastian Krzyszkowiak (1):
mciseq: Don't seek to the end of the root chunk in RMID files.
Semenov Herman (Семенов Герман) (1):
ole32: Fixed copy paste error with OFFSET_PS_MTIMEHIGH in UpdateRawDirEntry.
Vijay Kiran Kamuju (11):
gdiplus: Add GdipCreateEffect implementation.
gdiplus: Partial implementation of GdipGetEffectParameterSize.
apphelp: Add stub SdbSetPermLayerKeys().
apphelp: Add stub SdbGetPermLayerKeys().
apphelp: Add stub SetPermLayerState().
include: Add missing defines and enums for IDragSourceHelper2.
websocket: Add stub for WebCreateClientHandle.
websocket: Add stub for WebSocketAbortHandle.
websocket: Add stub for WebSocketDeleteHandle.
taskschd: Implement IDailyTrigger_put_EndBoundary.
taskschd: Implement IDailyTrigger_get_EndBoundary.
Zhiyi Zhang (30):
include: Add Windows.Foundation.PropertyValue runtime class.
wintypes: Use DEFINE_IINSPECTABLE.
wintypes: Add IPropertyValueStatics stub.
wintypes: Support IPropertyValue primitive objects.
wintypes: Support IPropertyValue primitive array objects.
wintypes: Implement IReference<boolean>.
wintypes: Implement IReference<HSTRING>.
wintypes: Implement IReference<DOUBLE>.
wintypes: Add IPropertyValueStatics tests.
include: Add windows.applicationmodel.datatransfer.dragdrop.idl.
include: Add windows.applicationmodel.datatransfer.dragdrop.core.idl.
include: Add dragdropinterop.idl.
dataexchange: Add initial dll.
dataexchange: Add ICoreDragDropManagerStatics stub.
dataexchange: Add IDragDropManagerInterop stub.
dataexchange: Implement dragdrop_manager_interop_GetForWindow().
dataexchange/tests: Add ICoreDragDropManagerStatics tests.
dataexchange/tests: Add ICoreDragDropManager tests.
dataexchange: Make core_dragdrop_manager_add_TargetRequested() return S_OK.
iertutil: Add IUriRuntimeClassFactory stub.
iertutil: Implement uri_factory_CreateUri().
iertutil: Implement uri_RawUri().
iertutil: Add uri_AbsoluteUri() semi-stub.
iertutil/tests: Add IUriRuntimeClassFactory tests.
iertutil/tests: Add IUriRuntimeClass tests.
user32: Add EnableMouseInPointerForThread() stub.
user32: Add RegisterTouchPadCapable() stub.
include: Add IAgileReference and INoMarshal.
combase: Implement RoGetAgileReference().
combase/tests: Add RoGetAgileReference() tests.
```
The Wine development release 9.20 is now available.
What's new in this release:
- Bundled Capstone library for disassembly in WineDbg.
- More formats supported in D3DX9.
- Static analysis and JUnit test reports in Gitlab CI.
- More support for network sessions in DirectPlay.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.20.tar.xz>
Binary packages for various distributions will be available
from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people.
See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.20/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.20 (total 15):
- #39848 Victoria 2 (Steam) fails to start with Wine-Mono
- #50850 Just Cause crashes when starting new game (D3DXCreateTexture unsupported format, fallback format crashes)
- #56372 musl based exp2() gives very inaccurate results on i686
- #56645 unimplemented function httpapi.dll.HttpSendResponseEntityBody
- #56973 Building wine with mingw/gcc 14.1.1 fails with error '-Wimplicit-function-declaration'
- #57233 Multiple games show black screen/window on startup (BeamNG.drive, Wargaming.net games)
- #57245 Can't recognize executables/scripts with a dot in the name...
- #57250 Rhinoceros installers crash with bad_alloc
- #57269 wine-9.19 build with ffmpeg fails in winedmo in Ubuntu 20.04
- #57271 `winetricks -q art2kmin` shows several popups -- Unable to load dll
- #57293 Helicon Focus 8.2.0 regression: open images hangs the application
- #57294 Wine 9.13+ freezes in some applications using WMA Lossless audio
- #57300 KnightOfKnights crashes once entering the game
- #57302 In Notepad++ find window gets glitched after losing and regaining focus
- #57311 Nikon NX Studio Overlay windows incorrectly shown.
### Changes since 9.19:
```
Aida Jonikienė (1):
winex11: Properly handle minimized windows in update_net_wm_fullscreen_monitors().
Alex Henrie (2):
winebus: Allow any free device index to be reused immediately.
explorer: Support the NoDesktop registry setting.
Alexandre Julliard (21):
gitlab: Add support for static analysis using Clang.
gitlab: Add a daily sast build.
gitlab: Add a daily mac build.
faudio: Import upstream release 24.10.
mpg123: Import upstream release 1.32.7.
png: Import upstream release 1.6.44.
tiff: Import upstream release 4.7.0.
ldap: Import upstream release 2.5.18.
fluidsynth: Import upstream release 2.3.6.
xslt: Import upstream release 1.1.42.
libs: Import the Capstone library version 5.0.3.
winedbg: Switch to the Capstone disassembler.
libs: Remove the no longer used Zydis library.
widl: Use plain inline instead of defining a macro.
include: Remove custom stdcall/cdecl definition for ARM platforms.
include: Assume that nameless unions/structs are supported.
include: Stop using WINAPIV in msvcrt headers.
xml2: Import upstream release 2.12.8.
makefiles: Use llvm-strip in MSVC mode.
tools: Update the install-sh script.
wow64: Add missing ThreadIdealProcessorEx class.
Alistair Leslie-Hughes (1):
dplayx/tests: Correct Enum tests.
Anton Baskanov (27):
dplayx: Use DP_CreatePlayer() in DP_SecureOpen().
dplayx: Free the old session desc in DP_SecureOpen().
dplayx: Free resources on error paths in DP_SecureOpen().
dplayx: Send password in player creation forward request.
dplayx: Check REQUESTPLAYERREPLY size before access.
dplayx: Free message header on error path in DP_MSG_SendRequestPlayerId().
dplayx: Use the documented reply layout in DP_MSG_SendRequestPlayerId().
dplayx: Check reply result in DP_MSG_SendRequestPlayerId().
dplayx/tests: Test receiving REQUESTPLAYERREPLY with error result.
dplayx: Handle ADDFORWARDREPLY and return error.
dplayx/tests: Test receiving ADDFORWARDREPLY.
dplayx/tests: Wait for Open() to finish when forward request is not expected.
dplayx/tests: Correctly report lines in check_Open().
dplayx/tests: Send correct port in requests in check_Open().
dplayx: Don't crash on unknown command ids.
dplayx/tests: Test that ADDFORWARDACK is sent in reply to ADDFORWARD.
dplayx: Keep track of the connection status in bConnectionOpen.
dplayx: Enter the critical section when accessing the session desc.
dplayx: Enter the critical section when accessing the player list.
dplayx: Remove const from message body and header parameters of DP_HandleMessage().
dplayx: Handle ADDFORWARD, add player to the session and send ADDFORWARDACK.
dplayx: Prevent multiplication overflow in DP_MSG_ReadSuperPackedPlayer().
dplayx/tests: Use DPENUMPLAYERS_LOCAL and DPENUMPLAYERS_REMOTE to check player flags in checkPlayerList().
dplayx: Respect enumeration flags in EnumPlayers().
dplayx: Return DPERR_INVALIDPARAM from CreatePlayer() if session is not open.
dplayx/tests: Test client side of CreatePlayer() separately.
dplayx: Remove the unused lpMsgHdr parameter from DP_IF_CreatePlayer().
Bernhard Übelacker (1):
msvcrt: Initialize locale data in new threads.
Biswapriyo Nath (7):
include: Add windows.data.xml.dom.idl.
include: Add windows.security.authorization.appcapabilityaccess.idl.
include: Fix base class of ICompositorInterop interface.
include: Add windows.ui.notifications.idl.
include: Add IUISettings4 definition in windows.ui.viewmanagement.idl.
include: Add IUISettings5 definition in windows.ui.viewmanagement.idl.
include: Add IUISettings6 definition in windows.ui.viewmanagement.idl.
Charlotte Pabst (5):
riched20/tests: Test that ScrollWindowEx and GetClientRect are only called when control is in-place active.
riched20: Exit from editor_ensure_visible when control is not in-place active.
riched20: Only call ME_SendRequestResize when control is in-place active.
comdlg32: Fix buffer overflow when current_filter is longer than MAX_PATH.
comdlg32/tests: Add tests for itemdlg filters longer than MAX_PATH.
Connor McAdams (28):
d3dx9: Add pixel_format_desc type checking helper functions.
d3dx9: Rework pixel_format_desc structure format type value.
d3dx9: Always align and mask channel bits in format_to_d3dx_color().
d3dx9: Get rid of la_{to,from}_rgba format callbacks.
d3dx9: Get rid of index_to_rgba callback.
d3dx9: Add support for D3DFMT_X8L8V8U8.
d3dx9: Add support for D3DFMT_A2W10V10U10.
d3dx9: Add support for D3DFMT_A8P8.
d3dx9: Add support for D3DFMT_V16U16.
d3dx9: Add support for D3DFMT_Q16W16V16U16.
d3dx9/tests: Add tests for DDS files containing indexed pixel formats.
d3dx9: Include color palette size when validating the size of DDS files with indexed pixel formats.
d3dx9: Add support for retrieving pixels from DDS files with indexed pixel formats.
d3dx9: Add support for D3DFMT_A8P8 DDS files.
d3dx9/tests: Add more DDS pixel format tests.
d3dx9/tests: Add file size validation tests for DDS files containing packed pixel formats.
d3dx9: Validate the size of DDS files containing packed pixel formats.
d3dx9: Rework conversion to/from D3DFORMAT from/to DDS pixel format.
d3dx9: Add support for more DDS pixel formats.
d3dx9: Do not use WIC to detect image file format.
d3dx9/tests: Add TGA header image info tests.
d3dx9: Use d3dx9 to get image information for targa files.
d3dx9/tests: Remove now unused arguments from check_tga_image_info().
d3dx9/tests: Add more tests for loading targa files.
d3dx9: Add support for loading basic targa images without WIC.
d3dx9: Add support for decoding targa files with different pixel orders in d3dx9.
d3dx9: Add support for decoding targa files with run length encoding in d3dx9.
d3dx9: Add support for decoding targa files with a color map in d3dx9.
Daniel Lehman (4):
msvcp90/tests: Add tests for string length.
msvcp90/tests: Add some tests for num_put on ints.
msvcp90: Exclude sign from count in num_put.
msvcp90/tests: Add tests for int in num_put.
Dmitry Timoshkov (1):
gdiplus: Add support for EmfPlusRecordTypeSetRenderingOrigin record playback.
Elizabeth Figura (6):
wined3d: Move rasterizer state invalidation to wined3d_stateblock_set_render_state().
ddraw: Do not apply the entire stateblock when clearing.
d3d8: Do not apply the stateblock when clearing.
d3d9: Do not apply the stateblock when clearing.
win32u: Allocate the whole max_points for the top_points array.
win32u: Always select the point that's closer to the ellipse.
Eric Pouech (3):
dbghelp: Protect against buffer overflow in traces.
dbghelp: Add a couple of TRACE().
dbghelp: Fix a couple a typos.
Esme Povirk (1):
comctl32: Implement WM_GETOBJECT for buttons.
Gabriel Ivăncescu (7):
jscript: Allow ES5 keywords as identifiers in variable declarations.
jscript: Allow ES5 keywords as identifiers in catch statements.
jscript: Allow ES5 keywords as identifiers in function expressions.
jscript: Allow ES5 keywords as identifiers in function parameter lists.
jscript: Allow ES5 keywords as identifiers in labelled statements.
jscript: Allow ES5 keywords as identifiers in expressions.
mshtml: Make sure disp_invoke is called before locking the document mode.
Hans Leidekker (4):
msiexec: Remove quotes from all filenames.
findstr: Fix codepage passed to WideCharToMultiByte().
ntdll: Add a stub implementation of NtQueryInformationThread(ThreadIdealProcessorEx).
sort: New program.
Haoyang Chen (1):
mlang: Check handle validity in IMLangFontLink_GetFontCodePages.
Martin Storsjö (1):
musl: Fix limiting the float precision in intermediates.
Paul Gofman (15):
wininet: Validate pointers in InternetReadFile().
user32/tests: Add tests for QueryDisplayConfig( QDC_VIRTUAL_MODE_AWARE ).
win32u: Support QDC_VIRTUAL_MODE_AWARE in NtUserGetDisplayConfigBufferSizes().
win32u: Support QDC_VIRTUAL_MODE_AWARE in NtUserQueryDisplayConfig().
ntdll/tests: Add more tests for printf format.
ntdll: Fix passing char argument to pf_handle_string_format().
ntdll: Output unrecognized format symbol in pf_vsnprintf().
ntdll: Make 'l' modifier also affect char wideness.
ntdll: Make 'h' take precedence over 'l' in pf_vsnprintf().
shlwapi: Use printf implementation from ntdll.
windowscodecs: Implement 48bppRGB -> 64bppRGBA conversion.
ddraw/tests: Fix texture interface IID in test_multiple_devices() for ddraw1.
ddraw: Use global handle table in d3d_device2_SwapTextureHandles().
ddraw: Validate handles in d3d_device2_SwapTextureHandles().
ddraw: Update state if d3d_device2_SwapTextureHandles() results in texture change.
Piotr Caban (2):
advapi32: Don't trace password in CreateProcessWithLogonW stub.
conhost: Start input thread for GetNumberOfConsoleInputEvents.
Rémi Bernon (49):
win32u: Use an internal message for XIM IME notifications.
win32u: Add winevulkan/driver entry points to sync surfaces with the host.
winemac: Stop mapping toplevel window rects to parent window.
winemac: Use NtUserSetWindowPos when DPI awareness is unnecessary.
winex11: Use NtUserSetWindowPos when DPI awareness is unnecessary.
winex11: Use XTranslateCoordinates to compute relative coordinates.
win32u: Introduce a new NtUserSetRawWindowPos call for the drivers.
win32u: Pass a rect to SetIMECompositionWindowPos.
win32u: Pass absolute rect to SetIMECompositionRect.
winemac: Use SetIMECompositionRect to keep track of IME position.
win32u: Notify the drivers of destroyed windows on thread detach.
winedmo: Check and guard libavcodec/bsf.h inclusion.
winex11: Move the XDND IDataObject implementation around.
winex11: Cleanup XDND IDataObject methods and variables.
winex11: Use the IDataObject interface to check for CF_HDROP format.
winex11: Cleanup variable names in X11DRV_XDND_SendDropFiles.
winex11: Use IDataObject to get CF_HDROP format for WM_DROPFILES.
winex11: Allocate the XDND data object dynamically.
winex11: Pass window_rects structs parameters to move_window_bits.
win32u: Copy the entire window rect when the whole window is moved.
win32u: Adjust the valid rects to handle visible rect changes.
winex11: Only enter the CS to get a reference on the data object.
winex11: Assume that PostMessageW WM_DROPFILES succeeds.
winex11: Get rid of X11DRV_XDND_SendDropFiles helper.
winex11: Clear the XDND data object on drop event.
winex11: Use a custom IEnumFORMATETC interface implementation.
winex11: Get rid of X11DRV_XDND_HasHDROP helper.
win32u: Use parent-relative coordinates for old window rectangles.
win32u: Avoid crashing when creating a new layered window surface.
winetest: Add printf attributes to strmake.
winetest: Add printf attributes to xprintf.
winetest: Always use a temporary file for test output.
winetest: Pass output file handle to xprintf.
winetest: Introduce some test report helpers.
winetest: Implement JUnit report output mode.
gitlab: Use winetest JUnit output mode.
winex11: Keep the target window on the data object.
winex11: Keep the target window point on the data object.
winex11: Keep the target effect on the data object.
winex11: Keep the IDropTarget pointer instead of HWND/accepted.
winex11: Keep the IDropTarget pointer on the data object.
winegstreamer: Use wmaversion = 4 for MFAudioFormat_WMAudio_Lossless.
win32u: Introduce a new NtUserDragDropCall message call.
winex11: Compute DND drop point earlier when dropping files/urls.
winex11: Query the DndSelection property value earlier.
winex11: Lookup for files/urls DND target window in user32.
win32u: Move the PE side DND callbacks to user32.
win32u: Map points from window monitor DPI to thread DPI.
user32/tests: Flush events after test_SetForegroundWindow.
Santino Mazza (2):
gdiplus: Assign box height when bounding box height is larger.
mmdevapi: Fix buffer overflow in pulse_set_sample_rate.
Vibhav Pant (1):
bluetoothapis/tests: Redefine SDP type descriptor constants to compile with older GCC versions.
Zhiyi Zhang (4):
gitlab: Update generated files for static analysis.
ntdll/tests: Add reserve object tests.
ntdll: Implement NtAllocateReserveObject().
ntdll/tests: Add NtAllocateReserveObject() tests.
Ziqing Hui (4):
propsys/tests: Add tests for PropVariantToVariant.
propsys/tests: Test converting clsid to string.
propsys: Support converting clsid to string for PropVariant.
propsys: Initially implement PropVariantToVariant.
```