The Wine development release 9.19 is now available.
What's new in this release:
- Character tables updates to Unicode 16.0.0.
- Better window positioning in the Wayland driver.
- More support for network sessions in DirectPlay.
- Support for plug&play device change notifications.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.19.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.19/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.19 (total 11):
- #41268 Songr 1 installation fails
- #52208 Malus crashes on unimplemented function WS2_32.dll.WSCGetApplicationCategory
- #56875 WordSmith 9.0 shows error message on start
- #56975 Death to Spies: black screen during video playback
- #57079 Quicken WillMaker Plus 2007 requires unimplemented msvcp70.dll.?getline@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@1@AAV21@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z
- #57139 SET changes errorlevel in .bat files
- #57147 exit /B doesn't break for loop
- #57205 FL Studio - ALL RECENT VERSIONS - After Wine 9.17 I cannot drag and drop audio files from file manager into the app, and then file manager crashes
- #57215 cnc-ddraw OpenGL renderer is broken again in 9.18
- #57240 Wine 9.18 - Regression - FL Studio (and probably other apps) don't export correct file formats anymore
- #57242 Quicken WillMaker Plus 2007 requires unimplemented msvcp70.dll.??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z
### Changes since 9.18:
```
Aida Jonikienė (1):
server: Move last_active variable initialization (Valgrind).
Alexandre Julliard (14):
include: Use __readfsdword intrinsic on MSVC.
include: Remove some obsolete MSVC version checks.
widl: Output statements contained inside modules.
gitlab: Add 'build' tag on Linux build jobs.
tools: Upgrade the config.guess/config.sub scripts.
server: Match formatting of the English manpage.
programs: Formatting tweaks in the man pages.
tools: Formatting tweaks in the man pages.
loader: Formatting tweaks in the man pages.
kernel32/tests: Use a different invalid character since u1806 is now valid.
gitlab: Remove make -j options.
documentation: Update URLs to point to the Gitlab Wiki.
appwiz.cpl: Update URLs to point to the Gitlab Wiki.
winedbg: Update URLs to point to the Gitlab Wiki.
Andrew Nguyen (2):
wininet: Add additional tests for handling of user agent configuration in requests.
wininet: Only include non-empty session user agent string in request headers.
Anton Baskanov (36):
dplayx/tests: Test client-side of Open() separately.
dplayx: Check session desc size first in DP_SecureOpen().
dplayx: Return DPERR_NOSESSIONS from DP_SecureOpen() when there are no sessions.
dpwsockx: Store name server address in Open().
dpwsockx: Start listening for incoming TCP connections in Open().
dplayx: Unlink and clean up the reply struct on error paths in DP_MSG_ExpectReply().
dplayx: Return and check HRESULT from DP_MSG_ExpectReply().
dplayx: Allow specifying multiple reply command ids in DP_MSG_ExpectReply().
dplayx: Expect SUPERENUMPLAYERSREPLY in DP_MSG_ForwardPlayerCreation().
dpwsockx: Return DP_OK from CreatePlayer().
dpwsockx: Add a partial SendEx() implementation.
dplayx: Use SendEx() instead of Send().
dplayx: Initialize the unknown field in DP_MSG_ForwardPlayerCreation().
dpwsockx: Set player data in CreatePlayer().
dplayx: Use the documented message layout in DP_MSG_ForwardPlayerCreation().
dplayx: Merge DP_CalcSessionDescSize() into DP_CopySessionDesc().
dplayx: Add a session duplication helper function and use it in DP_SetSessionDesc() and NS_AddRemoteComputerAsNameServer().
dplayx: Return SP message header from NS_WalkSessions() and get rid of NS_GetNSAddr().
dplayx: Set session desc when joining a session.
dplayx/tests: Test Open() with two enumerated sessions.
dplayx: Find the matching session instead of using the first one.
dplayx/tests: Test that players from SUPERENUMPLAYERSREPLY are added to the session.
dplayx: Don't enumerate system players.
dplayx: Add player to the system group in DP_CreatePlayer().
dplayx: Set player data in DP_CreatePlayer().
dplayx: Return HRESULT from DP_CreatePlayer().
dplayx: Inform the SP about player creation in DP_CreatePlayer().
dplayx: Set SP data in DP_CreatePlayer().
dplayx: Return message header from DP_MSG_ExpectReply().
dplayx: Parse SUPERENUMPLAYERSREPLY and add players to the session.
dplayx/tests: Also check the names returned by GetPlayerName() in checkPlayerListCallback().
dplayx: Don't check dwSize in DP_CopyDPNAMEStruct().
dplayx: Add a name copying helper function and use it in DP_IF_GetGroupName() and DP_IF_GetPlayerName().
dplayx: Store the names contiguously.
dplayx: Store the names as both Unicode and ANSI.
dplayx: Pass ANSI name when enumerating through ANSI interface.
Bernhard Kölbl (1):
mscoree: Register mono log handler callback.
Bernhard Übelacker (2):
ntdll: Add warning if dlopen of unixlib failed.
mmdevapi: Add error if no driver could be initialized.
Billy Laws (3):
ntdll: Match the new ARM64 KiUserExceptionDispatcher stack layout.
regsvr32: Explicitly specify the target machine when relaunching.
msi: Disable WOW64 redirection for all 64-bit package archs.
Biswapriyo Nath (9):
include: Add new value in DWRITE_GLYPH_IMAGE_FORMATS in dcommon.idl.
include: Add UI Automation Text Attribute ID definitions.
include: Add UI Automation Landmark Type ID definitions.
include: Add IDWriteFontFace7 definition in dwrite_3.idl.
include: Add ISystemMediaTransportControls2 definition in windows.media.idl.
include: Add DataWriter runtimeclass in windows.storage.streams.idl.
include: Add IRandomAccessStreamReferenceStatics in windows.storage.streams.idl.
include: Add IRandomAccessStreamReference in windows.storage.streams.idl.
include: Add IOutputStream in windows.storage.streams.idl.
Charlotte Pabst (2):
comdlg32: Update current itemdlg filter in SetFileTypeIndex.
comdlg32/tests: Add test for SetFileTypeIndex updating current filter.
Connor McAdams (7):
d3dx9/tests: Add more d3d format conversion tests.
d3dx9/tests: Add format conversion tests for premultiplied alpha DXTn formats.
d3dx9: Clamp source components to unorm range.
d3dx9: Store pixel value range alongside pixel values when reading pixels.
d3dx9: Add support for D3DFMT_Q8W8V8U8.
d3dx9: Add support for D3DFMT_V8U8.
d3dx9: Use format_from_d3dx_color() instead of fill_texture().
Dmitry Timoshkov (1):
msi: Also set "MsiTrueAdminUser" property.
Elizabeth Figura (11):
d3d11: Stub ID3D11VideoDecoder.
d3d11: Stub ID3D11VideoDecoderOutputView.
d3d11: Stub ID3D11VideoContext.
wined3d: Invalidate the FFP VS when diffuse presence changes.
wined3d: Move geometry_shader_init_stream_output().
wined3d: Call geometry_shader_init_stream_output() from shader_set_function().
wined3d: Remove the redundant "device" parameter to shader_set_function().
wined3d: Merge the rest of vertex_shader_init() into shader_set_function().
wined3d: Merge the rest of pixel_shader_init() into shader_set_function().
win32u: Implement drawing transformed arcs.
win32u: Implement drawing transformed round rectangles.
Eric Pouech (17):
cmd: Rewrite part of WCMD_expand_envvar.
cmd: Fix consecutive ! in variable expansion.
cmd: Add tests for 'EXIT /B' inside FOR loops.
cmd: EXIT /B shall break FOR loops.
cmd/tests: Add tests for running .BAT files.
cmd: Don't always set errorlevel for some builtin commands.
cmd: Extend tests for FOR loop variables.
cmd: Extend the range of usable variables in FOR loops.
cmd: Better detection of %~ as modifier.
cmd: Rewrite parsing of tokens= options in FOR /F loop.
kernel32: Correctly advertize unicode environment for AeDebug startup.
cmd/tests: Add test about external commands with dots.
cmd: Fix searching external commands with dots in their basename.
cmd/tests: Add more tests for SET command.
cmd: Use CRT memory function for environment.
cmd: Free environment strings.
cmd: Fix 'SET =' invocation.
Esme Povirk (2):
comctl32: Implement MSAA events for buttons.
comctl32/tests: Test MSAA events for buttons.
Gabriel Ivăncescu (5):
mshtml: Don't make hidden props enumerable.
mshtml: Move lookup_dispid and get_dispid calls out of get_builtin_id.
mshtml: Fix builtin style translation in removeAttribute for IE9+ modes.
mshtml: Move the hook invocations inside of the builtin_prop* helpers.
mshtml: Add support for host object accessor props.
Georg Lehmann (2):
winevulkan: Avoid empty struct extension conversions.
winevulkan: Update to VK spec version 1.3.296.
Hans Leidekker (11):
winedump: Dump CLR metadata.
fc: Add support for comparing files with default options.
fc/tests: Add tests.
findstr: Support case insensitive search.
findstr: Support search with regular expressions.
crypt32/tests: Fix a test failure.
ntdll: Return success for NtSetInformationProcess(ProcessPowerThrottlingState).
findstr: Preserve line endings.
cmd: Call ReadConsoleW() with standard input handles only.
imagehlp: Add a test to show that ImageGetDigestStream() supports 64-bit images.
wine.inf: Add a couple of NTFS registry values.
Jinoh Kang (1):
win32u: Don't release surface before passing it to create_offscreen_window_surface().
Louis Lenders (1):
kernelbase: Add stub for FindFirstFileNameW.
Matteo Bruni (3):
d3dx9/tests: Handle uncommon test results in test_D3DXCheckTextureRequirements().
d3dx9/tests: Handle lack of support for D3DFMT_A1R5G5B5 in test_D3DXFillCubeTexture().
d3dx9: Clean up color key handling in convert_argb_pixels() and point_filter_argb_pixels().
Nikolay Sivov (1):
unicode: Update to Unicode 16.0.0.
Owen Rudge (2):
odbc32: Wrap dlerror in debugstr_a to avoid potential buffer overflow.
odbc32: Return SQL_NO_DATA from SQLGetDiagRec if no active connection.
Paul Gofman (18):
ntdll: Implement RtlRbInsertNodeEx().
ntdll: Implement RtlRbRemoveNode().
ntdll/tests: Add tests for RTL RB tree.
ntdll: Fill LDR_DATA_TABLE_ENTRY.BaseAddressIndexNode.
ntdll: Use base address tree in get_modref().
ntdll: Use base address tree in LdrFindEntryForAddress().
ntdll/tests: Add more tests for process instrumentation callback.
ntdll: Call instrumentation callback from wine_syscall_dispatcher on x64.
ntdll: Call instrumentation callback for KiUserExceptionDispatcher on x64.
ntdll: Call instrumentation callback for LdrInitializeThunk on x64.
ntdll: Call instrumentation callback for KiUserModeCallback on x64.
ntdll: Support old parameter layout for NtSetInformationProcess( ProcessInstrumentationCallback ).
wow64: Fix length check in wow64_NtSetInformationProcess().
uxtheme: Better detect the presence of default transparent colour in prepare_alpha().
win32u: Call set_active_window() helper directly from handle_internal_message().
win32u: Correctly fill new foreground window TID in WM_ACTIVATEAPP.
kernel32/tests: Add test for finding loaded module when the module file is renamed.
ntdll: Skip dll file search when getting module handle from short name.
Piotr Caban (2):
msvcp70: Export std::getline function.
msvcp70: Add basic_ofstream constructor implementation.
Rémi Bernon (69):
mfplat/tests: Add tests for VIDEOINFOHEADER(2) user data conversion.
mfplat: Fill user data when converting VIDEOINFOHEADER formats.
winedmo: Avoid printing errors on expected statuses.
winedmo: Set the buffer size to zero on read failure.
mfsrcsnk: Send EOS event only when there is no more samples queued.
mfsrcsnk: Fill the stream mapping for unknown stream types too.
winex11: Avoid recreating the offscreen GL window if not necessary.
win32u: Notify drivers of the child surfaces state when their ancestor moves.
winewayland: Use window DPI for the OpenGL client surface size.
winewayland: Call ensure_window_surface_contents with the toplevel window.
winewayland: Keep the toplevel hwnd on the wayland_client_surface.
winewayland: Update the client separately from the window surface updates.
winewayland: Split wayland_win_data_update_wayland_surface helper.
winewayland: Pass the client surface rect to wayland_surface_reconfigure_client.
winewayland: Attach client client surfaces to their toplevel surface.
winewayland: Let the render threads commit changes to client surfaces.
winegstreamer: Pass H264 codec data as streamheader.
mfsrcsnk: Serialize stream sample requests with the state callbacks.
winedmo: Hoist the demuxer input format.
winedmo: Simplify demuxer creation error handling.
winedmo: Allocate a dedicated demuxer structure.
winedmo: Move the last packet to the demuxer struct.
winedmo: Create bitstream filters for demuxer streams.
winedmo: Pass demuxer packets through the bitstream filters.
winedmo: Convert H264 streams to Annex B format.
winex11: Use NtUserGetDpiForWindow when only checking for empty rect.
win32u: Keep per display source monitor DPI values.
win32u: Introduce a new NtUserGetWinMonitorDpi call for drivers.
win32u: Only reuse scaling target surface if it matches the monitor rect.
win32u: Update the window state when display settings changes.
user32: Stub DisplayConfigSetDeviceInfo.
user32/tests: Add more tests for GetDpiForMonitorInternal.
user32/tests: Add more tests with display source DPI scaling.
user32/tests: Add tests with windows and monitor DPI scaling.
winewayland: Move surface title change to wayland_surface_make_toplevel.
winewayland: Call wayland_surface_clear_role in wayland_surface_destroy.
winewayland: Introduce a new wayland_surface role enumeration.
winewayland: Introduce a new wayland_surface_reconfigure_xdg helper.
winewayland: Introduce a new update_wayland_surface_state_toplevel helper.
winewayland: Use subsurfaces for unmanaged windows.
user32/tests: Load more DPI-related functions dynamically.
user32/tests: Move the monitor DPI tests below others.
user32/tests: Use more commonly available resolutions.
mfplat/tests: Test source resolver bytestream interactions.
mfplat: Seek byte stream to the start for URL hint detection.
win32u: Make sure to load drivers when updating the display cache.
win32u: Always write the source current mode to the registry.
win32u: Keep the source depth separately from the current mode.
win32u: Remove now unnecessary GetDisplayDepth driver entry.
win32u: Cache display source current display settings.
win32u: Remove unnecessary GetCurrentDisplaySettings call.
win32u: Add virtual modes when drivers report a single display mode.
win32u: Keep track of the display source physical display mode.
win32u: Use the current display mode as monitor rect.
winemac: Remove unnecessary MoveWindowBits implementation.
win32u: Pass rects in window DPI to MoveWindowBits.
win32u: Pass a MONITOR_DPI_TYPE param to monitor_get_dpi.
win32u: Pass a MONITOR_DPI_TYPE param to monitor_get_rect.
win32u: Pass a MONITOR_DPI_TYPE param to NtUserGetVirtualScreenRect.
win32u: Pass a MONITOR_DPI_TYPE param to get_monitor_from_rect.
win32u: Use the parent window monitor DPI for child windows.
win32u: Pass a MONITOR_DPI_TYPE param to NtUserGetWinMonitorDpi.
dinput/tests: Add tests for IoReportTargetDeviceChange(Asynchronous).
sechost: Pass individual parameters to I_ScRegisterDeviceNotification.
sechost: Filter the device notifications before copying them.
sechost: Keep device notification temporary copies in a list.
sechost: Get rid of the device_notification_details internal struct.
plugplay: Pass a device path to plugplay notifications.
win32u: Read AppCompatFlags DPI awareness overrides from the registry.
Sergei Chernyadyev (5):
shell32: Move icon related fields in notify_data into separate struct.
shell32: Introduce a new get_bitmap_info helper.
shell32: Cleanup some local variable names.
shell32: Introduce a new fill_icon_info helper.
shell32: Add support for balloon icon copying.
Tim Clem (6):
nsiproxy: Only set the connection count from tcp_conns_enumerate_all when appropriate.
nsiproxy: Only set the endpoint count from udp_endpoint_enumerate_all when appropriate.
advapi32: Use CreateProcessAsUser to implement CreateProcessWithToken.
user32/tests: Test that shell windows are per-desktop and should be set on the default desktop.
server: Make shell, taskman, and progman windows per-desktop.
explorer: Set the shell window when creating the Default desktop.
Vibhav Pant (17):
bluetoothapis: Add stub for BluetoothSdpGetElementData.
bluetoothapis/tests: Add tests for BluetoothSdpGetElementData.
bluetoothapis: Implement BluetoothSdpGetElementData.
bluetoothapis: Add stub for BluetoothSdpGetContainerElementData.
bluetoothapis/tests: Add tests for BluetoothSdpGetContainerElementData.
bluetoothapis: Implement BluetoothSdpGetContainerElementData.
bluetoothapis: Add stub for BluetoothSdpEnumAttributes.
bluetoothapis/tests: Add tests for BluetoothSdpEnumAttributes.
bluetoothapis: Implement BluetoothSdpEnumAttributes.
bluetoothapis: Add stub for BluetoothSdpGetAttributeValue.
bluetoothapis/tests: Add tests for BluetoothSdpGetAttributeValue.
bluetoothapis: Implement BluetoothSdpGetAttributeValue.
ntoskrnl: Add stub for IoReportTargetDeviceChange.
plugplay: Only broadcast WM_DEVICECHANGE for DBT_DEVTYP_DEVICEINTERFACE.
sechost: Add support for DBT_DEVTYP_HANDLE notifications.
user32: Add support for DBT_DEVTYP_HANDLE notifications.
ntoskrnl: Implement IoReportTargetDeviceChange.
Vijay Kiran Kamuju (3):
ws2_32: Add stub WSCGetApplicationCategory().
windows.ui: Add stubs for UIViewSettings class.
windows.ui: Add stub IInputPaneStatics implementation.
Yuxuan Shui (1):
d3d11: Stub ID3D11VideoDevice1.
Zhiyi Zhang (9):
user32/tests: Test that DragDetect() uses client coordinates instead of screen coordinates.
ntdll/tests: Add RtlConvertDeviceFamilyInfoToString() tests.
ntdll: Implement RtlConvertDeviceFamilyInfoToString().
include: Add Windows.ApplicationModel.DesignMode runtime class.
include: Add more Windows.Foundation.IReference<> interfaces.
include: Add windows.ui.xaml.interop.idl.
include: Add windows.ui.xaml.idl.
include: Add Windows.Globalization.ApplicationLanguages runtime class.
windows.ui: Register Windows.UI.Core.CoreWindow.
```
The Wine development release 9.18 is now available.
What's new in this release:
- New Media Foundation backend using FFMpeg.
- Initial support for network sessions in DirectPlay.
- New Desktop Control Panel applet.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.18.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.18/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.18 (total 18):
- #10648 gRPC library fails to send RPC packets correctly (nonblocking send() should not perform partial writes)
- #53727 TreeView doesn't check the return value of TREEVIEW_SendExpanding
- #55347 widl generated winrt headers fails to compile with C++ code
- #56596 Keyboard keypress generates NumLock keypress for all keys
- #56873 WordSmith 9.0 doesn't show text in installer
- #57136 Steinberg Download Assistant crashes (part 2)
- #57141 Repaper Studio crashes on unimplemented function USER32.dll.CreateSyntheticPointerDevice
- #57155 Gigapixel ai crashes on startup in win7 mode
- #57158 HID devices not detected after removal until Wine processes restart
- #57160 16-bit color no longer works when using Xephyr
- #57163 msiexec sometimes fails with unquoted filenames
- #57173 Wine-dev 9.17 does not allow drag-and-drop of files into LTspice
- #57181 PathGradientBrushTest:Clone fails with InvalidParameter
- #57189 Caesar 3, Neighbours from Hell 1-2: screen cropped
- #57190 Configure ends with: Do '' to compile Wine.
- #57195 wineconsole is broken Wine 9.17 after moving its window (Far File Manager is broken as well, as a result)
- #57199 Window surface leaks with DPI unaware apps
- #57200 Warlords III: Darklords Rising shows distorted image
### Changes since 9.17:
```
Aida Jonikienė (1):
winewayland: Make the pointer protocols optional.
Alexandre Julliard (47):
combase: Avoid modifying input object attributes in create_key (Clang).
ole32: Avoid modifying input object attributes in create_key (Clang).
odbc32: Avoid buffer overflow on empty connection string (Clang).
ntdll: Remove some dead initializations (Clang).
configure: Re-generate with autoconf 2.72.
configure: Disable misguided autoconf error on wow64 builds without large time_t.
configure: Use the compiler instead of the preprocessor to check CPU defines.
configure: Remove some no longer used defines.
server: Add a helper to append data to a buffer.
server: Remove some dead initializations (Clang).
server: Avoid a redundant list check (Clang).
server: Avoid memcpy with null pointer (Clang).
server: Make masks unsigned (Clang).
mf/tests: Remove todo_wine from a test that succeeds now.
ntoskrnl/tests: Mark some failing tests as todo_wine.
comctl32/tests: Skip hotkey test if window is not foreground.
comctl32/tests: Wait a bit more for the tooltip to appear.
d3dx9: Use sizeof on the correct type in malloc (Clang).
dsound: Use sizeof on the correct type in malloc (Clang).
gdiplus: Use sizeof on the correct type in malloc (Clang).
hidclass.sys: Use sizeof on the correct type in malloc (Clang).
msi: Use sizeof on the correct type in malloc (Clang).
msvcrt: Use sizeof on the correct type in malloc (Clang).
wintrust: Use sizeof on the correct type in malloc (Clang).
win32u: Use the correct type in malloc (Clang).
mscoree: Use the correct size in malloc (Clang).
winex11: Use the correct type in malloc (Clang).
winecfg: Use the correct type in malloc (Clang).
comctl32/tests: Skip tests if tooltip isn't displayed.
comctl32/tests: Make some messages optional in propsheet display sequence.
urlmon/tests: Skip test if ftp connection fails.
ntdll: Avoid closing an invalid handle (Clang).
regedit: Fix potential buffer overflow (Clang).
oleaut32: Fix potential double free (Clang).
msvcrt: Mark _CxxThrowException noreturn (Clang).
configure: Update make command in final message.
configure: Add /usr/share/pkgconfig to the pkg-config path.
comctl32/tests: Add more optional propsheet messages.
nsi/tests: Properly cancel all change notifications.
comctl32/tests: Fix an optional propsheet message id.
cmd/tests: Comment out test that shows a popup on Windows.
po: Update files for previous commit.
sc/tests: Remove todo from a test that succeeds now.
ntdll/tests: Remove an unreliable test.
configure: Remove some obsolete checks.
configure: Remove some no longer needed program checks.
configure: Remove some no longer needed header checks.
Alexey Lushnikov (1):
gdi32: Actually return the device context and bitmap from get_bitmap_info().
Alistair Leslie-Hughes (3):
dplayx: Merged IDirectPlayLobby/2A in to IDirectPlayLobby3A.
dplayx: Use a single reference count for IDirectPlayLobby interfaces.
dplayx: Merged IDirectPlayLobby/2 in to IDirectPlayLobby3.
Anton Baskanov (26):
dpwsockx: Remove endianness conversion macros.
dpwsockx: Remove unused DPWS_DATA fields.
dplayx: Don't crash if sdesc is NULL in EnumSessions().
dplayx/tests: Use CRT allocation functions.
dplayx/tests: Test client-side of EnumSessions() separately.
dplayx: Check dwSize of DPSESSIONDESC2 in EnumSessions().
dpwsockx: Call WSACleanup() in ShutdownEx().
dpwsockx: Start listening for incoming TCP connections in EnumSessions().
dpwsockx: Broadcast enumeration request in EnumSessions().
dplayx/tests: Report lines correctly in session enumeration callback.
dplayx/tests: Retry enumeration manually instead of returning TRUE from the callback.
dpwsockx: Add a background thread.
dpwsockx: Accept incoming TCP connections.
dpwsockx: Receive TCP messages.
dplayx: Add a separate session list for walking.
dplayx: Put the sync enumeration code before the async one.
dplayx: Move enumeration reset and prune out of DP_InvokeEnumSessionCallbacks().
dplayx: Enter critical section when accessing the session cache.
dplayx: Restart session enumeration when the callback returns TRUE.
dplayx: Respect timeout set by session enumeration callback.
dplayx: Add a string copying helper function and use it in DP_CalcSessionDescSize() and DP_CopySessionDesc().
dplayx: Reduce nesting of the async enumeration code.
dplayx: Send password in session enumeration request.
dplayx/tests: Correctly compute session enumeration reply size.
dplayx: Check the message size before access.
dplayx: Check ENUMSESSIONSREPLY size before access.
Aurimas Fišeras (1):
po: Update Lithuanian translation.
Biswapriyo Nath (3):
include: Add Calendar runtimeclass in windows.globalization.idl.
include: Add DXVA_PicParams_HEVC_RangeExt declaration in dxva.h.
include: Add new GUIDs in dxva.h.
Brendan Shanks (8):
winemac: Marshal user-mode callback pointers in macdrv_init wow64 thunk.
Revert "configure: Don't define HAVE_CLOCK_GETTIME on macOS.".
ntdll: Always use mach_continuous_time() on macOS.
sfnt2fon: Replace sprintf with snprintf to avoid deprecation warnings on macOS.
widl: Replace sprintf with snprintf to avoid deprecation warnings on macOS.
winebuild: Replace sprintf with snprintf to avoid deprecation warnings on macOS.
wmc: Replace sprintf with snprintf to avoid deprecation warnings on macOS.
wrc: Replace sprintf with snprintf to avoid deprecation warnings on macOS.
Charlotte Pabst (2):
comdlg32: Allow entering a filter in the itemdlg file name field.
comdlg32/tests: Add tests for itemdlg file name field filters.
Danyil Blyschak (1):
mlang: Use EnumFontFamiliesEx() in map_font().
Dmitry Timoshkov (4):
msiexec: Avoid crash if PackageName is NULL.
advapi32/tests: Add some tests for SERVICE_CONFIG_DELAYED_AUTO_START_INFO.
services: Add support for ChangeServiceConfig2(SERVICE_CONFIG_DELAYED_AUTO_START_INFO).
services: Add support for QueryServiceConfig2(SERVICE_CONFIG_DELAYED_AUTO_START_INFO).
Elizabeth Figura (14):
wined3d: Invalidate the VS from wined3d_device_apply_stateblock() when light state changes.
wined3d: Invalidate the VS from wined3d_device_apply_stateblock() when the light type changes.
wined3d: Invalidate the VS from wined3d_device_apply_stateblock() when the vertex declaration changes.
wined3d: Invalidate the VS from wined3d_device_apply_stateblock() when WINED3D_TSS_TEXCOORD_INDEX changes.
wined3d: Add an append_structure() helper for get_physical_device_info().
wined3d: Don't use structures from unsupported extensions in get_physical_device_info().
wined3d: Do not require EXT_vertex_attribute_divisor.
winevulkan: Separate a parse_array_len() helper.
winevulkan: Handle multidimensional static arrays.
wined3d: Use W as a fog source with shaders and a non-orthogonal matrix.
wined3d: Use output specular W as a fog source if the shader does not output oFog.
wined3d: Invalidate STATE_SHADER when WINED3D_TS_PROJECTION changes.
wined3d: Invalidate the VS from wined3d_device_apply_stateblock() when fog states change.
wined3d: Invalidate the VS from wined3d_device_apply_stateblock() when WINED3D_RS_VERTEXBLEND changes.
Eric Pouech (10):
cmd/tests: Add some more tests.
cmd: Expand command before searching for builtin commands.
cmd: Introduce internal command to change drive.
cmd: Introduce helper to search for external program.
cmd: Introduce helper for running a builtin command.
cmd: Integrate builtin command search in search_program() helper.
cmd: Speed-up external command look up.
cmd: Get rid of circular ref for internal/external commands.
winedbg: Give user feedback when attaching to a second process.
dbghelp: Fix discrimination of local variable / parameter in PDB files.
Esme Povirk (3):
msiexec: Fix allocation to include NULL terminator.
user32: Implement listbox MSAA events on click.
gdiplus: Fix assignment of result in GdipCloneBrush.
Francisco Casas (3):
quartz: Emit FIXME when the rendering surface is smaller than the source in VMR7.
quartz: Properly copy data to render surfaces of planar formats in VMR7.
quartz: Align src_pitch for planar formats.
Gabriel Ivăncescu (13):
mshtml: Don't cast to int to bound the timer.
mshtml: Remember if timer was blocked.
mshtml: Don't process tasks recursively.
mshtml: Don't process tasks recursively from script runners.
mshtml: Don't process tasks recursively from Gecko events.
mshtml: Use designated initializers for function_dispex.
mshtml: Move formatting of the builtin func disp string to a helper.
mshtml: Implement retrieving the builtin method props for the legacy function objects.
jscript: Use proper dispatch flags to retrieve the enumerator.
jscript: Use deferred fill-in if available to fill the exception info.
mshtml/tests: Add more host object related tests for IE9+ modes.
mshtml: Return MSHTML_E_INVALID_PROPERTY when trying to construct a legacy function object.
jscript: Return JS_E_OBJECT_NOT_COLLECTION when object has no DISPID_NEWENUM.
Gijs Vermeulen (1):
user32: Add CreateSyntheticPointerDevice stub.
Hans Leidekker (1):
odbc32: Only call process_detach() if the unixlib was successfully loaded.
Jacek Caban (7):
include: Define __imp_aux symbols in __ASM_DEFINE_IMPORT macro on ARM64EC.
widl: Use alias qualified names in winrt mode in write_type_left.
tools: Use GetModuleFileNameA in get_bindir on Windows targets.
tools: Use /proc/self/exe in get_bindir on Cygwin targets.
include: Use __has_declspec_attribute in corecrt.h.
include: Remove DECLSPEC_ALIGN define from sys/stat.h.
include: Use __has_declspec_attribute in basetsd.h.
Louis Lenders (1):
uxtheme: Add stub for FlushMenuThemes.
Michael Ehrenreich (2):
kernelbase: Fix EnumSystemLocalesA/W filtering of default/alternate sort orders.
kernel32/tests: Add basic tests for EnumSystemLocalesA/W.
Nikolay Sivov (1):
d2d1/tests: Add a few tests for ComputeArea().
Owen Rudge (2):
sc: Return error value rather than 1 on failure.
ntdll: Ensure Unix path strings are wrapped with debugstr_a in traces.
Paul Gofman (6):
ntdll: Do not call LDR notifications during process shutdown.
ws2_32/Tests: Add tests for send buffering.
ntdll: Avoid short writes on nonblocking sockets.
ntdll: Locally duplicated socket fd for background send.
ntdll: Don't cancel background socket sends.
server: Correct STATUS_NOT_FOUND return from (cancel_async).
Rémi Bernon (112):
winex11: Resize offscreen client surfaces after they are presented.
winex11: Create OpenGL client windows in window DPI units.
winex11: Detach offscreen OpenGL windows after creation.
winex11: Introduce a new present_gl_drawable helper.
winex11: Implement offscreen window presents with NtGdiStretchBlt.
winex11: Drop now unnecessary X11DRV_FLUSH_GL_DRAWABLE ExtEscape.
winex11: Use offscreen rendering to scale DPI-unaware GL windows.
winedmo: Introduce a new internal DLL.
winedmo: Link and initialize FFmpeg on load.
winedmo: Export a new winedmo_demuxer_check function.
mfsrcsnk: Stub byte stream handlers if demuxing is supported.
winewayland: Move wayland_surface_get_client to window.c.
winewayland: Introduce a new wayland_client_surface_attach helper.
winewayland: Pass hwnd to and return client rect from wayland_surface_get_client.
winewayland: Move client surface to wayland_win_data struct.
winewayland: Detach client surfaces when they are not visible.
mfsrcsnk: Stub the source IMFByteStreamHandler interface.
mfsrcsnk: Stub the media source IMFMediaSource interface.
mfsrcsnk: Implement IMFMediaSource_Shutdown for the media sources.
mfsrcsnk: Implement IMFMediaSource_GetCharacteristics for the media sources.
mfsrcsnk: Stub the media source IMFGetService interface.
mfsrcsnk: Stub the media source IMFRateSupport interface.
mfsrcsnk: Stub the media source IMFRateControl interface.
winex11: Use the correct dnd_drop_event user dispatch callback.
win32u: Leave window surface alpha bits to -1 when unset.
hidclass: Combine waits for pending IRP and I/O thread shutdown.
mfsrcsnk: Get the IMFByteStream url from MF_BYTESTREAM_ORIGIN_NAME.
mfsrcsnk: Seek and get the media source IMFByteStream length.
winedmo: Export new winedmo_demuxer_(create|destroy) functions.
mfsrcsnk: Create a winedmo_demuxer object on the media sources.
winedmo: Implement FFmpeg seek and read with user callbacks.
winedmo: Allocate a client-side stream context with the demuxers.
winedmo: Use the stream context to track stream position.
winedmo: Use the stream context as a buffer for larger reads.
winedmo: Introduce a winedmo_stream callback interface for I/O.
winedmo: Return detected MIME type from winedmo_demuxer_create.
winedmo: Improve MIME type detection with the stream url.
winedmo: Detect and return stream count from winedmo_demuxer_create.
winedmo: Compute and return total duration from winedmo_demuxer_create.
winedmo: Export a new winedmo_demuxer_stream_type function.
mfsrcsnk: Initialize a stream map, sorted for specific mime types.
winevulkan: Use client rect in window DPI instead of monitor DPI.
win32u: Pass vulkan driver private data to vulkan_surface_presented.
winex11: Use a dedicated structure for vulkan surface private data.
winex11: Update the vulkan surface size when it is presented.
winex11: Update the GL client window size when it is presented.
winex11: Only update the client window position in sync_client_position.
winex11: Move offscreen client window helpers to init.c.
winex11: Implement vulkan DPI scaling and child window rendering.
winedmo: Pass stream size by value to winedmo_demuxer_create.
winedmo: Implement video media type conversion.
winedmo: Implement audio media type conversion.
mfsrcsnk: Stub IMFMediaStream objects for the media source.
mfsrcsnk: Create stream descriptors for the media source streams.
winedmo: Implement more compressed audio/video formats conversion.
conhost: Advertise system DPI awareness.
win32u: Lock the window when removing a vulkan surface from its list.
winex11: Move update_gl_drawable_size helper around.
winex11: Resize GL drawable when necessary, if wglSwapBuffer isn't called.
include: Introduce a new __has_declspec_attribute macro.
include: Use winnt.h DECLSPEC_UUID definition in rpcndr.h.
include: Use winnt.h DECLSPEC_NOVTABLE definition in rpcndr.h.
include: Add DECLSPEC_UUID/DECLSPEC_NOVTABLE to MIDL_INTERFACE.
include: Remove __need_wint_t/__need_wchar_t definitions.
include: Don't import atexit from CRTs.
include: Define __cpuid(ex) as intrinsics when possible.
win32u: Avoid leaking window surface references with DPI scaling.
winedmo: Fix winedmo_demuxer_create prototype in spec file.
winedmo: Export a new winedmo_demuxer_stream_name function.
mfsrcsnk: Fill the stream descriptors MF_SD_STREAM_NAME attribute.
winedmo: Export a new winedmo_demuxer_stream_lang function.
mfsrcsnk: Fill the stream descriptors MF_SD_LANGUAGE attribute.
mfsrcsnk: Select one stream of each time, exclude others.
win32u: Use map_dpi_rect in map_dpi_create_struct.
win32u: Use map_dpi_rect in map_dpi_winpos.
win32u: Split monitor_from_rect logic to a separate helper.
win32u: Split get_monitor_info into separate helpers.
win32u: Use get_monitor_from_handle in get_monitor_dpi.
win32u: Introduce a new monitor_dpi_from_rect helper.
win32u: Introduce a new monitor_info_from_rect helper.
win32u: Introduce a new monitor_info_from_window helper.
joy.cpl: Refresh devices list when they are plugged in or out.
joy.cpl: Cleanup the main panel control IDs and text.
joy.cpl: Reduce the height of some main panel controls.
joy.cpl: Add advanced settings controls in the main panel.
win32u: Fix inverted return condition in get_cursor_pos.
winex11: Also resize or re-create the GL drawable with XComposite child windows.
mfsrcsnk: Implement asynchronous media source start operation.
mfsrcsnk: Implement asynchronous media source stop operation.
mfsrcsnk: Implement asynchronous media source pause operation.
winedmo: Export a new winedmo_demuxer_seek function.
winedmo: Export a new winedmo_demuxer_read function.
winedmo: Read sample flags, timestamps and duration.
mfsrcsnk: Read samples from the media source demuxer.
include: Define NULL as 0LL in C++ on 64bit archs.
win32u: Use get_virtual_screen_rect directly within the module.
win32u: Use is_window_rect_fullscreen directly in clip_fullscreen_window.
win32u: Use get_window_rect directly in clip_fullscreen_window.
win32u: Pass whether a window is fullscreen to drivers WindowPosChanged.
winewayland: Use the new fullscreen flag instead of NtUserIsWindowRectFullScreen.
winex11: Use the new fullscreen flag instead of NtUserIsWindowRectFullScreen.
win32u: Remove now unused NtUserIsWindowRectFullScreen call.
desk.cpl: Introduce new control panel applet.
desk.cpl: Enumerate the desktop display devices.
desk.cpl: Display the virtual desktop and monitors rects.
desk.cpl: Implement monitor highlight and selection.
desk.cpl: Enumerate and display available resolutions.
desk.cpl: Add a reset button to discard display settings changes.
desk.cpl: Update the monitor rects when changing resolutions.
desk.cpl: Keep the monitor rectangles snapped together.
desk.cpl: Implement monitor rectangle positioning.
desk.cpl: Add a button to apply display settings changes.
Stefan Dösinger (1):
netapi32: Add a stub NetFreeAadJoinInformation function.
```
The Wine development release 9.17 is now available.
What's new in this release:
- Window surface scaling on High DPI displays.
- Bundled vkd3d upgraded to version 1.13.
- Mono engine updated to version 9.3.0
- Improved CPU detection on ARM64.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.17.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.17/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.17 (total 29):
- #11770 mapi32.dll.so does not support attachments for sending mail
- #18154 cmd.exe: failure to handle file extension association
- #18846 Anti-Grain Geometry gdiplus Demo does not render correctly
- #26813 Multiple programs ( python-3.1.3.amd64.msi, scoop) need support for administrative install (msiexec.exe /a )
- #42601 Foxit Reader 8.2 crashes after running for an extended period of time (>30 minutes)
- #43472 Several apps (R-Link 2 Toolbox, Mavimplant 1.0, Kundenkartei 5) crash on startup (Wine's 'packager.dll' is preferred over native, causing failure to load app provided library with same name)
- #48404 Can't close free game notifications from Epic Games Store
- #49244 GdipDeleteFontFamily is declared, but does nothing
- #50365 Starcraft Remastered black screen on launch or window only mode
- #52687 OpenKiosk installer not working
- #53154 Crash of EpicOnlineServicesUserHelper.exe" --setup
- #54212 Nexus ECU Tuning Software for HALTECH ECU
- #55322 SBCL 2.3.4: unattended msiexec in administrator mode fails
- #55343 Game Constantine doesn't respond to key inputs.
- #55410 msi:package fails on w8adm
- #55804 DICOM Viewer (eFilm Workstation 2.x/3.x) aborts because libxml2 doesn't like "ISO8859-1" (builtin msxml6).
- #55936 Sven Bømwøllen series: Several games crash after loading screen
- #55964 wine-mono: Dlls include reference to filenames different to the files in wine-mono-8.1.0-dbgsym.tar.xz
- #56102 Comdlg32/Color - Out of bound value is used
- #56103 PropertySheet - CTRL+TAB and CTRL+SHIFT+TAB not processed
- #56352 comctl32: Handle progress bar state messages
- #57096 Hogia Hemekonomi does not start
- #57102 Textbox-border is missing if textbox is on topmost layer of e. g. a TabControl.
- #57103 "opengl32.dll" failed to initialize with WOW64 on Wayland
- #57117 BsgLauncher cannot launch due to unhandled exception in System.Security.Cryptography (.NET48)
- #57119 WPF app (VOCALOID) fails to initialize Markup
- #57127 Dutch button labels are cut off in Wine Internet Explorer
- #57140 ADOM fails to launch
- #57145 Quicktime 3.02 (16-bit) setup hangs
### Changes since 9.16:
```
Aida Jonikienė (4):
explorer: Make the driver error message more neutral.
msvcrt: Print less FIXMEs for ThreadScheduler_ScheduleTask*().
msvcrt: Remove FIXME for _StructuredTaskCollection_dtor().
msvcrt: Only print FIXME once for Context_Yield().
Alex Henrie (5):
explorer: Make the "Wine Desktop" window title translatable.
explorer: Don't display "Default" in the virtual desktop window title.
ieframe: Widen toolbar buttons to accommodate Dutch translation.
explorer: Return void from show_icon and hide_icon.
explorer: Support the NoTrayItemsDisplay registry setting.
Alexandre Julliard (3):
vkd3d: Import upstream release 1.13.
ntdll: Use custom x64 thunks for syscall exports.
ntdll: Add custom x64 thunk for KiUserExceptionDispatcher.
Alexandros Frantzis (1):
winewayland: Rename surface buffer size to content size.
Alistair Leslie-Hughes (9):
odbccp32: Return false on empty string in SQLValidDSNW.
odbccp32: Check for valid DSN before delete in SQLRemoveDSNFromIniW.
odbccp32: Correctly handle config_mode in SQLWrite/RemoveDSNFromIniW.
odbc32: Pass through field id SQL_MAX_COLUMNS_IN_TABLE in SQLColAttribute/W.
odbc32: Correcly convert columns ID in SQLColAttribute/W for ODBC v2.0.
odbccp32: Only append slash if required in write_registry_values.
include: Move ColorChannelLUT outside of if __cplusplus.
include: Add basic constructors for Rect/RectF.
include: Add class SizeF.
Andrew Eikum (1):
mmdevapi: Add stub IAudioClockAdjustment implementation.
Andrew Nguyen (2):
msi/tests: Add additional test cases for validating package template summary info strings.
msi: Allow package template summary info strings without semicolon separator.
Arkadiusz Hiler (2):
mmdevapi/tests: Add more IAudioClock tests.
winepulse.drv: Implement set_sample_rate.
Aurimas Fišeras (1):
po: Update Lithuanian translation.
Bernhard Übelacker (1):
msxml3: Allow encoding name "ISO8859-1".
Billy Laws (2):
ntdll: Populate the SMBIOS with ARM64 ID register values.
wineboot: Populate ARM64 ID register registry keys using SMBIOS info.
Biswapriyo Nath (3):
include: Add http3 flag in winhttp.h.
include: Add input assembler related constants in d3d11.idl.
include: Add ISelectionProvider2 definition in uiautomationcore.idl.
Brendan McGrath (2):
windows.gaming.input: Zero 'value' in GetCurrentReading until first state change.
winegstreamer: Allow application to drain queue.
Brendan Shanks (2):
winemac.drv: Call CGWindowListCreateImageFromArray through a dlsym-obtained pointer.
secur32: Ensure unixlib function tables and enum stay in sync.
Dmitry Timoshkov (2):
dssenh: Add support for enumerating algorithms.
dssenh: Add support for CPGetProvParam(PP_NAME).
Dylan Donnell (1):
winegstreamer: Support IYUV alias for I420.
Elizabeth Figura (12):
cmd/tests: Save and restore the drive when performing drive change tests.
cmd: Do not try to handle ERROR_FILE_NOT_FOUND from CreateProcessW().
cmd: Separate a run_full_path() helper.
cmd: Run files with ShellExecute() if CreateProcess() fails.
wined3d: Invalidate STATE_SHADER instead of STATE_POINT_ENABLE.
wined3d: Invalidate the PS from wined3d_device_apply_stateblock() when texture states change.
wined3d: Invalidate the PS from wined3d_device_apply_stateblock() when WINED3D_RS_COLORKEYENABLE changes.
wined3d: Invalidate the PS from wined3d_device_apply_stateblock() when the texture changes.
wined3d: Invalidate the VS from wined3d_device_apply_stateblock() when WINED3D_RS_NORMALIZENORMALS changes.
cmd: Allow deleting associations via ftype.
cmd: Report an error from ftype or assoc if the value is empty.
winegstreamer: Append HEAACWAVEINFO extra bytes to AAC user data.
Eric Pouech (5):
cmd: Don't display dialog boxes.
cmd/tests: Add some more tests.
cmd: Minor fix to the lexer.
cmd: Fix reading some input in CHOICE command.
cmd: Strip leading white spaces and at-sign from command nodes.
Esme Povirk (2):
mscoree: Update Wine Mono to 9.3.0.
user32: Implement EVENT_OBJECT_FOCUS for listbox items.
Etaash Mathamsetty (1):
win32u: Implement NtGdiDdDDIEnumAdapters.
Fabian Maurer (5):
comctl32/tests: Add test for propsheet hotkey navigation.
comclt32: Allow hotkeys for propsheet navigation.
comdlg32: Update luminosity bar when changing hue/sat/lum manually.
comdlg32: Prevent recursion inside CC_CheckDigitsInEdit.
comdlg32: Properly handle out of bounds values.
Garrett Mesmer (1):
ntdll: Determine the available address space dynamically for 64bit architectures.
Georg Lehmann (1):
winevulkan: Update to VK spec version 1.3.295.
Hans Leidekker (14):
rsaenh: Return an error on zero length only when decrypting the final block.
wmiutils: Handle paths with implied key.
msi: Remove traces from a couple of helpers.
msi: Add support for the ADMIN top level action.
msi: Implement the InstallAdminImage action.
msiexec: Remove an obsolete fixme.
msiexec: Don't remove quotes from properties passed on the command line.
msi/tests: Test escaped double quote on the command line.
msi: Bump version to 5.0.
wpcap/tests: Skip tests when pcap_can_set_rfmon() returns PCAP_ERROR_PERM_DENIED.
msiexec: Don't quote property values if already quoted.
odbc32: Fix a memory leak.
odbc32: Fix driver name query.
odbc32: Load libodbc dynamically.
Haoyang Chen (1):
gdiplus: Check if graphics is occupied in GdipDrawString.
Huw D. M. Davies (11):
nsiproxy: Add linux guards for the IPv6 forward info.
win32u: Use unsigned bitfields.
widl: Remove unused variable.
winedump: Remove unused variable.
opengl32: Test the unix call function table sizes.
combase: Group the post quit info in a structure.
include: Always declare the imagelist read and write functions.
winemapi: Don't write past the end of the argv array.
secur32: Simplify the cred_enabled_protocols logic slightly.
winecoreaudio: Set the synth volume to the greater of the left and right channels.
widl: Avoid using sprintf() to add a single character.
Jacob Czekalla (4):
user32/tests: Add test for edit control format rect size.
user32/edit: Fix incorrect size for format rect when it is smaller than text.
comctl32/tests: Add test for edit control format rect size.
comctl32/edit: Fix incorrect size for format rect when it is smaller than text.
Jason Edmeades (2):
cmd: Skip directories when looking for an openable file.
cmd/tests: Test running a file with an association.
Jeremy White (1):
winemapi: Directly use xdg-email if available.
Martin Storsjö (3):
ntdll: Improve ARM feature checking from /proc/cpuinfo.
include: Add new PF_* constants.
arm64: Detect new processor features.
Nikolay Sivov (8):
d3dx9/tests: Use explicit numeric values as expected test results.
d3dx9/tests: Remove unused fields from effect values test data.
d3dx9/tests: Add a test for matrix majority class.
d3d10/effect: Rename some variable array fields to better reflect their meaning.
d3d10/effect: Simplify setting GlobalVariables value.
d3d10/tests: Compile some of test effects.
d3d10/tests: Fully check matrix types.
d3d10/tests: Fully check scalar and vector types.
Paul Gofman (10):
concrt140: Don't forward _IsSynchronouslyBlocked functions.
dxcore: Prefer native.
kernel32/tests: Add a test for TLS links.
ntdll: Reserve space for some TLS directories at once.
ntdll: Iterate TEBs only once in alloc_tls_slot().
ntdll: Do not use TlsLinks for enumerating TEBs.
ntdll: Ignore HW breakpoints on the Unix side.
uxtheme: Define a constant for default transparent colour.
uxtheme: Try to avoid TransparentBlt() when possible.
ntdll: Allow sending to port 0 on UDP socket to succeed.
Rémi Bernon (69):
win32u: Only allow a custom visible rect for toplevel windows.
win32u: Add missing thunk lock parameters callback.
opengl32: Add missing WOW64 process_attach unixlib entry.
opengl32: Remove unnecessary function addresses.
winex11: Wrap x11drv_dnd_drop_event params in a struct.
winex11: Wrap x11drv_dnd_enter_event params in a struct.
winex11: Wrap x11drv_dnd_post_drop params in a struct.
winex11: Use a UINT64 for the foreign_window_proc parameter.
winex11: Route kernel callbacks through user32.
mfmediaengine: Remove duplicate classes IDL.
mfplat: Fix pointer dereference when caching buffer data.
win32u: Map window region DPI before calling into the drivers.
win32u: Map window rects DPI before calling into the drivers.
win32u: Move window_surface creation helper to dce.c.
win32u: Implement DPI scaled window surface.
explorer: Use the EnableShell option to show or hide the taskbar.
mfreadwrite: Always try inserting a converter for non-video streams.
winewayland: Require the wp_viewporter protocol.
winewayland: Set the window viewport source rectangle.
winewayland: Create the window surface buffer queue unconditionally.
winewayland: Avoid recreating window surface buffer queues.
mfsrcsnk: Refactor sink class factory helpers.
mfsrcsnk: Register the AVI Byte Stream Handler class.
mfsrcsnk: Register the WAV Byte Stream Handler class.
mfmp4srcsnk: Register the MPEG4 Byte Stream Handler class.
mfasfsrcsnk: Register the Asf Byte Stream Handler class.
mfmp4srcsnk: Register the MP3 and MPEG4 sink factory classes.
winewayland: Remove unnecessary logical to physical DPI mapping.
winex11: Map message pos to physical DPI in move_resize_window.
win32u: Map rect to window DPI in expose_window_surface.
win32u: Pass window_from_point dpi to list_children_from_point.
server: Pass window's per-monitor DPI in set_window_pos.
user32: Move dpiaware_init to SYSPARAMS_Init.
explorer: Make the desktop thread per-monitor DPI aware.
win32u: Stop setting DPI_PER_MONITOR_AWARE by default.
colorcnv: Register the Color Converter DMO class.
msvproc: Register the Video Processor MFT class.
resampledmo: Register the Resampler DMO class.
wmadmod: Register the WMA Decoder DMO class.
msauddecmft: Register the AAC Decoder MFT class.
wmvdecod: Register the WMV Decoder DMO class.
msmpeg2vdec: Register the H264 Decoder MFT class.
mfh264enc: Register the H264 Encoder MFT class.
gitlab: Install FFmpeg development libraries.
winewayland: Post WM_WAYLAND_CONFIGURE outside of the surface lock.
winewayland: Introduce a new ensure_window_surface_contents helper.
winewayland: Introduce a new set_window_surface_contents helper.
winewayland: Introduce a new get_window_surface_contents helper.
winewayland: Reset the buffer damage region immediately after copy.
winewayland: Move window contents buffer to wayland_win_data struct.
winewayland: Get rid of wayland_surface reference from window_surface.
winewayland: Get rid of window_surface reference from wayland_win_data.
winewayland: Introduce a new wayland_client_surface_create helper.
winewayland: Get rid of the window surface individual locks.
include: Declare D3DKMT resource creation functions.
include: Declare D3DKMT keyed mutex creation functions.
include: Declare D3DKMT sync object creation functions.
win32u: Stub D3DKMTShareObjects.
win32u: Stub D3DKMT resource creation functions.
win32u: Stub D3DKMT keyed mutex creation functions.
win32u: Stub D3DKMT sync object creation functions.
quartz: Simplify the filter registration code.
quartz: Move registration code to main.c.
quartz: Register the MPEG1 Splitter class.
quartz: Register the AVI Splitter class.
quartz: Register the WAVE Parser class.
quartz: Register the MPEG Audio Decoder class.
quartz: Register the MPEG Video Decoder class.
l3codecx.ax: Register the MP3 Decoder class.
Sebastian Lackner (1):
packager: Prefer native version.
Sergei Chernyadyev (2):
comctl32/tooltip: Support large standard title icons.
explorer: Support large tooltip icons.
Tim Clem (5):
nsiproxy: Implement TCP table on top of a server call.
nsiproxy: Implement UDP table on top of a server call.
nsiproxy: Remove now unused git_pid_map and find_owning_pid.
iphlpapi/tests: Confirm that GetExtendedTcpTable associates a socket with the correct PID.
iphlpapi/tests: Confirm that GetExtendedUdpTable associates a socket with the correct PID.
Topi-Matti Ritala (1):
po: Update Finnish translation.
Torge Matthies (2):
winemac: Route kernel callbacks through user32.
user32: Remove NtUserDriverCallback* kernel callbacks.
Vibhav Pant (2):
ntoskrnl: Implement IoGetDevicePropertyData().
ntoskrnl/tests: Add test for getting and setting device properties.
Ziqing Hui (4):
mf/tests: Test h264 encoder sample processing.
mf/tests: Test codecapi for h264 encoder.
winegstreamer/video_encoder: Add ICodecAPI stubs.
winegstreamer/video_encoder: Initially implement ProcessOutput.
```
The Wine development release 9.16 is now available.
What's new in this release:
- Initial Driver Store implementation.
- Pbuffer support in the Wayland driver.
- More prototype objects in MSHTML.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.16.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.16/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.16 (total 25):
- #30938 Update a XIM candidate position when cursor location changes
- #37732 Corel Paint Shop Pro X7 Installer fails
- #41607 Piggi 2 Demo version fails to start and throws runtime and fatal error
- #42997 Opera Neon Installation throws backtrace
- #43251 Anarchy Online Login Window Play and Settings button disapper after minimising and maximising window
- #44516 Anarchy Online doesn't start in Windows7 prefix
- #45105 heap-buffer overflow in gdi32 (CVE-2018-12932)
- #45106 OOB write in gdi32 (CVE-2018-12933)
- #45455 Multiple DIFxApp-based USB hardware driver installers fail due to missing 'setupapi.dll.DriverStoreFindDriverPackageW' stub (Cetus3D-Software UP Studio 2.4.x, Plantronics Hub 3.16)
- #46375 Vietcong: game save thumbnails (screenshots) have corrupted colors
- #48521 StaxRip 2.0.6.0 (.NET 4.7 app) reports 'System.ComponentModel.Win32Exception (0x80004005): Invalid function' when converting AVI (PowerRequest stubs need to return success)
- #53839 Anarchy Online (Old Engine) Installer hangs after downloading game files
- #54587 GMG-Vision - ShellExecuteEx failed: Bad EXE format for install.exe.
- #55841 Lotus Approach: print "Properties" button ignored
- #56622 Systray icons now have black background without compositor, and on some panels can be misaligned or don't redraw, becoming invisible
- #56825 Unable to see screen for Harmony Assistant version 9.9.8d (64 bit)
- #56884 FoxitPDFReaderUpdateService shows crash dialog
- #57003 Naver Line tray icon is always gray since 9.13
- #57036 Splashtop RMM client crashes on Wine 9.14
- #57055 Window surfaces are empty
- #57059 Regression - UI broken with winewayland
- #57070 cnc-ddraw OpenGL performance regression in Wine 9.15
- #57071 Incorrect window drawing
- #57073 StaxRip 2.0.6.0 crashes inside gdiplus
- #57083 ClickStamper: stamp circle is missing.
### Changes since 9.15:
```
Aida Jonikienė (1):
win32u: Initialize parent_rect variables in window.c.
Akihiro Sagawa (5):
oleaut32/tests: Add OLE Picture object tests using DIB section.
oleaut32: Convert 32-bit or 16-bit color bitmaps to 24-bit color DIBs when saving.
oleaut32: Initialize reserved members before saving.
gdiplus/metafile: Fix DrawEllipse record size if compressed.
gdiplus/metafile: Fix FillEllipse record size if compressed.
Alex Henrie (3):
rpcrt4/tests: Correct a comment in test_pointer_marshal.
rpcrt4/tests: Test whether Ndr(Get|Free)Buffer calls StubMsg.pfn(Allocate|Free).
rpcrt4/tests: Allocate stub buffers with NdrOleAllocate.
Alexandre Julliard (15):
ntdll: Avoid nested ARM64EC notifications.
ntdll: Support STATUS_EMULATION_SYSCALL exception on ARM64EC.
ntdll: Add a test for BeginSimulation().
wow64: Fetch the initial thread context from the CPU backend.
wow64: Only update necessary registers when raising exceptions.
include: Unify the syscall thunk on x86-64.
include: Clean up formatting of long asm statements.
ntdll: Allocate the ARM64EC code map in high memory.
ntdll: Allocate the x64 context on the asm side of KiUserExceptionDispatcher.
ntdll: Pass the full exception record to virtual_handle_fault().
ntdll: Implement Process/ThreadManageWritesToExecutableMemory.
ntdll: Implement NtSetInformationVirtualMemory(VmPageDirtyStateInformation).
ntdll/tests: Add tests for Process/ThreadManageWritesToExecutableMemory.
ntdll: Read the Chpev2ProcessInfo pointer before accessing the data.
shell32/tests: Delete a left-over file.
Alexandros Frantzis (5):
winewayland: Store all window rects in wayland_win_data.
winewayland: Support WGL_ARB_pbuffer.
winewayland: Support WGL_ARB_render_texture.
winewayland: Advertise pbuffer capable formats.
winewayland: Fix off-by-one error in format check.
Alfred Agrell (2):
mountmgr.sys: Read and use disk label from dbus.
kernelbase: Delete now-inaccurate 'FS volume label not available' message.
Alistair Leslie-Hughes (4):
odbccp32: Support driver config in SQLGet/WritePrivateProfileStringW.
odbccp32: Correctly hanndle ODBC_BOTH_DSN in SQLWritePrivateProfileStringW.
odbccp32: Fall back to ConfigDSN when ConfigDSNW cannot be found.
kernel32: Return a valid handle in PowerCreateRequest.
Anders Kjersem (2):
reg/tests: Wait for process termination.
wscript: Implement Sleep.
Andrey Gusev (1):
wined3d: Fix return for WINED3D_SHADER_RESOURCE_TEXTURE_2DMSARRAY.
Bernhard Übelacker (1):
userenv: Avoid crash in GetUserProfileDirectoryW.
Billy Laws (4):
include: Move arm64ec_shared_info to winternl and point to it in the PEB.
ntdll: Initialize dll search paths before WOW64 init.
ntdll: Call the exception preparation callback on ARM64EC.
configure: Don't use CPPFLAGS for PE cross targets.
Brendan McGrath (3):
mf/tests: Test video processor with 2D buffers.
mf/tests: Test 1D/2D output on 2D buffers.
mf/tests: Test 2D buffers can override stride.
Daniel Lehman (3):
odbc32: Support {}'s in Driver connection string.
msvcr120: Add feholdexcept stub.
msvcr120: Implement feholdexcept.
Danyil Blyschak (4):
win32u: Don't check ansi_cp when adding fallback child font.
win32u: Include Microsoft Sans Serif as a child font.
win32u: Include Tahoma and its linked fonts in child font list.
mlang: Use larger destination buffer with WideCharToMultiByte().
Dmitry Timoshkov (10):
gdiplus: Add a couple of missing gdi_dc_release().
msv1_0: Make buffer large enough to hold NTLM_MAX_BUF bytes of base64 encoded data.
secur32/tests: Don't load secur32.dll dynamically.
secur32/tests: Avoid assigning a 4-byte status to an 1-byte variable.
secur32/tests: Don't use fake user/domain/password in NTLM tests.
secur32/tests: Fix a typo.
secur32/tests: Separate NTLM signature and encryption tests.
secur32/tests: Make NTLM encryption tests work on newer Windows versions.
kernel32/tests: Fix compilation with a PSDK compiler.
kernel32: EnumCalendarInfo() should ignore CAL_RETURN_NUMBER flag.
Elizabeth Figura (17):
widl: Explicitly check for top-level parameters before adding FC_ALLOCED_ON_STACK.
widl: Get rid of the write_embedded_types() helper.
widl: Ignore strings in is_embedded_complex().
widl: Propagate attrs to inner pointer types.
setupapi: Move INF installation functions to devinst.c.
setupapi: Separate a copy_inf() helper.
setupapi: Add an any_version_is_compatible() helper.
setupapi: Implement DriverStoreAddDriverPackage().
setupapi: Implement DriverStoreDeleteDriverPackage().
setupapi: Implement DriverStoreFindDriverPackage().
setupapi: Uninstall from the driver store in SetupUninstallOEMInf().
setupapi: Install to the driver store in SetupCopyOEMInf().
setupapi: Add stub spec entries for DriverStoreEnumDriverPackage().
setupapi/tests: Add Driver Store tests.
winevulkan: Strip the name tail when parsing members.
winevulkan: Add video interfaces.
winevulkan: Fix pointer arithmetic in debug utils callback marshalling.
Eric Pouech (1):
winedump: Get rid of GCC warning.
Esme Povirk (5):
user32: Implement EVENT_OBJECT_STATECHANGE for BM_SETSTYLE.
user32: Implement EVENT_SYSTEM_DIALOGEND.
user32: Implement EVENT_OBJECT_CREATE for listboxes.
user32: Implement EVENT_OBJECT_DESTROY for listboxes.
user32: Implement MSAA events for LB_SETCURSEL.
Etaash Mathamsetty (1):
netapi32: Move some implementations to netutils.
Fabian Maurer (1):
printdlg: Allow button id psh1 for "Properties" button.
Gabriel Ivăncescu (6):
mshtml: Avoid calling remove_target_tasks needlessly.
mshtml: Don't return default ports from location.host in IE10+ modes.
mshtml: Implement EmulateIE* modes for X-UA-Compatible.
mshtml/tests: Accept rare return value from ReportResult on native.
jscript: Don't use call frame for indirect eval calls for storing variables.
jscript: Restrict the allowed escape characters of JSON.parse in html mode.
Hans Leidekker (18):
odbc32: Add locking around driver calls.
odbc32: Remove unused Unix calls.
odbc32: Try the DRIVER attribute if the DSN attribute is missing.
odbc32: Fail freeing an object while child objects are alive.
odbc32: Call the driver function in SQLBindCol().
odbc32: Add support for descriptor handles in SQLGet/SetStmtAttr().
odbc32: Parse incoming connection string in SQLBrowse/DriverConnct().
odbc32: Set win32_funcs on the descriptors returned from SQLGetStmtAttr().
odbc32: Implicit descriptors can be retrieved but not set.
odbc32: Connection string keywords are case insensitive.
odbccp32: Respect config mode in SQLGet/WritePrivateProfileString().
odbccp32: Use wide character string literals.
odbccp32/tests: Get rid of a workaround for XP.
odbccp32: Handle NULL DSN in SQLValidDSN().
odbc32: Handle missing SQLSetConnect/EnvAttr().
odbc32: Set initial login timeout to 15 seconds.
odbc32: Map SQLColAttributes() to SQLColAttribute().
odbc32: Map SQLGetDiagRec() to SQLError().
Ilia Docin (3):
comctl32/tests: Add rebar chevron visibility test.
comctl32/tests: Add LVM_GETNEXTITEM test.
comctl32/listview: Do not return items count on getting next item for last one.
Ivo Ivanov (3):
winebus.sys: Pass each input report regardless of report ID to the pending read IRQ.
winebus.sys: Add devtype parameter to get_device_subsystem_info().
winebus.sys: Read vendor/product/serial strings from the usb subsystem.
Jacek Caban (33):
mshtml: Add support for MSEventObj prototype objects.
mshtml: Add support for Event prototype objects.
mshtml: Add support for UIEvent prototype objects.
mshtml: Add support for mouse event prototype objects.
mshtml: Add support for keyboard event prototype objects.
mshtml: Add support for page transition event prototype objects.
mshtml: Add support for custom event prototype objects.
mshtml: Add support for message event prototype objects.
mshtml: Add support for progress event prototype objects.
mshtml: Add support for storage event prototype objects.
mshtml: Add support for screen prototype objects.
mshtml: Add support for history prototype objects.
mshtml: Add support for plugins collection prototype objects.
mshtml: Add support for MIME types collection prototype objects.
mshtml: Add support for performance timing prototype objects.
mshtml: Add support for performance navigation prototype objects.
mshtml: Add support for performance prototype objects.
mshtml: Add support for namespace collection prototype objects.
mshtml: Add support for console prototype objects.
mshtml: Add support for media query list prototype objects.
mshtml: Add support for client rect list prototype objects.
mshtml: Add support for DOM token list prototype objects.
mshtml: Add support for named node map prototype objects.
mshtml: Add support for element collection prototype objects.
mshtml: Add support for node list prototype objects.
mshtml: Add support for text range prototype objects.
mshtml: Add support for range prototype objects.
mshtml: Add support for selection prototype objects.
mshtml: Increase buffer size in dispex_to_string.
mshtml: Add support for unknown element prototype objects.
mshtml: Add support for comment prototype objects.
mshtml: Add support for attribute prototype objects.
mshtml: Add support for document fragment prototype objects.
Jacob Czekalla (4):
comctl32/tests: Add tests for progress bar states.
comctl32/progress: Add states for progress bar.
comctl32/tests: Add test to check if treeview expansion can be denied.
comctl32/treeview: Allow treeview parent to deny treeview expansion.
Louis Lenders (3):
kernel32: Fake success in PowerCreateRequest.
kernel32: Fake success in PowerSetRequest.
kernel32: Fake success in PowerClearRequest.
Martin Storsjö (1):
ucrtbase: Export powf on i386.
Nikolay Sivov (7):
include: Add IWICStreamProvider definition.
windowscodecs/tests: Add a helper to check for supported interfaces.
windowscodecs/tests: Remove noisy traces from the test stubs.
windowscodecs/tests: Add some tests for IWICStreamProvider interface availability.
windowscodecs/metadata: Add a stub for IWICStreamProvider.
windowscodecs/metadata: Reset the handler on LoadEx(NULL).
windowscodecs/tests: Add some more tests for the IWICStreamProvider methods.
Paul Gofman (25):
qcap/tests: Fix test failure in testsink_Receive() on some hardware.
qcap/tests: Add a test for simultaneous video capture usage.
quartz: Propagate graph start error in MediaControl_Run().
qcap: Delay setting v4l device format until stream start.
gdi32/tests: Add test for Regular TTF with heavy weight.
win32u: Always set weight from OS/2 header in freetype_set_outline_text_metrics().
win32u: Do not embolden heavy weighted fonts.
kernelbase: Better match Windows behaviour in PathCchStripToRoot().
kernelbase: Better match Windows behaviour in PathCchRemoveFileSpec().
kernelbase: Better match Windows behaviour in PathCchIsRoot().
kernelbase: Reimplement PathIsRootA/W() on top of PathCchIsRoot().
kernelbase: Reimplement PathStripToRootA/W() on top of PathCchStripToRoot().
kernelbase: Remimplement PathRemoveFileSpecA/W().
kernelbase/tests: Add more tests for some file manipulation functions.
shell32: Register ShellItem coclass.
include: Add some shell copy engine related constants.
shell32/tests: Add tests for IFileOperation_MoveItem.
shell32/tests: Add tests for IFileOperation_MoveItem notifications.
shell32: Implement file_operation_[Un]Advise().
shell32: Store operation requested in file_operation_MoveItem().
shell32: Partially implement MoveItem file operation execution.
shell32: Implement directory merge for MoveItem.
shell32: Support sink notifications for file MoveItem operation.
ws2_32/tests: Test UDP broadcast without SO_BROADCAST.
server: Support IPV4 UDP broadcast on connected socket without SO_BROADCAST.
Piotr Caban (6):
ntdll: Accept UNC paths in LdrGetDllPath.
ntdll: Accept UNC paths in LdrAddDllDirectory.
msi: Fix msi_add_string signature.
msi: Fix row index calculation when stringtable contains empty slots.
vcruntime140_1: Handle empty catchblock type_info in validate_cxx_function_descr4.
vcruntime140_1: Store exception record in ExceptionInformation[6] during unwinding.
Rozhuk Ivan (1):
wineoss: Store the OSS device in midi_dest.
Rémi Bernon (59):
win32u: Don't request a host window surface for child windows.
win32u: Avoid crashing with nulldrv when creating offscreen surface.
mfplat/tests: Add more tests for MFCreateMediaBufferFromMediaType.
mfplat: Implement MFCreateMediaBufferFromMediaType for video formats.
mf/tests: Cleanup the video processor test list.
win32u: Introduce a new window rects structure.
win32u: Use window_rects struct in set_window_pos.
win32u: Use window_rects struct in update_window_state.
win32u: Use window_rects struct in NtUserCreateWindowEx.
win32u: Pass a window_rects struct to calc_winpos helper.
winex11: Check whether the window surface needs to be re-created.
win32u: Fix CreateWindowSurface call when updating layered surfaces.
winex11: Avoid moving embedded windows in the systray dock.
winex11: Don't call X11DRV_SET_DRAWABLE with invalid drawable.
win32u: Split driver side window bits move to a separate entry.
win32u: Use window_rects structs in apply_window_pos.
win32u: Pass window_rects structs to create_window_surface.
win32u: Pass a window_rects struct to WindowPosChanged driver entry.
win32u: Pass a window_rects struct to WindowPosChanging driver entry.
win32u: Pass a window_rects struct to MoveWindowBits driver entry.
win32u: Introduce new get_(client|window)_rect_rel helpers.
win32u: Pass a window_rects struct from get_window_rects helper.
win32u: Pass a window_rects struct to calc_ncsize helper.
win32u: Keep a window_rects struct in the WND structure.
winebus.sys: Always parse uevent PRODUCT= line on input subsystem.
mfplat/tests: Add missing todo_wine for MFCreateMediaBufferFromMediaType.
mf/tests: Load MFCreateMediaBufferFromMediaType dynamically.
win32u: Get visible and client rects in parent-relative coordinates.
winex11: Discard previous surface when window is directly drawn to.
win32u: Flush window surface after UpdateLayeredWindow.
winex11: Remove now unnecessary window surface flushes.
winemac: Remove unused unminimized window surface.
winemac: Remove unnecessary window surface invalidation.
winex11: Fix the exposed window surface region combination.
win32u: Introduce a new NtUserExposeWindowSurface call.
wineandroid: Remove now unnecessary window surface pointer.
winemac: Remove now unnecessary window surface pointer.
winex11: Remove now unnecessary window surface pointer.
win32u: Allocate and initialize window surface in window_surface_create.
wineandroid: Keep a window_rects struct in the driver window data.
winemac: Remove unnecessary window data rects update.
winemac: Keep a window_rects struct in the driver window data.
winemac: Use the window rects to convert host visible to window rect.
winemac: Use the window rects to convert window to host visible rect.
win32u: Keep SetIMECompositionWindowPos with other IME entries.
winex11: Keep a window_rects struct in the driver window data.
winex11: Use the driver rects to convert from host visible to window rect.
winemac: Return a macdrv_window_features from get_cocoa_window_features.
win32u: Move visible rect computation out of the drivers.
win32u: Move the "Decorated" driver registry option out of the drivers.
mfplat: Add MFCreateLegacyMediaBufferOnMFMediaBuffer stub.
mfplat/tests: Test MFCreateLegacyMediaBufferOnMFMediaBuffer.
mfplat: Implement MFCreateLegacyMediaBufferOnMFMediaBuffer.
user32: Pass a free_icon_params struct to User16CallFreeIcon.
user32: Pass a thunk_lock_params struct to User16ThunkLock.
user32: Introduce a generic KeUserDispatchCallback kernel callback.
user16: Use NtUserDispatchCallback instead of User16ThunkLock.
winevulkan: Route kernel callbacks through user32.
opengl32: Route kernel callbacks through user32.
Sven Püschel (11):
dssenh/tests: Remove skipping sign tests.
dssenh/tests: Remove unnecessary verify test cases.
dssenh/tests: Move test loop out of sub function.
dssenh/tests: Remove redundant hash test.
dssenh: Finish hash in the SignHash function.
dssenh/tests: Fix signLen usage.
dssenh/tests: Set 0xdeadbeef last error before function execution.
dssenh/tests: Remove redundant signature verification.
dssenh/tests: Separate the public key export from the signhash test.
dssenh/tests: Add test for VerifySignatureA.
dssenh: Swap the endianness of the signature.
Tim Clem (1):
winemac.drv: Better detect whether to unminimize a window when the app becomes active.
Tom Helander (4):
httpapi: Add tests for HttpResponseSendEntityBody.
http.sys: Skip clean up if HTTP_SEND_RESPONSE_FLAG_MORE_DATA is set.
httpapi: Handle HTTP_SEND_RESPONSE_FLAG_MORE_DATA flag.
httpapi: Implement HttpSendResponseEntityBody.
Torge Matthies (1):
wineandroid: Route kernel callbacks through user32.
Zhiyi Zhang (6):
riched20: Release IME input context when done using it.
user32/tests: Add more display DC bitmap tests.
win32u: Use a full size bitmap for display device contexts.
win32u: Support setting host IME composition window position for ImmSetCompositionWindow().
win32u: Set host IME composition window position in set_caret_pos().
win32u: Set host IME composition window position in NtUserShowCaret().
```
The Wine development release 9.15 is now available.
What's new in this release:
- Prototype and constructor objects in MSHTML.
- More support for ODBC Windows drivers.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.15.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.15/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.15 (total 18):
- #35991 WinProladder v3.x crashes during 'PLC connect check' (async event poll worker writes to user event mask buffer whose lifetime is limited)
- #39513 Desperados: input lag after resuming from pause
- #51704 Final Fantasy XI Online: Short Freezes / Stutters Every Second
- #53531 FTDI Vinculum II IDE gets "Out of memory" error on startup
- #54861 UK's Kalender: Crashes when adding or changing event category - comctl32 related
- #56140 ListView with a custom column sorter produces wrong results
- #56494 Splashtop RMM v3.6.6.0 crashes
- #56811 Jade Empire configuration tool fails to show up (only in virtual desktop mode)
- #56984 Star Wars: Knights of the Old Republic (Steam, GOG): broken rendering when soft shadows enabled
- #56989 Doom 3: BFG Edition fails to start in virtual desktop
- #56993 Can not change desktop window resolution (pixel size)
- #57005 Wine segfaults on macOS when run from install
- #57008 _fdopen(0) does not return stdin after it was closed
- #57012 Astra 2 needs kernel32.SetFirmwareEnvironmentVariableA
- #57026 compile_commands.json change causes segmentation faults when running configure.
- #57028 LTSpice will not print with WINE 9.xx on Ubuntu 24.04
- #57033 ChessBase 17 crashes after splash screen again
- #57042 rsaenh RSAENH_CPDecrypt crashes when an application tries to decrypt an empty string
### Changes since 9.14:
```
Alex Henrie (2):
atl: Correct comment above AtlModuleRegisterTypeLib function.
atl: Only warn in AtlModuleGetClassObject if the class was not found.
Alexandre Julliard (2):
makedep: Don't add empty cflags to a compile command.
dnsapi/tests: Update tests for winehq.org DNS changes.
Alistair Leslie-Hughes (2):
include: Add *_SHIFT macros.
include: Forward declare all gdiplus classes.
Billy Laws (1):
configure: Test PE compilers after setting their target argument.
Brendan Shanks (5):
include: Ensure that x86_64 syscall thunks have a consistent length when built with Clang.
ntdll: Use environ/_NSGetEnviron() directly rather than caching it in main_envp.
ntdll: Use _NSGetEnviron() instead of environ when spawning the server on macOS.
msv1_0: Use _NSGetEnviron() instead of environ on macOS.
mmdevapi: Remove unused critical section from MMDevice.
Connor McAdams (9):
d3dx9/tests: Add tests for D3DXLoadSurfaceFromMemory() with a multisampled surface.
d3dx9: Return success in D3DXLoadSurfaceFromMemory() for multisampled destination surfaces.
d3dx9: Return failure from D3DXLoadSurfaceFromMemory() if d3dx_load_pixels_from_pixels() fails.
d3dx9/tests: Add d3dx filter argument value tests.
d3dx9: Introduce helper function for retrieving the mip filter value in texture from file functions.
d3dx9: Further validate filter argument passed to D3DXFilterTexture().
d3dx9: Validate filter argument in D3DXLoadVolumeFrom{Volume,FileInMemory,Memory}().
d3dx9: Validate filter argument in D3DXLoadSurfaceFrom{Surface,FileInMemory,Memory}().
d3dx9: Validate filter argument in texture from file functions.
Dmitry Timoshkov (1):
sechost: Check both lpServiceName and lpServiceProc for NULL in StartServiceCtrlDispatcher().
Elizabeth Figura (14):
wined3d: Invalidate push constant flags only for the primary stateblock.
wined3d: Feed the material through a push constant buffer.
wined3d: Move get_projection_matrix() to glsl_shader.c.
wined3d: Feed the projection matrix through a push constant buffer.
wined3d: Do not use the normal or modelview matrices when drawing pretransformed vertices.
wined3d: Feed modelview matrices through a push constant buffer.
wined3d: Pass d3d_info and stream_info pointers to wined3d_ffp_get_[vf]s_settings().
wined3d: Feed the precomputed normal matrix through a push constant buffer.
wined3d: Store the normal matrix as a struct wined3d_matrix.
wined3d: Hardcode 1.0 point size for shader model >= 4.
wined3d: Feed point scale constants through a push constant buffer.
d3d9/tests: Test position attribute W when using the FFP.
wined3d: Use 1.0 for position W when using the FFP.
d3d9/tests: Add comprehensive fog tests.
Eric Pouech (1):
cmd: Fix test failures for SET /P command.
Esme Povirk (6):
comctl32: Handle WM_GETOBJECT in tab control.
gdi32: Fix out-of-bounds write in EMR_ALPHABLEND handling.
win32u: Implement EVENT_SYSTEM_CAPTURESTART/END.
user32: Implement EVENT_OBJECT_STATECHANGE for BST_PUSHED.
user32: Implement EVENT_OBJECT_STATECHANGE for BM_SETCHECK.
gdi32: Bounds check EMF handle tables.
Fabian Maurer (5):
kernel32: Add SetFirmwareEnvironmentVariableA stub.
odbc32: In get_drivers prevent memory leak in error case (coverity).
odbc32: In get_drivers simplify loop condition.
iphlpapi: Add stub for SetCurrentThreadCompartmentId.
win32u: Remove superflous null check (coverity).
Gabriel Ivăncescu (1):
jscript: Implement arguments.caller.
Gerald Pfeifer (1):
nsiproxy.sys: Fix the build on non-Apple, non-Linux systems.
Hans Leidekker (25):
odbc32: Forward SQLGetConnectAttr() to the Unicode version if needed.
odbc32: Forward SQLGetConnectOption() to the Unicode version if needed.
odbc32: Forward SQLGetCursorName() to the Unicode version if needed.
odbc32: Forward SQLGetDescField() to the Unicode version if needed.
odbc32: Forward SQLGetDescRec() to the Unicode version if needed.
odbc32: Forward SQLGetDescField() to the Unicode version if needed.
odbc32: Forward SQLGetInfo() to the Unicode version if needed.
odbc32: Forward SQLGetStmtAttr() to the Unicode version if needed.
odbc32: Forward SQLGetTypeInfo() to the Unicode version if needed.
odbc32: Forward SQLNativeSql() to the Unicode version if needed.
odbc32: Forward SQLPrepare() to the Unicode version if needed.
odbc32: Forward SQLPrimaryKeys() to the Unicode version if needed.
odbc32: Forward SQLProcedureColumns() to the Unicode version if needed.
odbc32: Forward SQLProcedures() to the Unicode version if needed.
odbc32: Make the driver loader thread-safe.
odbc32: Return an error when a required driver entry point is missing.
odbc32: Forward SQLSetConnectAttr() to the Unicode version if needed.
odbc32: Forward SQLSetConnectOption() to the Unicode version if needed.
odbc32: Forward SQLSetCursorName() to the Unicode version if needed.
odbc32: Forward SQLSetDescField() to the Unicode version if needed.
odbc32: Forward SQLSetStmtAttr() to the Unicode version if needed.
odbc32: Forward SQLSpecialColumns() to the Unicode version if needed.
odbc32: Forward SQLStatistics() to the Unicode version if needed.
odbc32: Forward SQLTablePrivileges() to the Unicode version if needed.
odbc32: Forward SQLTables() to the Unicode version if needed.
Herman Semenov (1):
gdiplus: Fixed order of adding offset and result ternary operator.
Jacek Caban (83):
mshtml: Use dispex_next_id in NextProperty implementation.
jscript: Ensure that external property is still valid in jsdisp_next_prop.
mshtml: Use host object script bindings for storage objects.
mshtml: Use host object script bindings for frame elements.
mshtml: Use host object script bindings for iframe elements.
mshtml: Introduce get_outer_iface and use it instead of get_dispatch_this.
jscript: Allow host objects to specify an outer interface.
mshtml: Return E_UNEXPECTED for unknown ids in JSDispatchHost_CallFunction.
mshtml: Use get_prop_descs for window object.
mshtml: Use host object script bindings for Window object.
mshtml: Introduce get_script_global and use it instead of get_compat_mode.
mshtml: Use HTMLPluginContainer for DispatchEx functions in object element.
mshtml: Store property name in HTMLPluginContainer.
mshtml: Use host object script bindings for object elements.
mshtml: Use host object script bindings for select elements.
mshtml: Use host object script bindings for HTMLRect.
mshtml: Use host object script bindings for DOMTokenList.
mshtml: Use dispex_index_prop_desc for HTMLFiltersCollection.
mshtml: Use host object script bindings for HTMLAttributeCollection.
mshtml: Use dispex_index_prop_desc for HTMLElementCollection.
mshtml: Use host object script bindings for HTMLDOMChildrenCollection.
mshtml: Use host object script bindings for HTMLStyleSheetsCollection.
mshtml: Use host object script bindings for HTMLStyleSheet.
mshtml: Use host object script bindings for HTMLStyleSheetRulesCollection.
mshtml: Use host object script bindings for HTMLStyleSheetRule.
mshtml: Use get_prop_desc for legacy function object implementation.
mshtml: Use host object script bindings for style objects.
mshtml: Add initial constructor implementation.
mshtml: Store vtbl in dispex_data_t.
mshtml: Split ensure_dispex_info.
mshtml: Factor out init_dispatch_from_desc.
mshtml: Add initial support for MSHTML prototype objects.
mshtml: Don't expose prototype properties directly from object instances.
mshtml: Store name in dispex_data_t.
mshtml: Use proper prototype names.
jscript: Allow using MSHTML constructors in instanceof expressions.
maintainers: Remove shdocvw from WebBrowser control section.
mshtml: Add support for navigator prototype objects.
mshtml: Add support for HTMLBodyElement object.
mshtml: Add initial support for prototype chains.
mshtml: Add support for Element and Node prototype objects.
mshtml: Add support for Storage prototype objects.
mshtml: Add support for document prototype objects.
mshtml: Add support for window prototype objects.
include: Always declare _setjmp in setjmp.h on i386 targets.
mshtml: Add support for image element prototype objects.
jscript: Introduce HostConstructor function type.
mshtml: Use host constructor script bindings for Image constructor object.
mshtml: Use host constructor script bindings for XMLHttpRequest constructor object.
mshtml: Add support for option element prototype objects.
mshtml: Use host object script bindings for Option constructor object.
mshtml: Add support for MutationObserver consturctor and prototype objects.
include: Add DECLSPEC_CHPE_PATCHABLE definition.
mshtml/tests: Use winetest.js helpers in xhr.js.
mshtml: Add support for anchor element prototype objects.
mshtml: Add support for area element prototype objects.
mshtml: Add support for form element prototype objects.
mshtml: Add support for frame elements prototype objects.
mshtml: Add support for head elements prototype objects.
mshtml: Add support for input elements prototype objects.
mshtml: Add support for link element prototype objects.
mshtml: Add support for object and embed element prototype objects.
mshtml: Add support for script element prototype objects.
mshtml: Add support for select element prototype objects.
mshtml: Add support for style element prototype objects.
mshtml: Add support for table and tr element prototype objects.
mshtml: Add support for td element prototype objects.
mshtml: Add support for textarea element prototype objects.
mshtml: Add support for svg element prototype objects.
mshtml: Add support for circle SVG element prototype objects.
mshtml: Add support for tspan SVG element prototype objects.
mshtml: Add support for document type node prototype objects.
mshtml: Add support for text node prototype objects.
mshtml: Get object name from its ID when possible.
mshtml: Add support for computed style prototype objects.
mshtml: Add support for style prototype objects.
mshtml: Add support for current style prototype objects.
mshtml: Add support for style sheet prototype objects.
mshtml: Add support for style sheet list prototype objects.
mshtml: Add support for CSS rule list prototype objects.
mshtml: Add support for CSS rule prototype objects.
mshtml: Add support for rect prototype objects.
mshtml: Make mutation_observer_ctor_dispex_vtbl const.
Jacob Czekalla (6):
comctl32/tests: Add test for listview sorting order.
comctl32: Fix sorting for listview.
comctl32/tests: Add test for propsheet page creation when propsheet gets initialized.
comctl32/propsheet: Create pages with PSP_PREMATURE on initialization.
comctl32/tests: Add test for PSN_QUERYINITIALFOCUS for the propsheet.
comctl32: Add handling for PSN_QUERYINITIALFOCUS in prop.c.
Jactry Zeng (1):
ntdll: Try to use page size from host_page_size() for macOS.
Jakub Petrzilka (1):
rsaenh: Don't crash when decrypting empty strings.
Kieran Geary (1):
shell32: Make SHGetStockIconInfo() attempt to set icon.
Martino Fontana (2):
dinput/tests: Update tests for DIPROP_SCANCODE.
dinput: Implement DIPROP_SCANCODE.
Matteo Bruni (1):
d3dx9: Don't silently ignore d3dx_calculate_pixel_size() errors.
Matthias Gorzellik (3):
hidparse: Pre-process descriptor to find TLCs.
winebus: Store pending reads per report-id.
hidclass: Create a child PDO for each HID TLC.
Nikolay Sivov (3):
d3dx9/effect: Document one remaining header field.
d3dx9/tests: Add some tests for D3DXEFFECT_DESC fields.
d3dx9/effect: Return creator string from GetDesc().
Paul Gofman (11):
nsiproxy.sys: Only get owning pid when needed in udp_endpoint_enumerate_all().
mmdevapi: Return stub interface from ASM_GetSessionEnumerator().
mmdevapi: Add implementation for IAudioSessionEnumerator.
mmdevapi/tests: Add test for IAudioSessionEnumerator.
ntdll: Stub NtQuerySystemInformation[Ex]( SystemProcessorIdleCycleTimeInformation ).
kernel32: Implement QueryIdleProcessorCycleTime[Ex]().
ntdll: Implement NtQuerySystemInformationEx( SystemProcessorIdleCycleTimeInformation ) on Linux.
ntdll: Raise exception on failed CS wait.
mmdevapi: Unlock session in create_session_enumerator().
mmdevapi: Implement control_GetSessionIdentifier().
mmdevapi: Implement control_GetSessionInstanceIdentifier().
Piotr Caban (4):
msvcrt: Reuse standard streams after they are closed.
ntdll: Optimize NtReadVirtualMemory for in-process reads.
kernel32/tests: Test ReadProcessMemory on PAGE_NOACCESS memory.
wineps.drv: Fix EMR_SETPIXELV record playback.
Rémi Bernon (27):
win32u: Simplify offscreen surface previous surface reuse check.
winex11: Rely on win32u previous surface reuse.
wineandroid: Rely on win32u previous surface reuse.
winewayland: Rely on win32u previous surface reuse.
winemac: Remove unnecessary old window surface bounds copy.
winemac: Rely on win32u previous surface reuse.
win32u: Avoid sending WM_PAINT to layered window surfaces.
win32u: Merge drivers CreateLayeredWindow with CreateWindowSurface.
dinput/tests: Add more tests reading multiple TLCs reports.
hidparse: Use ExFreePool to free preparsed data.
hidclass: Keep HID device desc on the FDO device.
hidclass: Start PDO thread in IRP_MN_START_DEVICE.
hidclass: Allocate child PDOs array dynamically.
win32u: Force updating the display cache when virtual desktop state changes.
hidclass: Use poll_interval == 0 for non-polled devices.
hidclass: Read reports with the largest input report size over TLCs.
hidclass: Use a single lock for PDO queues and removed flag.
hidclass: Pass HIDP_DEVICE_DESC to find_report_with_type_and_id.
hidclass: Start the HID device thread with the FDO.
win32u: Always use the dummy surface if a surface isn't needed.
win32u: Fix a typo in read_source_from_registry.
win32u: Always enumerate the primary source first.
win32u: Remove unnecessary UpdateLayeredWindow driver entry args.
wineandroid: Remove now unnecessary WindowPosChanging checks.
winemac: Remove now unnecessary WindowPosChanging checks.
winewayland: Remove now unnecessary WindowPosChanging checks.
winex11: Remove now unnecessary WindowPosChanging checks.
Spencer Wallace (2):
shell32/tests: Add tests for moving dir(s) to destination(s) with conflicting dir.
shell32: Fix FO_MOVE when destination has conflicting directory.
Sven Baars (1):
ntdll: Use the module debug channel in virtual_map_builtin_module().
Vijay Kiran Kamuju (4):
include: Add more Task Scheduler Trigger interface definitions.
include: Add ISessionStateChangeTrigger declaration.
include: Added IEventTrigger declaration.
include: Add gdiplus effect parameter structs.
Ziqing Hui (14):
propsys: Add stubs for variant conversion functions.
propsys/tests: Add tests for VariantToPropVariant.
propsys: Initially implement VariantToPropVariant.
include: Fix name of CODECAPI_AVDecVideoAcceleration_H264.
include: Add video encoder statistical guids.
include: Add video encoder header guids.
include: Add video encoder chroma defines.
include: Add video encoder color defines.
include: Add video encode guids.
include: Add video encoder max guids.
include: Add video encoder inverse telecine guids.
include: Add video encoder source defines.
include: Add more video encoder codec api guids.
winegstreamer/quartz_parser: Handle 0 size in read_thread.
Đorđe Mančić (1):
kernelbase: Implement GetTempPath2A() and GetTempPath2W().
```
The Wine development release 9.14 is now available.
What's new in this release:
- Mailslots reimplemented using server-side I/O.
- More support for ODBC Windows drivers.
- Still more user32 data structures in shared memory.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.14.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.14/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.14 (total 20):
- #11268 Civilization I for Windows (16-bt) incorrectly displays some dialogues
- #32679 cmd.exe Add support for || and &&
- #48167 1000 Mots V4.0.2 freeze when 3 words are pronounced - Underrun of data
- #48455 Multiple .inf driver installers hang due to missing handling of architecture-specific SourceDisks{Names,Files} .inf sections (Native Instruments Native Access 1.9, WinCDEmu 4.1)
- #49944 Multiple games fail to detect audio device (Tom Clancy's Splinter Cell: Conviction, I Am Alive)
- #50231 Ys: Origin shows black screen during video playback
- #54735 AOL (America Online) Desktop Beta fails when installing .net 4.8
- #54788 AOL 5.0 Installation fails
- #55662 Different behaviour of "set" command
- #55798 Unreal Engine 5.2: Wine minidumps take hours to load into a debugger
- #56751 New WoW64 compilation fails on Ubuntu Bionic
- #56861 Background color of selected items in ListView(or ListCtrl) is white
- #56954 Regression causes wine to generate ntlm_auth <defunct> processes
- #56956 MSVC cl.exe 19.* fails to flush intermediate file
- #56957 CEF application (BSG Launcher) freezes on mouse hover action
- #56958 ChessBase 17 crashes after splash screen
- #56969 Act of War (Direct Action, High Treason) crashes in wined3d when loading the mission
- #56972 Warlords III: Darklords Rising shows empty screen in virtual desktop
- #56977 accept()-ed socket fds are never marked as cacheable
- #56994 mbstowcs for UTF8, with an exact (not overallocated) output buffer size fails
### Changes since 9.13:
```
Alex Henrie (1):
shell32: Put temp directory in %LOCALAPPDATA%\Temp by default.
Alexandre Julliard (3):
ntdll: Implement KiUserEmulationDispatcher on ARM64EC.
urlmon/tests: Fix a test that fails after WineHQ updates.
ntdll: Always clear xstate flag on collided unwind.
Alexandros Frantzis (2):
winex11: Query proper GLX attribute for pbuffer bit.
opengl32: Fix match criteria for WGL_DRAW_TO_PBUFFER_ARB.
Alistair Leslie-Hughes (5):
odbc32: Handle NULL handles in SQLError/W.
odbc32: Fake success for SQL_ATTR_CONNECTION_POOLING in SQLSetEnvAttr.
odbc32: Handle NULL EnvironmentHandle in SQLTransact.
msado15: Fake success in _Recordset::CancelUpdate.
msado15: Report we support all options in _Recordset::Supports.
Arkadiusz Hiler (1):
ntdll: Use the correct io callback when writing to a socket.
Billy Laws (1):
ntdll: Map PSTATE.SS to the x86 trap flag on ARM64EC.
Biswapriyo Nath (1):
include: Fix return type of IXAudio2MasteringVoice::GetChannelMask in xaudio2.idl.
Brendan Shanks (1):
wine.inf: Don't register wineqtdecoder.dll.
Connor McAdams (14):
d3d9/tests: Add tests for IDirect3DDevice9::UpdateSurface() with a multisampled surface.
d3d9: Return failure if a multisampled surface is passed to IDirect3DDevice9::UpdateSurface().
ddraw/tests: Add tests for preserving d3d scene state during primary surface creation.
d3d9/tests: Add a test for device reset after beginning a scene.
d3d8/tests: Add a test for device reset after beginning a scene.
wined3d: Clear scene state on device state reset.
d3dx9/tests: Make some test structures static const.
d3dx9/tests: Reorder test structure members.
d3dx9/tests: Add more D3DXCreateCubeTextureFromFileInMemory{Ex}() tests.
d3dx9: Refactor texture creation and cleanup in D3DXCreateCubeTextureFromFileInMemoryEx().
d3dx9: Cleanup texture value argument handling in D3DXCreateCubeTextureFromFileInMemoryEx().
d3dx9: Use d3dx_image structure inside of D3DXCreateCubeTextureFromFileInMemoryEx().
d3dx9: Add support for specifying which array layer to get pixel data from to d3dx_image_get_pixels().
d3dx9: Add support for loading non-square cubemap DDS files into cube textures.
Daniel Lehman (3):
odbc32: Handle NULL attribute in SQLColAttribute[W].
odbc32: Return success for handled attributes in SQLSetConnectAttrW.
mshtml: Add application/pdf MIME type.
Dmitry Timoshkov (3):
odbc32: Correct 'WINAPI' placement for function pointers.
light.msstyles: Use slightly darker color for GrayText to make text more readable.
dwrite: Return correct rendering and gridfit modes from ::GetRecommendedRenderingMode().
Elizabeth Figura (32):
setupapi/tests: Add more tests for SetupGetSourceFileLocation().
setupapi: Correctly interpret the INFCONTEXT parameter in SetupGetSourceFileLocation().
setupapi: Return the file's relative path from SetupGetSourceFileLocation().
setupapi: Use SetupGetIntField() in SetupGetSourceFileLocation().
ddraw: Call wined3d_stateblock_texture_changed() when the color key changes.
wined3d: Store all light constants in a separate structure.
wined3d: Store the cosines of the light angle in struct wined3d_light_constants.
wined3d: Feed light constants through a push constant buffer.
wined3d: Sort light constants by type.
wined3d: Transform light coordinates by the view matrix in wined3d_device_apply_stateblock().
setupapi: Use SetupGetSourceFileLocation() in get_source_info().
setupapi: Use SetupGetSourceInfo() in get_source_info().
setupapi/tests: Test installing an INF file with architecture-specific SourceDisks* sections.
setupapi: Fix testing for a non-empty string in get_source_info().
ntoskrnl/tests: Remove unnecessary bits from add_file_to_catalog().
setupapi/tests: Make function pointers static.
setupapi/tests: Move SetupCopyOEMInf() tests to devinst.c.
setupapi/tests: Use a randomly generated directory and hardcoded file paths in test_copy_oem_inf().
setupapi/tests: Use a signed catalog file in test_copy_oem_inf().
wined3d: Avoid division by zero in wined3d_format_get_float_color_key().
wined3d: Don't bother updating the colour key if the texture doesn't have WINED3D_CKEY_SRC_BLT.
wined3d: Move clip plane constant loading to shader_glsl_load_constants().
wined3d: Correct clip planes for the view transform in wined3d_device_apply_stateblock().
wined3d: Pass stream info to get_texture_matrix().
wined3d: Do not use the texture matrices when drawing pretransformed vertices.
wined3d: Feed texture matrices through a push constant buffer.
server: Make pipe ends FD_TYPE_DEVICE.
kernel32/tests: Add more mailslot tests.
server: Treat completion with error before async_handoff() as error.
ntdll: Respect the "options" argument to NtCreateMailslotFile.
server: Reimplement mailslots using server-side I/O.
ntdll: Stub NtQueryInformationToken(TokenUIAccess).
Eric Pouech (20):
winedump: Protect against corrupt minidump files.
winedump: Dump comment streams in minidump.
cmd: Add success/failure tests for pipes and drive change.
cmd: Set success/failure for change drive command.
cmd: Run pipe LHS & RHS outside of any batch context.
cmd: Better test error handling for pipes.
cmd: Enhance CHOICE arguement parsing.
cmd: Implement timeout support in CHOICE command.
include/mscvpdb.h: Use flexible array members for all trailing array fields.
include/msvcpdb.h: Use flexible array members for codeview_fieldtype union.
include/mscvpdb.h: Use flexible array members for codeview_symbol union.
include/mscvpdb.h: Use flexible array members for codeview_type with variable.
include/mscvpdb.h: Use flexible array members for the rest of structures.
cmd: Some tests about tampering with current batch file.
cmd: Link env_stack to running context.
cmd: Split WCMD_batch() in two functions.
cmd: Introduce helpers to find a label.
cmd: No longer pass a HANDLE to WCMD_ReadAndParseLine.
cmd: Save and restore file position from BATCH_CONTEXT.
cmd: Don't keep batch file opened.
Esme Povirk (3):
win32u: Implement EVENT_OBJECT_DESTROY.
win32u: Implement EVENT_OBJECT_STATECHANGE for WS_DISABLED.
win32u: Implement EVENT_OBJECT_VALUECHANGE for scrollbars.
Fabian Maurer (1):
ntdll: Prevent double close in error case (coverity).
Fan WenJie (1):
win32u: Fix incorrect comparison in add_virtual_modes.
Francisco Casas (2):
quartz: Emit FIXME when the rendering surface is smaller than the source in VMR9.
quartz: Properly copy data to render surfaces of planar formats in VMR9.
François Gouget (1):
wineboot: Downgrade the wineprefix update message to a trace.
Gabriel Ivăncescu (11):
mshtml: Make sure we aren't detached before setting interactive ready state.
jscript: Make JS_COUNT_OPERATION a no-op.
mshtml: Implement event.cancelBubble.
mshtml: Implement HTMLEventObj's cancelBubble on top of the underlying event's cancelBubble.
mshtml: Fix special case between stopImmediatePropagation and setting cancelBubble to false.
mshtml: Use bitfields for the event BOOL fields.
mshtml: Don't use -moz prefix for box-sizing CSS property.
mshtml/tests: Add more tests with invalid CSS props for (get|set)PropertyValue.
mshtml: Compactify the style_props expose tests for each style object into a single function.
mshtml: Implement style msTransition.
mshtml: Implement style msTransform.
Hans Leidekker (27):
odbc32: Fix a couple of spec file entries.
odbc32: Use LoadLibraryExW() instead of LoadLibraryW().
odbc32: Forward SQLDriverConnect() to the Unicode version if needed.
odbc32: Forward SQLGetDiagRec() to the Unicode version if needed.
odbc32: Forward SQLBrowseConnect() to the Unicode version if needed.
odbc32: Forward SQLColAttributes() to the Unicode version if needed.
odbc32: Forward SQLColAttribute() to the Unicode version if needed.
odbc32: Properly handle string length in traces.
winhttp/tests: Mark a test as broken on old Windows versions.
winhttp/tests: Fix test failures introduced by the server upgrade.
odbc32: Forward SQLColumnPrivileges() to the Unicode version if needed.
odbc32: Forward SQLColumns() to the Unicode version if needed.
odbc32: Forward SQLConnect() to the Unicode version if needed.
odbc32: Forward SQLDescribeCol() to the Unicode version if needed.
odbc32: Forward SQLError() to the Unicode version if needed.
odbc32: Handle missing Unicode driver entry points.
odbc32: Forward SQLExecDirect() to the Unicode version if needed.
odbc32: Forward SQLForeignKeys() to the Unicode version if needed.
odbc32: Avoid a clang warning.
odbc32: Get rid of the wrappers for SQLGetDiagRecA() and SQLDataSourcesA().
odbc32/tests: Add tests for SQLTransact().
odbc32: Fix setting the Driver registry value.
odbc32: Find the driver filename through the ODBCINST.INI key.
secur32: Handle GNUTLS_MAC_AEAD.
secur32/tests: Switch to TLS 1.2 for connections to test.winehq.org.
winhttp/tests: Mark more test results as broken on old Windows versions.
secur32/tests: Mark some test results as broken on old Windows versions.
Herman Semenov (3):
dbghelp: Fix misprint access to struct with invalid case.
dplayx: Fix check structure before copy.
gdiplus: Fixed order of adding offset and result ternary operator.
Jacek Caban (32):
mshtml: Use host object script bindings for Attr class.
mshtml: Use host object script bindings for event objects.
mshtml: Use host object script bindings for PluginArray class.
mshtml: Use host object script bindings for MimeTypeArray class.
mshtml: Use host object script bindings for MSNamespaceInfoCollection class.
mshtml: Use host object script bindings for MSEventObj class.
mshtml: Use host object script bindings for XMLHttpRequest class.
mshtml: Directly use dispex_prop_put and dispex_prop_get in HTMLElement implementation.
mshtml: Factor out dispex_next_id.
mshtml: Don't use BSTR in find_dispid.
mshtml: Don't use BSTR in lookup_dispid.
mshtml: Don't use BSTR in get_dispid.
mshtml: Factor out dispex_get_id.
mshtml: Use dispex_prop_put in HTMLDOMAttribute_put_nodeValue.
mshtml: Factor out dispex_prop_name.
jscript: Check if PROP_DELETED is actually an external property in find_prop_name.
mshtml: Use host object script bindings for DOM nodes.
mshtml: Use dispex_get_id in JSDispatchHost_LookupProperty.
mshtml: Introduce get_prop_desc call.
mshtml: Use host object script bindings for HTMLRectCollection.
jscript: Make sure to use the right name for a prototype reference in find_prop_name_prot.
jscript: Fixup prototype references as part of lookup.
jscript: Use a dedicated jsclass_t entry for host objects.
jscript: Improve invoke_prop_func error handling.
mshtml: Explicitly specify case insensitive search in GetIDsOfNames.
jscript: Treat external properties as volatile.
jscript: Suport deleting host object properties.
jscript: Support configuring host properties.
jscript: Allow host objects to implement fdexNameEnsure.
mshtml: Use host object script bindings for HTMLFormElement.
mshtml: Use ensure_real_info in dispex_compat_mode.
mshtml: Use host object script bindings for document nodes.
Jinoh Kang (1):
server: Mark the socket as cacheable when it is an accepted or accepted-into socket.
Nikolay Sivov (2):
winhttp/tests: Add some more tests for string options in WinHttpQueryOption().
winhttp: Handle exact buffer length match in WinHttpQueryOption().
Paul Gofman (2):
mshtml: Check get_document_node() result in get_node().
dxdiagn: Fill szHardwareId for sound render devices.
Piotr Caban (4):
ucrtbase: Fix mbstowcs on UTF8 strings.
msvcrt: Use thread-safe functions in _ctime64_s.
msvcrt: Use thread-safe functions in _ctime32_s.
msvcrt: Don't access input string after NULL-byte in mbstowcs.
Rémi Bernon (16):
ddraw/tests: Make sure the window is restored after some minimize tests.
winex11: Reset empty window shape even without a window surface.
server: Expose the thread input keystate through shared memory.
win32u: Introduce a new NtUserGetAsyncKeyboardState call.
win32u: Use the thread input shared memory in GetKeyboardState.
win32u: Use the desktop shared memory in get_async_keyboard_state.
server: Make the get_key_state request key code mandatory.
server: Expose the thread input keystate lock through shared memory.
win32u: Use the thread input shared memory for GetKeyState.
winemac: Use window surface shape for color key transparency.
winemac: Use window surface shape for window shape region.
winevulkan: Fix incorrect 32->64 conversion of debug callbacks.
winevulkan: Use integer types in debug callbacks parameter structs.
winevulkan: Serialize debug callbacks parameter structures.
opengl32: Use integer types in debug callbacks parameter structs.
opengl32: Serialize debug callbacks message string.
Santino Mazza (1):
gdiplus: Support string alignment in GdipMeasureString.
Tim Clem (2):
nsiproxy.sys: Use the pcblist64 sysctl to enumerate TCP connections on macOS.
nsiproxy.sys: Use the pcblist64 sysctl to enumerate UDP connections on macOS.
Vijay Kiran Kamuju (1):
cmd: Do not set enviroment variable when no input is provided by set /p command.
Zhiyi Zhang (3):
light.msstyles: Add Explorer::ListView subclass.
comctl32/tests: Add more treeview background tests.
comctl32/treeview: Use window color to fill background.
Ziqing Hui (5):
include: Add encoder codec type guids.
include: Add encoder common format guids.
include: Add encoder common attribute defines.
include: Add H264 encoder attribute guids.
include: Add video encoder output frame rate defines.
```
The Wine development release 9.13 is now available.
What's new in this release:
- Support for loading ODBC Windows drivers.
- More user32 data structures in shared memory.
- More rewriting of the CMD.EXE engine.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.13.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.13/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.13 (total 22):
- #21344 Buffer overflow in WCMD_run_program
- #35163 Victoria 2: A House Divided crashes on start with built-in quartz
- #39206 Lylian demo hangs after intro video
- #44315 Buffer maps cause CPU-GPU synchronization (Guild Wars 2, The Witcher 3)
- #44888 Wrong texture in Assassin's Creed : Revelations
- #45810 WINEPATH maximums
- #52345 Unclosed right-side double quote in if command breaks wine cmd
- #52346 Filename completion is not supported in cmd
- #54246 Full Metal Daemon Muramasa stuck at black screen at boot
- #54499 Native ODBC drivers should be able be used.
- #54575 False positive detection of mmc reader as hard drive since kernel 6.1
- #55130 IF EXIST fails when its argument ends on a slash
- #55401 CMD 'for loop' params are not recognized
- #56575 CUERipper 2.2.5 Crashes on loading WMA plugin
- #56600 MEGA TECH Faktura Small Business: Access violation in module kernelbase.dll
- #56617 Photoshop CC 2024: crashes after a short period (Unimplemented function NETAPI32.dll.NetGetAadJoinInformation)
- #56882 ConEmu errors: Injecting hooks failed
- #56895 So Blonde (demo): font display bug (regression)
- #56938 msiexec crashes with stack overflow when installing python 3.11+ dev.msi
- #56945 Multiple UI elements in builtin programs is missing (taskbar in Virtual Desktop, right-click menu in RegEdit)
- #56948 Intel Hardware Accelerated Execution Manager needs unimplemented function ntoskrnl.exe.KeQueryGroupAffinity
- #56952 PS installer crashes inside msi (regression)
### Changes since 9.12:
```
Alex Henrie (11):
msi: Initialize size argument to RegGetValueW.
shell32: Pass size in bytes to RegGetValueW.
twinapi.appcore: Initialize size argument to RegGetValueW.
mscoree: Pass size in bytes to RegGetValueW.
wineboot: Correct size argument to SetupDiSetDeviceRegistryPropertyA.
advapi32/tests: Test RegGetValue[AW] null termination.
advapi32/tests: Drop security test workarounds for Windows <= 2000.
windowscodecs: Use RegQueryValueExW in ComponentInfo_GetStringValue.
kernelbase: Ensure null termination in RegGetValue[AW].
ntdll: Double-null-terminate registry multi-strings in RtlQueryRegistryValues.
ntdll/tests: Remove unused WINE_TODO_DATA flag.
Alexandre Julliard (26):
kernelbase: Mask extra protection flags in WriteProcessMemory.
wow64: Call pre- and post- memory notifications also in the current process case.
wow64: Add more cross-process notifications.
ntdll/tests: Add tests for in-process memory notifications on ARM64.
wow64: Add a helper to get the 32-bit TEB.
ntdll: Always set the dll name pointer in the 32-bit TEB.
wow64: Fix NtMapViewOfSection CPU backend notifications.
wow64: Add NtReadFile CPU backend notifications.
wow64cpu: Simplify the Unix call thunk.
xtajit64: Add stub dll.
ntdll: Load xtajit64.dll on ARM64EC.
ntdll/tests: Add some tests for xtajit64.
ntdll: Create the cross-process work list at startup on ARM64EC.
ntdll: Support the ARM64EC work list in RtlOpenCrossProcessEmulatorWorkConnection.
ntdll: Call the processor information callback on ARM64EC.
ntdll: Load the processor features from the emulator on ARM64EC.
ntdll: Call the flush instruction cache callback on ARM64EC.
ntdll: Call the memory allocation callbacks on ARM64EC.
ntdll: Call the section map callbacks on ARM64EC.
ntdll: Call the read file callback on ARM64EC.
ntdll: Implement ProcessPendingCrossProcessEmulatorWork on ARM64EC.
wininet/tests: Update issuer check for winehq.org certificate.
wow64: Fix prototype for the NtTerminateThread CPU backend notification.
wow64: Add NtTerminateProcess CPU backend notifications.
ntdll: Call the terminate thread callback on ARM64EC.
ntdll: Call the terminate process callback on ARM64EC.
Alexandros Frantzis (4):
opengl32: Add default implementation for wglChoosePixelFormatARB.
winex11: Remove driver wglChoosePixelFormatARB implementation.
winewayland: Support WGL_ARB_pixel_format.
winewayland: Support WGL_ARB_pixel_format_float.
Alfred Agrell (10):
include: Fix typo in DXGI_DEBUG_APP.
include: Fix typo in IID_IDWriteStringList.
include: Fix typo in IID_IAudioLoudness.
include: Fix typo in GUID_DEVCLASS_1394DEBUG.
include: Fix typo in IID_IRemoteDebugApplication.
include: Fix typos in MF_MT_VIDEO_3D and MF_MT_AUDIO_FOLDDOWN_MATRIX.
include: Fix typos in IID_IMimeWebDocument and IID_IMimeMessageCallback.
include: Fix typos in IID_IPropertyEnumType2 and CLSID_PropertySystem.
include: Fix typo in MEDIASUBTYPE_P408.
include: Fix typo in CLSID_WICXMPMetadataReader.
Austin English (2):
netapi32: Add NetGetAadJoinInformation stub.
ntoskrnl.exe: Add a stub for KeQueryGroupAffinity.
Biswapriyo Nath (5):
include: Add flags for ID3D11ShaderReflection::GetRequiresFlags method in d3d11shader.h.
include: Add macros for d3d12 shader version in d3d12shader.idl.
include: Add new names in D3D_NAME enum in d3dcommon.idl.
include: Fix typo with XINPUT_DEVSUBTYPE_FLIGHT_STICK name in xinput.h.
include: Fix typo with X3DAUDIO_EMITTER structure in x3daudio.h.
Brendan McGrath (3):
winegstreamer: Use process affinity to calculate thread_count.
winegstreamer: Use thread_count to determine 'max-threads' value.
winegstreamer: Set 'max_threads' to 4 for 32-bit processors.
Connor McAdams (14):
d3dx9/tests: Move the images used across multiple test files into a shared header.
d3dx9/tests: Add more D3DXLoadVolumeFromFileInMemory() tests.
d3dx9: Use shared code in D3DXLoadVolumeFromFileInMemory().
d3dx9/tests: Add more tests for D3DXCreateVolumeTextureFromFileInMemoryEx().
d3dx9: Refactor texture creation and cleanup in D3DXCreateVolumeTextureFromFileInMemoryEx().
d3dx9: Cleanup texture value argument handling in D3DXCreateVolumeTextureFromFileInMemoryEx().
d3dx9: Use d3dx_image structure inside of D3DXCreateVolumeTextureFromFileInMemoryEx().
d3dx9: Add support for mipmap generation to D3DXCreateVolumeTextureFromFileInMemoryEx().
d3dx9/tests: Add tests for DDS skip mip level bits.
d3dx9: Apply the DDS skip mip level bitmask.
d3dx9/tests: Add more DDS header tests for volume texture files.
d3dx9: Check the proper flag for DDS files representing a volume texture.
d3dx9/tests: Add more DDS header tests for cube texture files.
d3dx9: Return failure if a cubemap DDS file does not contain all faces.
Dmitry Timoshkov (3):
msv1_0: Add support for SECPKG_CRED_BOTH.
kerberos: Add support for SECPKG_CRED_BOTH.
crypt32: Make CertFindCertificateInStore(CERT_FIND_ISSUER_NAME) work.
Elizabeth Figura (19):
d3dcompiler/tests: Use the correct interfaces for some COM calls.
mfplat/tests: Use the correct interfaces for some COM calls.
d3dx9: Use the correct interfaces for some COM calls.
d3dx9/tests: Define COBJMACROS.
mfplat/tests: Add more tests for compressed formats.
winegstreamer: Check the version before calling wg_format_from_caps_video_mpeg1().
winegstreamer: Implement MPEG-4 audio to wg_format conversion.
winegstreamer: Implement H.264 to wg_format conversion.
winegstreamer: Implement H.264 to IMFMediaType conversion.
winegstreamer: Implement AAC to IMFMediaType conversion.
winegstreamer: Implement WMV to IMFMediaType conversion.
winegstreamer: Implement WMA to IMFMediaType conversion.
winegstreamer: Implement MPEG-1 audio to IMFMediaType conversion.
wined3d: Invalidate the FFP VS when diffuse presence changes.
wined3d: Destroy the push constant buffers on device reset.
wined3d: Feed the fragment part of WINED3D_RS_SPECULARENABLE through a push constant buffer.
wined3d: Feed the FFP color key through a push constant buffer.
wined3d: Reorder light application in wined3d_device_apply_stateblock().
wined3d: Feed WINED3D_RS_AMBIENT through a push constant buffer.
Eric Pouech (49):
cmd: Add success/failure tests for file related commands.
cmd: Set success/failure return code for TYPE command.
cmd: Set success/failure return code DELETE command.
cmd: Set success/failure return code for MOVE command.
cmd: Set success/failure return code for RENAME command.
cmd: Set success/failure return code for COPY command.
cmd: Add success/failure tests for dir related commands.
cmd: Add success/failure return code for MKDIR/MD commands.
cmd: Set success/failure return code for CD command.
cmd: Set success/failure return code for DIR command.
cmd: Set success/failure return code for PUSHD command.
cmd: Add some more tests for success/failure.
cmd: Return tri-state for WCMD_ReadParseLine().
cmd: Improve return code / errorlevel handling.
cmd: Set success/failure return_code for POPD command.
cmd: Set success/failure return code for RMDIR/RD command.
cmd: Don't set ERRORLEVEL in case of redirection error.
cmd/tests: Test success / failure for more commands.
cmd: Set success/failure return code for SETLOCAL/ENDLOCAL commands.
cmd: Set success/failure return code for DATE/TIME commands.
cmd: Set success/failure return code for VER command.
cmd: Set success/failure return code for VERIFY command.
cmd: Set success/failure return code for VOL command.
cmd: Set success/failure return code for LABEL command.
cmd/tests: Add more tests for success/failure.
cmd: Set success/failure return code of PATH command.
cmd: Set success/failure return code for SET command.
cmd: Set success/failure return code for ASSOC,FTYPE commands.
cmd: Set success/failure return code for SHIFT command.
cmd: Set success/failure return code for HELP commands.
cmd: Set success/failure return_code for PROMPT command.
cmd: Add tests for screen/interactive builtin commands.
cmd: Set success/failure return code for CLS command.
cmd: Set success/failure return code for COLOR command.
cmd: Set success/failure return code for TITLE command.
cmd: Use the correct output handle in pipe command.
cmd: Set success/failure return code for CHOICE command.
cmd: Set success/failure return code for MORE command.
cmd: Set success/failure return code for PAUSE command.
cmd: Get rid of CTTY command.
cmd: Add more tests for return codes in builtin commands.
cmd: Set success/failure return code for MKLINK command.
cmd: Set success/failure return code for START command.
cmd: Move empty batch command handling to WCMD_batch() callers.
cmd: Improve return code/errorlevel support for external commands.
cmd: Cleanup transition bits.
cmd: Get rid for CMD_COMMAND structure.
cmd: When parsing, dispose created objects on error path.
cmd: Fix a couple of issues with redirections.
Fabian Maurer (6):
cmd: Close file opened with popen with correct function (coverity).
mlang/tests: Add test for GetGlobalFontLinkObject allowing IID_IMultiLanguage2.
mlang/tests: Add tests showing which interface is returned by GetGlobalFontLinkObject.
mlang: Return the correct interface in GetGlobalFontLinkObject.
d3dx9: Remove superflous nullcheck (coverity).
msv1_0: Set mode in ntlm_check_version.
Hans Leidekker (25):
msi: Avoid infinite recursion while processing the DrLocator table.
odbc32: Turn SQLBindParam() into a stub.
odbc32: Replicate Unix data sources to the ODBC Data Sources key.
odbc32: Reimplement SQLDrivers() using registry functions.
odbc32: Reimplement SQLDataSources() using registry functions.
odbc32: Introduce a Windows driver loader and forward a couple of functions.
odbc32: Forward more functions to the Windows driver.
odbc32: Forward yet more functions to the Windows driver.
odbc32: Forward the remaining functions to the Windows driver.
odbc32/tests: Add tests.
msi: Handle failure from MSI_RecordGetInteger().
msi: Load DrLocator table in ITERATE_AppSearch().
winhttp: Implement WinHttpQueryOption(WINHTTP_OPTION_URL).
odbc32: Implement SQLSetEnvAttr(SQL_ATTR_ODBC_VERSION).
odbc32: Implement SQLGet/SetConnectAttr(SQL_ATTR_LOGIN_TIMEOUT).
odbc32: Implement SQLGet/SetConnectAttr(SQL_ATTR_CONNECTION_TIMEOUT).
odbc32: Stub SQLGetEnvAttr(SQL_ATTR_CONNECTION_POOLING).
odbc32: Handle options in SQLFreeStmt().
odbc32: Default to ODBC version 2.
odbc32: Implement SQLGetInfo(SQL_ODBC_VER).
odbc32: Factor out helpers to create driver environment and connection handles.
odbc32: Accept SQL_FETCH_NEXT in SQLDataSources/Drivers() if the key has not been opened.
odbc32: Set parent functions before creating the environment handle.
odbc32: Use SQLFreeHandle() instead of SQLFreeEnv/Connect().
odbc32: Use SQLSetConnectAttrW() instead of SQLSetConnectAttr() if possible.
Ilia Docin (1):
comctl32/rebar: Hide chevron if rebar's band is resized back to full size with gripper.
Jacek Caban (38):
jscript: Factor out find_external_prop.
jscript: Rename PROP_IDX to PROP_EXTERN.
jscript: Introduce lookup_prop callback.
jscript: Factor out lookup_dispex_prop.
jscript: Introduce next_property callback.
jscript: Factor out handle_dispatch_exception.
jscript: Use to_disp in a few more places.
mshtml: Factor out dispex_prop_put.
mshtml: Factor out dispex_prop_get.
mshtml: Factor out dispex_prop_call.
jscript: Allow objects to have their own addref and release implementation.
jscript: Introduce IWineJSDispatch insterface.
mshtml: Allow external properties to have arbitrary names.
jscript: Introduce HostObject implementation.
jscript: Support converting host objects to string.
jscript: Support host objects in disp_cmp.
jscript: Use jsdisp_t internally for host objects that support it.
mshtml: Implement jscript IWineJSDispatchHost.
mshtml: Pass an optional script global window to init_dispatch.
mshtml: Support using IWineJSDispatch for DispatchEx implementation.
mshtml: Use IWineJSDispatch for screen object script bindings.
jscript: Factor out native_function_string.
jscript: Add support for host functions.
mshtml/tests: Make todo_wine explicit in builtin_toString tests.
mshtml: Use host object script bindings for DOMImplementation class.
mshtml: Use host object script bindings for History class.
mshtml: Use host object script bindings for PerformanceNavigation class.
mshtml: Use host object script bindings for PerformanceTiming class.
mshtml: Use host object script bindings for Performance class.
mshtml: Store document node instead of GeckoBrowser in DOMImplementation.
mshtml/tests: Add script context test.
mshtml: Store script global object pointer in document object.
mshtml: Use host object script bindings for MediaQueryList class.
mshtml: Use host object script bindings for Navigator class.
mshtml: Use host object script bindings for Selection class.
mshtml: Use host object script bindings for TextRange class.
mshtml: Use host object script bindings for Range class.
mshtml: Use host object script bindings for Console class.
Marc-Aurel Zent (4):
ntdll: Prefer futex for thread-ID alerts over kqueue.
ntdll: Use USE_FUTEX to indicate futex support.
ntdll: Simplify futex interface from futex_wake() to futex_wake_one().
ntdll: Implement futex_wait() and futex_wake_one() on macOS.
Matthias Gorzellik (2):
winebus.sys: Fix rotation for angles < 90deg.
winebus.sys: Align logical max of angles to physical max defined in dinput.
Mohamad Al-Jaf (7):
include: Add windows.data.json.idl file.
windows.web: Add stub DLL.
windows.web: Implement IActivationFactory::ActivateInstance().
include: Add IJsonValueStatics interface definition.
windows.web: Add IJsonValueStatics stub interface.
windows.web/tests: Add IJsonValueStatics::CreateStringValue() tests.
windows.web: Implement IJsonValueStatics::CreateStringValue().
Nikolay Sivov (2):
winhttp/tests: Add some tests for querying string options with NULL buffer.
winhttp: Fix error handling when returning string options.
Paul Gofman (14):
ntdll: Report the space completely outside of reserved areas as allocated on i386.
psapi/tests: Add tests for QueryWorkingSetEx() with multiple addresses.
ntdll: Validate length in get_working_set_ex().
ntdll: Factor OS-specific parts out of get_working_set_ex().
ntdll: Iterate views instead of requested addresses in get_working_set_ex().
ntdll: Limit vprot scan range to the needed interval in get_working_set_ex().
ntdll: Fill range of output in fill_working_set_info().
ntdll: Buffer pagemap reads in fill_working_set_info().
winhttp/tests: Add test for trailing spaces in reply header.
winhttp: Construct raw header from the parse result in read_reply().
winhttp: Skip trailing spaces in reply header names.
win32u: Use FT_LOAD_PEDANTIC on first load try in freetype_get_glyph_outline().
ntdll: Better track thread pool wait's wait_pending state.
ntdll: Make sure wakeups from already unset events are ignored in waitqueue_thread_proc().
Piotr Caban (9):
ucrtbase: Store exception record in ExceptionInformation[6] during unwinding.
xcopy: Exit after displaying help message.
xcopy: Exit on invalid command line argument.
xcopy: Strip quotes only from source and destination arguments.
xcopy: Introduce get_arg helper that duplicates first argument to new string.
xcopy: Handle switch options concatenated with path.
xcopy: Add support for parsing concatenated switches.
kernel32/tests: Fix CompareStringW test crash when linguistic compressions are used.
ucrtbase: Fix FILE no buffering flag value.
Rémi Bernon (60):
server: Move thread message queue masks to the shared mapping.
win32u: Read the thread message queue masks from the shared memory.
server: Move thread message queue bits to the shared mapping.
win32u: Use the thread message queue shared memory in get_input_state.
win32u: Use the thread message queue shared memory in NtUserGetQueueStatus.
win32u: Use the thread message queue shared memory in wait_message_reply.
mf/session: Don't update transform output type if not needed.
mf/session: Implement D3D device manager propagation.
winegstreamer: Translate GstCaps directly to MFVIDEOFORMAT / WAVEFORMATEX in wg_transform.
winegstreamer: Translate MFVIDEOFORMAT / WAVEFORMATEX directly to GstCaps in wg_transform.
winegstreamer: Create transforms from MFVIDEOFORMAT / WAVEFORMATEX.
winegstreamer: Only use pool and set buffer meta for raw video frames.
winegstreamer: Use a new wg_video_buffer_pool class to add buffer meta.
winegstreamer: Keep the input caps on the transform.
winegstreamer: Use video info stride in buffer meta rather than videoflip.
winegstreamer: Normalize both input and output media types stride at once.
winegstreamer: Normalize video processor and color converter apertures.
winegstreamer: Respect video format padding for input buffers too.
server: Move the desktop flags to the shared memory.
win32u: Use the shared memory to read the desktop flags.
server: Create a thread input shared mapping.
server: Move active window to input shared memory.
server: Move focus window to input shared memory.
server: Move capture window to input shared memory.
server: Move caret window and rect to input shared memory.
win32u: Use input shared memory for NtUserGetGUIThreadInfo.
win32u: Move offscreen window surface creation fallback.
win32u: Split a new create_window_surface helper from apply_window_pos.
win32u: Pass the window surface rect for CreateLayeredWindow.
win32u: Pass whether window is shaped to drivers WindowPosChanging.
win32u: Introduce a new window surface helper to set window shape.
win32u: Use a 1bpp bitmap to store the window surface shape bits.
win32u: Update the window surface shape with color key and alpha.
win32u: Pass the shape bitmap info and bits to window_surface flush.
mfreadwrite/reader: Look for a matching output type if setting it failed.
winex11: Reset window shape whenever window surface is created.
mf/tests: Remove static specifier on variables referencing other variables.
win32u: Allocate heap in peek_message only when necessary.
win32u: Use the thread message queue shared memory in peek_message.
win32u: Simplify the logic for driver messages polling.
ddraw/tests: Make sure the window is restored after some minimize tests.
ddraw/tests: Flush messages and X11 events between some tests.
server: Add a foreground flag to the thread input shared memory.
server: Add cursor handle and count to desktop shared memory.
win32u: Use the thread input shared memory for NtUserGetForegroundWindow.
win32u: Use the thread input shared memory for NtUserGetCursorInfo.
win32u: Use the thread input shared memory for NtUserGetGUIThreadInfo.
server: Use a shared_object_t for the dummy object.
win32u: Check the surface layered nature when reusing window surface.
win32u: Update the window state when WS_EX_LAYERED window style changes.
win32u: Update the layered surface attributes in apply_window_pos.
winex11: Rely on win32u layered window surface attribute updates.
wineandroid: Rely on win32u layered window surface attribute updates.
winemac: Rely on win32u layered window surface attribute updates.
winegstreamer/video_decoder: Generate timestamps relative to the first input sample.
mfreadwrite/reader: Send MFT_MESSAGE_NOTIFY_START_OF_STREAM on start or seek.
mf/tests: Reduce the mute threshold for the transform tests.
win32u: Fix initial value when checking whether WS_EX_LAYERED changes.
win32u: Use the dummy surface for empty layered window surfaces.
maintainers: Remove MF GStreamer section.
Shaun Ren (1):
dinput: Call handle_foreground_lost() synchronously in cbt_hook_proc().
Stefan Dösinger (1):
ddraw: Set dwMaxVertexCount to 2048.
Zhiyi Zhang (1):
winemac.drv: Remove the clear OpenGL views to black hack.
Ziqing Hui (18):
winegstreamer/video_encoder: Implement GetInputAvailableType.
winegstreamer/video_encoder: Implement SetInputType.
winegstreamer/video_encoder: Implement GetInputCurrentType.
mf/tests: Add more tests for h264 encoder type attributes.
winegstreamer/video_encoder: Introduce create_input_type.
winegstreamer/video_encoder: Check more attributes in SetInputType.
winegstreamer/video_encoder: Implement GetInputStreamInfo.
winegstreamer/video_encoder: Implement GetOutputStreamInfo.
winegstreamer/video_encoder: Rename create_input_type to video_encoder_create_input_type.
winegstreamer/video_encoder: Clear input type when setting output type.
winegstreamer/video_encoder: Create wg_transform.
winegstreamer/video_encoder: Implement ProcessInput.
winegstreamer/video_encoder: Implement ProcessMessage.
winegstreamer/video_encoder: Use MF_ATTRIBUTES_MATCH_INTERSECTION to compare input type.
winegstreamer/video_encoder: Set output info cbSize in SetOutputType.
winegstreamer/wg_transform: Introduce transform_create_decoder_elements.
winegstreamer/wg_transform: Introduce transform_create_converter_elements.
winegstreamer/wg_transform: Support creating encoder transform.
```
The Wine development release 9.12 is now available.
What's new in this release:
- Initial support for user32 data structures in shared memory.
- Mono engine updated to version 9.2.0.
- Rewrite of the CMD.EXE engine.
- Fixed handling of async I/O status in new WoW64 mode.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.12.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.12/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.12 (total 24):
- #43337 Conditional command with parentheses not working.
- #44063 Parentheses cause cmd.exe failing to recognize '2>&1'
- #47071 Nest or mixed "FOR" and "IF" command sometimes get different result in Wine and Windows.
- #47798 Incorrect substring result using enableDelayedExpansion
- #49993 CUERipper 2.1.x does not work with Wine-Mono
- #50723 Can't recognize ... as an internal or external command, or batch script
- #52344 Can't substitute variables as a command
- #52879 ESET SysInspector 1.4.2.0 crashes on unimplemented function wevtapi.dll.EvtCreateRenderContext
- #53190 cmd.exe incorrectly parses a line with nested if commands
- #54935 Rewrite (VN): black screen videos with WMP backend and gstreamer
- #55947 Serial port event waits should use async I/O
- #56189 quartz:vmr7 - test_default_presenter_allocate() fails on Windows 7
- #56389 Assassin's Creed & Assassin's Creed: Revelations do not run under new WoW64
- #56698 SuddenStrike 3 crashes when opening the intro movie
- #56763 Firefox 126.0.1 crashes on startup
- #56769 Death to Spies: intro videos have audio only but no video
- #56771 Receiving mail in BeckyInternetMail freezes
- #56827 Window borders disappear
- #56836 Assassin's Creed III stuck on loading screen (Vulkan renderer)
- #56838 FL Studio 21 gui problem
- #56839 App packager from Windows SDK (MakeAppx.exe) 'pack' command crashes due to unimplemented functions in ntdll.dll
- #56840 Apps don't launch with wayland driver
- #56841 virtual desktop "explorer.exe /desktop=shell,1920x1080" broken
- #56871 The 32-bit wpcap program is working abnormally
### Changes since 9.11:
```
Aida Jonikienė (1):
ntdll: Fix params_mask type in NtRaiseHardError().
Alex Henrie (6):
ntdll: Fix multi-string callbacks in RtlQueryRegistryValues.
ntdll: Double-null-terminate multi-strings when using RTL_QUERY_REGISTRY_DIRECT.
ntdll: Fix handling of non-string types with RTL_QUERY_REGISTRY_DIRECT.
ntdll: Don't write partial strings with RTL_QUERY_REGISTRY_DIRECT.
ntdll: Fix type and size of expanded strings in RtlQueryRegistryValues.
ntdll: Don't special-case default values in RtlQueryRegistryValues.
Alexandre Julliard (28):
ntdll/tests: Add test for cross-process notifications on ARM64EC.
kernel32/tests: Add some tests for WriteProcessMemory/NtWriteVirtualMemory.
kernelbase: Make memory writable in WriteProcessMemory if necessary.
kernelbase: Send cross process notifications in WriteProcessMemory on ARM64.
kernelbase: Send cross process notifications in FlushInstructionCache on ARM64.
kernelbase: Don't use WRITECOPY protection on anonymous mappings.
ntdll: Add helper macros to define syscalls on ARM64EC.
ntdll: Send cross-process notification in memory functions on ARM64EC.
ntdll: Fix the fake 32-bit %cs value on ARM64EC.
ntdll: Don't set the TEB ExceptionList to -1 on 64-bit.
ntdll: Simplify preloader execution using HAVE_WINE_PRELOADER.
ntdll: Export a proper function for RtlGetNativeSystemInformation.
ntdll: Move RtlIsProcessorFeaturePresent implementation to the CPU backends.
ntdll: Move the IP string conversion functions to rtlstr.c.
makedep: Add a helper to get a root-relative directory path.
makefiles: Hardcode the fonts directory.
makefiles: Hardcode the nls directory.
makefiles: Hardcode the dll directory.
makefiles: Generate rules to build makedep.
tools: Add helper functions to get the standard directories.
ntdll: Build relative paths at run-time instead of depending on makedep.
loader: Build relative paths at run-time instead of depending on makedep.
server: Build relative paths at run-time instead of depending on makedep.
makefiles: No longer ignore makedep.c.
configure: Disable non-PE import libraries if compiler support is missing.
makedep: Remove the -R option.
makedep: Generate rules for make depend.
makedep: Generate a compile_commands.json file.
Alexandros Frantzis (5):
opengl32: Add default implementation for wglGetPixelFormatAttribivARB.
opengl32: Add default implementation for wglGetPixelFormatAttribfvARB.
winex11: Update describe_pixel_format coding style.
winex11: Pass wgl_pixel_format to describe_pixel_format.
winex11: Use default wglGetPixelFormatAttribivARB implementation.
Alfred Agrell (10):
quartz: Implement AMT/WMT differences for WMV media type.
winegstreamer: Implement AM_MEDIA_TYPE to wg_format converter for Cinepak video.
winegstreamer: Make AVI splitter use end of previous frame if the current frame doesn't have a timestamp.
quartz/tests: Add Cinepak test to avi splitter.
iccvid: Reject unsupported output types.
msvfw32/tests: Test that Cinepak rejects unsupported output types.
quartz: Allow concurrent calls to AVI decoder qc_Notify and Receive.
quartz/tests: Test that avi_decompressor_source_qc_Notify does not deadlock if called from a foreign thread during IMemInput_Receive.
winegstreamer: Recalculate alignment and bytes per second, instead of copying from input.
mf/tests: Clobber the alignment and bytes per second, to test if the DMO fixes it.
Alistair Leslie-Hughes (11):
oledb32: Support multiple values when parsing the property Mode.
oledb32: When creating a Data Source, handle non fatal errors.
msado15: Use the correct version when loading the typelib.
odbccp32: Look at the Setup key to find the driver of ODBC config functions.
odbccp32: SQLConfigDataSource/W fix crash with passed NULL attribute parameter.
msado15: Implement _Recordset get/put CacheSize.
msado15: Implement _Recordset get/put MaxRecords.
msado15: Support interface ADOCommandConstruction in _Command.
msado15: Implement _Command::get_Parameters.
msado15: Implement Parameters interface.
msado15: Implement _Command::CreateParameter.
Arkadiusz Hiler (2):
bcp47langs: Add stub dll.
apisetschema: Add api-ms-win-appmodel-runtime-internal-l1-1-1.
Aurimas Fišeras (3):
po: Update Lithuanian translation.
po: Update Lithuanian translation.
po: Update Lithuanian translation.
Biswapriyo Nath (6):
include: Add Windows.Graphics.Capture.IGraphicsCaptureSession2 definition.
include: Add Windows.Graphics.Capture.IGraphicsCaptureSession3 definition.
include: Add windows.graphics.idl file.
include: Add Windows.Graphics.Capture.GraphicsCaptureItem runtimeclass.
include: Add Windows.Graphics.Capture.Direct3D11CaptureFrame runtimeclass.
include: Add Windows.Graphics.Capture.Direct3D11CaptureFramePool runtimeclass.
Brendan McGrath (3):
mf/tests: Add additional tests for MESessionClosed event.
mf: Handle MediaSession Close when state is SESSION_STATE_RESTARTING_SOURCES.
mf: Handle an error during Media Session Close.
Brendan Shanks (9):
dbghelp: Add ARM/ARM64 machine types for Mach-O.
ntdll: Make __wine_syscall_dispatcher_return a separate function to fix Xcode 16 build errors.
configure: Don't build wineloader on macOS with '-pie'.
configure: Remove warning when not using preloader on macOS.
configure: Rename wine_can_build_preloader to wine_use_preloader, and also use it for Linux.
configure: Define HAVE_WINE_PRELOADER when the preloader is being built.
loader: Use zerofill sections instead of preloader on macOS when building with Xcode 15.3.
winemac.drv: Fix warning in [WineWindow grabDockIconSnapshotFromWindow:force:].
winemac.drv: Fix warning in [WineContentView viewWillDraw].
Connor McAdams (8):
d3dx9/tests: Add tests for the source info argument of D3DXCreateTextureFromFileInMemoryEx().
d3dx9/tests: Add more tests for loading files with multiple mip levels into textures.
d3dx9: Refactor texture creation and cleanup in D3DXCreateTextureFromFileInMemoryEx().
d3dx9: Use d3dx_image structure inside of D3DXCreateTextureFromFileInMemoryEx().
d3dx9: Use struct volume inside of struct d3dx_image for storing dimensions.
d3dx9: Add support for specifying a starting mip level when initializing a d3dx_image structure.
d3dx9: Cleanup texture value argument handling in D3DXCreateTextureFromFileInMemoryEx().
d3dx9: Add support for specifying which mip level to get pixel data from to d3dx_image_get_pixels().
Daniel Lehman (3):
odbc32: Handle both directions for SQLBindParameter().
odbc32: Numeric attribute pointer may be null if not a numeric type in SQLColAttribute().
odbc32: StrLen_or_Ind passed to SQLBindCol can be NULL.
Danyil Blyschak (1):
gdi32/uniscribe: Ensure the cache is initialised.
Davide Beatrici (7):
mmdevapi: Set the default period to a minimum of 10 ms.
winepulse: Don't set a floor for the period(s).
mmdevapi: Return errors early in adjust_timing().
mmdevapi: Introduce helper stream_init().
mmdevapi: Complete IAudioClient3_InitializeSharedAudioStream.
mmdevapi: Complete IAudioClient3_GetSharedModeEnginePeriod.
mmdevapi: Implement IAudioClient3_GetCurrentSharedModeEnginePeriod.
Elizabeth Figura (41):
server: Check for an existing serial wait ioctl within the ioctl handler.
server: Directly wake up wait asyncs when the serial mask changes.
ntdll/tests: Use NtReadFile to test WoW64 IOSB handling.
ntdll/tests: Test IOSB handling for a synchronous write which cannot be satisfied immediately.
ntdll/tests: Test IOSB handling with NtFlushBuffersFile.
maintainers: Remove myself as a winegstreamer maintainer.
ntdll: Remove the redundant filling of the IOSB in NtDeviceIoControlFile().
ntdll: Do not fill the IOSB or signal completion on failure in cdrom_DeviceIoControl().
ntdll: Do not fill the IOSB or signal completion on failure in serial_DeviceIoControl().
ntdll: Do not fill the IOSB or signal completion on failure in tape_DeviceIoControl().
ntdll: Do not fill the IOSB in NtFsControlFile() on failure.
ntdll: Do not queue an IOCP packet in complete_async() if an APC routine is specified.
ntdll: Move complete_async() to file.c and use it in NtWriteFileGather().
ntdll: Use file_complete_async() in tape_DeviceIoControl().
ntdll: Use file_complete_async() in cdrom_DeviceIoControl().
ntdll: Use file_complete_async() in serial_DeviceIoControl().
ntdll: Use file_complete_async() in NtFsControlFile().
quartz/tests: Handle the case where ddraw returns system memory.
ntdll: Do not set io->Status at the end of sock_ioctl().
ntdll: Factor filling the IOSB into set_async_direct_result().
ntdll: Move set_async_direct_result() to file.c.
widl: Do not allow "lu" as an integer suffix.
widl: Store the hexadecimal flag inside of the expr_t union.
widl: Use struct integer for the aNUM and aHEXNUM tokens.
widl: Respect u and l modifiers in expressions.
quartz/tests: Test IVMRWindowlessControl::GetNativeWindowSize() on the default presenter.
quartz: Implement IVMRWindowlessControl::GetNativeVideoSize().
wined3d: Precompute direction and position in wined3d_light_state_set_light().
wined3d: Pass the primary stateblock to wined3d_device_process_vertices().
wined3d: Use the primary stateblock state in wined3d_device_process_vertices() where possible.
wined3d: Pass the constant update mask to wined3d_device_context_push_constants().
wined3d: Feed WINED3D_TSS_CONSTANT through a push constant buffer.
wined3d: Feed WINED3D_RS_TEXTUREFACTOR through a push constant buffer.
ntdll: Introduce a sync_ioctl() helper.
ntdll: Handle WoW64 file handles in sync_ioctl().
ntdll: Always fill the 32-bit iosb for overlapped handles, for server I/O.
ntdll: Always fill the 32-bit iosb for overlapped handles, in file_complete_async().
ntdll: Always fill the 32-bit iosb for overlapped handles, in set_async_direct_result().
ntdll: Always fill the 32-bit iosb for overlapped handles, for regular read/write.
wined3d: Recheck whether a query is active after wined3d_context_vk_get_command_buffer().
wined3d: Implement wined3d_check_device_format_conversion().
Eric Pouech (36):
cmd: Add more tests about FOR loops.
cmd: Introduce helpers to handle FOR variables.
cmd: Introduce helpers to save and restore FOR loop contexts.
cmd: Enable '%0' through '%9' as valid FOR loop variables.
cmd: Introduce helpers to handle directory walk.
cmd: Split parsing from executing FOR loops for numbers (/L).
cmd: Fix delay expansion in FOR /L loops.
cmd: Split parsing from executing FOR loops for filesets (/F).
cmd: Fix delay expansion in FOR loop for filesets.
cmd: Split parsing from executing FOR loops for file walking.
cmd: Fix delayed expansion in FOR loop on file sets.
cmd: Remove old FOR loop related code.
cmd: Test input has been read before using it.
cmd: Introduce token-based syntax parser for building command nodes.
cmd: Use kernel32's error codes instead of literals.
cmd: Introduce return code to indicate abort of current instruction.
cmd/tests: Add tests for delayed substitution in IF command.
cmd: Expand delayed variables in IF operands.
cmd: Factorize code for reading a new line for parser.
cmd: Remove unrelated parameter to WCMD_show_prompt.
cmd: Move prompt handling into line reading.
cmd: Fix a couple of issues wrt. variable expansion.
cmd: Move depth count inside builder.
cmd: Add more tests about CALL and variable expansion.
cmd: Fix a couple of expansions issues.
cmd: Let redirections be handled by node instead of command.
cmd: Move code around to avoid forward declaration.
cmd: Let token errors be tranlatable.
cmd: Migrate IF/FOR instructions inside CMD_NODE.
cmd: Support help for IF and FOR commands.
cmd: Return sub-block return code for IF and FOR.
cmd: Use precedence in command chaining.
cmd: Add success/failure return code tests for CALL command.
cmd: Set success/failure return code for ECHO command.
cmd: Set success/failure return code for CALL command.
cmd: Implement semantic for chaining in ||, | and && operators.
Esme Povirk (2):
user32/tests: Fix spurious "Failed sequence" reports on Windows.
mscoree: Update Wine Mono to 9.2.0.
Fabian Maurer (1):
wow64: In wow64_NtSetInformationToken forward TokenIntegrityLevel.
Giovanni Mascellani (6):
wined3d: Compile the clear compute shaders at runtime.
d3d11/tests: Check the result of compiling HLSL shaders.
d3d11/tests: Check for NV12 texture support before testing them.
d3d11/tests: Do not check pitches.
d3d11/tests: Test NV12 textures without render target.
d3d11/tests: Test UpdateSubresource() for NV12 textures.
Hans Leidekker (2):
odbc32: Rebind parameters when the result length array is resized.
wpcap: Handle different layout of the native packet header structure on 32-bit.
Ilia Docin (2):
sane.ds: Add SANE option settable flag support.
sane.ds: Improve color mode and paper source detection.
Jacek Caban (12):
mshtml: Introduce IWineJSDispatchHost interface.
mshtml: Rename builtin function helpers.
mshtml: Add support for using call on builtin function objects.
mshtml: Add support for using apply on builtin function objects.
jscript: Fix PROP_DELETED handling in delete_prop.
jscript: Use designated initializers for builtin_info_t.
jscript: Use to_disp in a few more places.
jscript: Introduce to_jsdispex.
jscript: Consistently use jsdisp_addref and jsdisp_release.
jscript: Use default destructor for array objects.
jscript: Use default destructor for Object instances.
jscript: Always free jsdisp_t in jsdisp_free.
Marc-Aurel Zent (7):
winemac.drv: Handle length of dead keycodes in ToUnicodeEx correctly.
winemac.drv: Do not append " dead" to dead keycodes in GetKeyNameText.
winemac.drv: Uppercase single keys in GetKeyNameText.
winemac.drv: Use UCCompareText in char_matches_string.
winemac.drv: Resolve symbol vkeys first without modifiers.
winemac.drv: Add additional German symbol vkeys.
winemac.drv: Give dead keys a friendly name in GetKeyNameText.
Paul Gofman (8):
mmdevapi: Store device_name as a pointer in struct audio_client.
mmdevapi: Adjust timing after main loop start in client_Initialize().
mmdevapi: Stub AUDCLNT_STREAMFLAGS_LOOPBACK support.
winepulse.drv: Factor out wait_pa_operation_complete().
winepulse.drv: Implement pulse_get_loopback_capture_device().
mmdevapi/tests: Add test for capturing render loopback.
ddraw/tests: Add tests for preserving d3d state during primary surface creation.
ddraw: Preserve d3d device state in ddraw_surface_create().
Piotr Caban (3):
kernelbase: Add GetFileMUIInfo implementation.
kernel32/tests: Add GetFileMUIInfo tests.
kernel32/tests: Test GetFileMUIInfo on language resource file.
Rémi Bernon (59):
winewayland: Avoid crashing when the dummy window surface is used.
win32u: Avoid setting the SWP_NOSIZE flag on the initial WM_DISPLAYCHANGE.
win32u: Fix a deadlock when locking the same surface on different DCs.
dwrite/tests: Ignore macOS specific "flip" sbix format.
kernel32/tests: Break debugger loop on unexpected result.
win32u: Use the vulkan functions directly from d3dkmt.
winex11: Don't use the vulkan driver interface for xrandr.
server: Create a global session shared mapping.
include: Add ReadNoFence64 inline helpers.
server: Allocate shared session object for desktops.
server: Return the desktop object locator in (get|set)_thread_desktop.
win32u: Open the desktop shared object in NtUserSetThreadDesktop.
server: Move the cursor position to the desktop session object.
server: Move the last cursor time to the desktop session object.
win32u: Use the desktop shared data for GetCursorPos.
win32u: Remove now unused vulkan_funcs in d3dkmt.c.
winex11: Create a global vulkan instance for xrandr.
include: Add a couple of CRT function declarations.
include: Define frexpf as inline function in more cases.
server: Mark block as writable in mark_block_uninitialized.
server: Store the cursor clip rect in the shared data.
server: Get rid of the global cursor structure.
win32u: Use the shared memory for get_clip_cursor.
server: Use a separate variable to determine the message on Alt release.
server: Use separate functions to update the desktop and input keystates.
server: Move the desktop keystate to shared memory.
win32u: Use the shared data if possible for NtUserGetAsyncKeyState.
winex11: Move window surface creation functions to bitblt.c.
winemac: Move window surface creation functions to surface.c.
winewayland: Move window surface creation functions to window_surface.c.
winemac: Remove unused macdrv_get_surface_display_image copy_data parameter.
winemac: Create a provider for the surface and a HBITMAP wrapping it.
winemac: Create window surface CGImageRef on surface flush.
winemac: Push window surface image updates to the main thread.
winemac: Remove now unnecessary cocoa window surface pointer.
winemac: Remove unnecessary surface_clip_to_visible_rect.
server: Create a thread message queue shared mapping.
server: Keep a reference on the desktop the hook are registered for.
server: Move hooks struct initialization within add_hook.
server: Update the active hooks bitmaps when hooks are added / removed.
win32u: Read the active hooks count from the shared memory.
win32u: Remove now unnecessary thread info active_hooks cache.
server: Remove now unnecessary active_hooks from replies.
winex11: Only clip huge surfaces to the virtual screen rect.
wineandroid: Only clip huge surfaces to the virtual screen rect.
winemac: Clip huge surfaces to the virtual screen rect.
winewayland: Clip huge window surfaces to the virtual screen rect.
win32u: Move the surface rect computation out of the drivers.
win32u: Use the previous surface as default surface when compatible.
win32u: Use the default window surface when window is not visible.
win32u: Move layered surface attributes to the window_surface struct.
win32u: Introduce a new helper to update layered window surface attributes.
win32u: Pass BITMAPINFO and color bits to window surface flush.
win32u: Introduce a new helper to get surface color info and bits.
win32u: Get rid of the unnecessary offscreen window surface struct.
winemac: Remove now unnecessary driver surface BITMAPINFO.
wineandroid: Remove now unnecessary window surface BITMAPINFO.
winewayland: Remove now unnecessary window surface BITMAPINFO.
winex11: Remove now unnecessary window surface BITMAPINFO.
Santino Mazza (3):
mshtml/tests: Test for IMarkupServices.
mshtml: Implement MarkupServices_CreateMarkupContainer.
mshtml: Implement MarkupServices_ParseString.
Torge Matthies (4):
winegstreamer: Fix race between wg_parser_stream_en/disable and GST_EVENT_FLUSH_START/STOP.
winegstreamer: Don't only accept segment events when streams are enabled.
winegstreamer: Ignore an assert in wg_parser.
winegstreamer: Handle Gstreamer pipeline flushes gracefully in the media source.
Vijay Kiran Kamuju (4):
ntdll: Fix RtlEnumerateGenericTableWithoutSplaying function parameters.
ntdll: Add stub RtlEnumerateGenericTableWithoutSplayingAvl function.
ntdll: Add stub RtlNumberGenericTableElementsAvl function.
wevtapi: Add stub EvtCreateRenderContext().
Zhiyi Zhang (9):
profapi: Add stub dll.
kernel32: Add AppPolicyGetWindowingModel().
rometadata: Add initial dll.
include: Add some windows.foundation definitions.
include: Add some windows.system definitions.
include: Add windows.devices.input.idl.
include: Add windows.ui.input.idl.
include: Add some windows.ui.core definitions.
include: Add some windows.applicationmodel definitions.
Ziqing Hui (8):
mf/tests: Add tests for H264 encoder types.
winegstreamer: Implement stubs for h264 encoder.
winegstreamer/aac_decoder: Support clearing media types.
winegstreamer/color_converter: Support clearing media types.
mf/tests: Add more tests for h264 encoder type attributes.
winegstreamer/video_encoder: Implement GetOutputAvailableType.
winegstreamer/video_encoder: Implement SetOutputType.
winegstreamer/video_encoder: Implement GetOutputCurrentType.
```
The Wine development release 9.11 is now available.
What's new in this release:
- C++ exception handling on ARM platforms.
- More DPI Awareness support improvements.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.11.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.11/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.11 (total 27):
- #42270 Settlers 4 Gold - Hardware Rendering mode not working
- #49703 Ghost Recon fails to start
- #50983 Multiple games stuck playing cutscenes (The Long Dark, The Room 4: Old Sins, Saint Kotar)
- #51174 api-ms-win-core-version-l1-1-0: Missing GetFileVersionInfoW and GetFileVersionInfoSizeW
- #52585 Multiple applications need NtQueryDirectoryObject to return multiple entries (Cygwin shells, WinObj 3.01)
- #53960 ucrt has different struct layout than msvcrt
- #54615 dwrite:layout - test_system_fallback() gets unexpected "Meiryo UI" font name in Japanese and Chinese on Windows
- #55362 NeuralNote: Crashes and Rendering issues (alson in VST3 form)
- #55472 DTS Encoder Suite gets stuck with encode pending from Wine 8.14
- #56095 Clanbomber 1.05 starts after a long (30 seconds) delay
- #56397 Numlock status not recognized when using winewayland.drv
- #56451 catch block fetches bogus frame when using alignas with 32 or higher
- #56460 Multiple games have stutter issues (Overwatch 2, Aimbeast)
- #56591 Steam doesn't render individual game pages correctly
- #56606 PhysX installer fails to start
- #56640 Genshin Impact: The game-launcher cannot be started anymore
- #56744 Serial number in smbios system table is not filled on Linux in practice
- #56747 Steam won’t load in the new wow64 mode when using DXVK
- #56755 White textures in EverQuest (Unsupported Conversion in windowscodec/convert.c)
- #56764 Empire Earth Gold doesn't start in virtual desktop mode
- #56766 CDmage 1.01.5 does not redraw window contents fully
- #56781 srcrrun: Dictionary setting item to object fails
- #56788 ComicRackCE crashes when viewing "info" for a comic file
- #56800 Nomad Factory plugins GUI is broken
- #56813 Hard West 2 crashes before entering the main menu (OpenGL renderer)
- #56824 Postal 2 (20th Anniversary update) crashes when loading the map
- #56828 Moku.exe crashes on startup
### Changes since 9.10:
```
Adam Rehn (1):
wineserver: Report non-zero exit code for abnormal process termination.
Alex Henrie (12):
ntdll/tests: Delete the WineTest registry key when the tests finish.
ntdll/tests: Rewrite the RtlQueryRegistryValues tests and add more of them.
ntdll: Succeed in RtlQueryRegistryValues on direct query of nonexistent value.
ntdll: Don't call QueryRoutine if RTL_QUERY_REGISTRY_DIRECT is set.
ntdll: Don't call a null QueryRoutine in RtlQueryRegistryValues.
ntdll/tests: Remove unused WINE_CRASH flag.
ntdll: Copy the correct number of bytes with RTL_QUERY_REGISTRY_DIRECT.
ntdll: Calculate the default size even without RTL_QUERY_REGISTRY_DIRECT.
ntdll: Don't accept a query routine when using RTL_QUERY_REGISTRY_DIRECT.
ntdll: Set the string size when using RTL_QUERY_REGISTRY_DIRECT.
ntdll: Only allow string default values with RTL_QUERY_REGISTRY_DIRECT.
ntdll: Replace the whole string when using RTL_QUERY_REGISTRY_DIRECT.
Alexandre Julliard (40):
faudio: Import upstream release 24.06.
msvcrt: Share a helper macro to print an exception type.
msvcrt: Share the dump_function_descr() helper between platforms.
msvcrt: Fix the ip_to_state() helper for out of bounds values.
msvcrt: Don't use rva_to_ptr() for non-RVA values.
msvcrt: Use the copy_exception() helper in __CxxExceptionFilter.
msvcrt: Share the __CxxExceptionFilter implementation between platforms.
msvcrt: Share the common part of _fpieee_flt between platforms.
msvcrt: Consistently use the rtti_rva() helper.
winedump: Fix dumping of catchblocks for 32-bit modules.
msvcrt: The catchblock frame member isn't present on 32-bit.
msvcrt: Use pointer-sized types instead of hardcoding 64-bit in __CxxFrameHandler.
msvcrt: Share __CxxFrameHandler implementation with ARM platforms.
msvcrt: Add platform-specific helpers to call C++ exception handlers.
msvcrt: Add platform-specific helpers to retrieve the exception PC.
msvcrt: Use platform-specific handlers also for __CxxFrameHandler4.
ntdll: Fix stack alignment in __C_ExecuteExceptionFilter on ARM.
ntdll: Fix a couple of compiler warnings on ARM64EC.
ntdll: Fix inverted floating point masks on ARM64EC.
ntdll: Support x87 control word in __os_arm64x_get_x64_information().
kernel32/tests: Add test for FPU control words on ARM64EC.
msvcrt: Reimplement __crtCapturePreviousContext() based on RtlWalkFrameChain().
msvcrt: Use the __os_arm64x functions to get/set mxcsr on ARM64EC.
msvcrt: Implement asm sqrt functions on ARM platforms.
msvcrt: Disable SSE2 memmove implementation on ARM64EC.
kernelbase: Implement the GetProcAddress wrapper on ARM64EC.
kernel32: Implement the GetProcAddress wrapper on ARM64EC.
winex11: Fix build error when XShm is missing.
ntdll: Look for hybrid builtins in the PE directory for the host architecture.
ntdll: Remove some unnecessary asm macros on ARM plaforms.
winecrt0: Remove some unnecessary asm macros on ARM plaforms.
makedep: Build and install ARM64EC-only modules.
tests: Use ARM64 as architecture in manifests on ARM64EC.
ntdll: Also load arm64 manifests for amd64 architecture on ARM64EC.
ntdll: Reimplement __os_arm64x_check_call in assembly.
ntdll: Move some security Rtl functions to sec.c.
ntdll: Move some synchronization Rtl functions to sync.c.
ntdll: Move the error mode Rtl functions to thread.c.
ntdll: Move the PEB lock Rtl functions to env.c.
ntdll: Move the memory copy Rtl functions to string.c.
Alexandros Frantzis (4):
server: Pass desktop to get_first_global_hook.
server: Check message target process for raw input device flags.
server: Implement key auto-repeat request.
win32u: Implement keyboard auto-repeat using new server request.
Alistair Leslie-Hughes (2):
odbccp32: Check if a full path was supplied for Driver/Setup/Translator entries.
odbccp32: Stop handle leak on error paths.
Benjamin Mayes (1):
windowscodecs: Add conversions from PixelFormat32bppBGRA->PixelFormat16bppBGRA5551.
Brendan McGrath (4):
kernel32/tests: Test error code when FindFirstFileA uses file as directory.
ntdll/tests: Test error code when NtOpenFile uses file as directory.
server: Don't always return STATUS_OBJECT_NAME_INVALID on ENOTDIR.
ntdll: Treat XDG_SESSION_TYPE as special env variable.
Brendan Shanks (1):
ntdll: On macOS, check for xattr existence before calling getxattr.
Connor McAdams (7):
d3dx9: Refactor WIC GUID to D3DXIMAGE_FILEFORMAT conversion code.
d3dx9: Refactor WIC image info retrieval code in D3DXGetImageInfoFromFileInMemory().
d3dx9: Introduce d3dx_image structure for use in D3DXGetImageInfoFromFileInMemory().
d3dx9: Use d3dx_image structure in D3DXLoadSurfaceFromFileInMemory().
d3dx9: Introduce d3dx_load_pixels_from_pixels() helper function.
d3dx9: Use d3dx_pixels structure in decompression helper function.
d3dx9: Use d3dx_load_pixels_from_pixels() in D3DXLoadVolumeFromMemory().
Daniel Lehman (3):
secur32: Allow overriding GnuTLS debug level.
bcrypt: Allow overriding GnuTLS debug level.
crypt32: Allow overriding GnuTLS debug level.
Danyil Blyschak (4):
wineps.drv: Call ResetDCW() to update Devmode in the Unix interface.
opcservices: Provide memory allocator functions to zlib.
opcservices: Suppress unnecessary zlib deflate warnings.
opcservices: Check for memory allocation failure before deflating.
Dmitry Timoshkov (2):
server: Remove limitation for waiting on idle_event of the current process.
win32u: Limit GDI object generation to 128.
Elizabeth Figura (25):
widl: Assign to the right location variable.
widl: Allow using UDTs with the keyword even when the identifier is also a typedef.
widl: Invert "declonly".
widl: Factor out a define_type() helper.
widl: Update the type location in define_type().
widl: Do not write type definitions for types defined in an imported header.
include: Add more types to windows.networking.connectivity.idl.
wined3d: Update multisample state when the sample count changes.
wined3d: Invalidate the vertex shader when WINED3D_FFP_PSIZE is toggled.
wined3d: Just check the vertex declaration for point size usage.
wined3d: Just check the vertex declaration for colour usage.
wined3d: Just check the vertex declaration for normal usage.
wined3d: Just check the vertex declaration for texcoord usage.
wined3d: Default diffuse to 1.0 in the vertex shader.
server: Ignore attempts to set a mandatory label on a token.
server: Inherit the source token's label in token_duplicate().
advapi32/tests: Test token label inheritance.
wined3d: Handle a null vertex declaration in glsl_vertex_pipe_vdecl().
wined3d: Always output normalized fog coordinates from the vertex shader.
wined3d: Do not create a framebuffer with attachments whose clear is delayed.
wined3d: Use separate signature elements for oFog and oPts.
server: Don't set error in find_object_index if the object is not found.
ntdll: Implement reading multiple entries in NtQueryDirectoryObject.
server: Generalize get_directory_entries to single_entry case.
ntdll: Move IOCTL_SERIAL_WAIT_ON_MASK to the server.
Eric Pouech (13):
cmd: Introduce a helper to set std handles.
cmd: Introduce structure CMD_REDIRECTION.
cmd: Create helper to execute a command.
cmd: Let errorlevel be a signed integer.
cmd: Separate IF command parsing from execution.
kernelbase/tests: Fix typo in tests.
msvcrt/tests: Don't print a NULL string.
quartz/tests: Fix typo in tests.
quartz/tests: Add new tests about fullscreen handling.
quartz: Always expose that non fullscreen mode is supported and active.
quartz: Fix result in put_FullScreenMode().
conhost: Handle WM_CHAR for window console.
conhost: Support IME input in window mode.
Esme Povirk (4):
win32u: Send EVENT_OBJECT_FOCUS in more cases.
win32u: Implement EVENT_OBJECT_LOCATIONCHANGE.
gdiplus: Fix DIB stride calculation in GdipDrawImagePointsRect.
win32u: Implement EVENT_SYSTEM_MINIMIZESTART/END.
Fabian Maurer (7):
msvcrt: Fix _libm_sse2_sqrt_precise not using SSE2 sqrt.
mmdevapi/tests: Add tests for IAudioSessionControl2 GetDisplayName / SetDisplayName.
mmdevapi/tests: Add tests for IAudioSessionControl2 GetIconPath / SetIconPath.
mmdevapi/tests: Add tests for IAudioSessionControl2 GetGroupingParam / SetGroupingParam.
mmdevapi: Implement IAudioSessionControl2 GetDisplayName / SetDisplayName.
mmdevapi: Implement IAudioSessionControl2 GetIconPath / SetIconPath.
mmdevapi: Implement IAudioSessionControl2 GetGroupingParam SetGroupingParam.
Giovanni Mascellani (1):
d3d11/tests: Add a test for NV12 textures.
Hans Leidekker (8):
wmic: Sort the alias list.
wmic: Add csproduct and systemenclosure aliases.
ntdll: Provide fallback values for DMI fields only readable by root.
odbc32: Use a fixed size buffer for parameter bindings.
odbc32: Support SQLSetStmtAttr(SQL_ATTR_ROW_ARRAY_SIZE).
odbc32: Turn SUCCESS() into a static inline function.
odbc32/tests: Add tests for fetching multiple rows at once and parameter binding.
winscard: Pass ATR buffer to unixlib in SCardStatusA().
Jacek Caban (4):
mshtml: Use DispatchEx vtbl for document node GetDispID implementation.
mshtml: Use DispatchEx for document node InvokeEx implementation.
mshtml: Use DISPEX_IDISPATCH_IMPL macro for document object implementation.
mshtml: Use DispatchEx for exposing document node IDispatchEx interface.
Jacob Pfeiffer (1):
wininet: Unify timeout values closer to hInternet.
Jinoh Kang (2):
user32/tests: Print regions in test_swp_paint_regions failure cases.
wow64: Implement reading multiple entries in wow64_NtQueryDirectoryObject.
Lucas Chollet (1):
dnsapi: Add a stub for DnsServiceBrowse.
Mohamad Al-Jaf (3):
coremessaging: Add stub DLL.
include: Add dispatcherqueue.idl file.
coremessaging: Add CreateDispatcherQueueController() stub.
Nikolay Sivov (3):
scrrun/dictionary: Implement putref_Item() method.
dwrite/tests: Fix a test failure on some Win10 machines with CJK locales.
gdi32/text: Handle null partial extents pointer in GetTextExtentExPointW().
Paul Gofman (12):
ntdll: Fix test_NtQueryDirectoryFile() on Win11.
ntdll: Do not ignore trailing dots in match_filename().
ntdll/tests: Test NtQueryDirectoryFile() masks with more files.
ntdll: Ignore leading dots in hash_short_file_name().
ntdll: Mind all the wildcards in has_wildcard().
ntdll: Match wildcard recursively in match_filename().
ntdll: Add a special handling for .. in match_filename().
ntdll: Implement matching DOS_STAR in NtQueryDirectoryFile().
ntdll: Implement matching DOS_DOT in NtQueryDirectoryFile().
ntdll: Properly match DOS_QM in match_filename().
ntdll: Skip name search for wildcards in asterisk handling in match_filename().
kernelbase: Preprocess wildcarded mask and pass it with NtQueryDirectoryFile().
Piotr Caban (8):
wineps.drv: Don't use dynamic buffer when writing new page info.
wineps.drv: Write page orientation hint for every page.
wineps.drv: Take all pages into account when computing bounding box.
wineps.drv: Write PageBoundingBox for every page.
wineps.drv: Add partial support for changing page size.
msvcp140: Use _get_stream_buffer_pointers() to access FILE internal buffers.
ucrtbase: Fix _iobuf struct layout.
msvcrt: Don't use custom standard streams definition.
Rémi Bernon (65):
widl: Use mangled namespace names in typedef pointer types.
win32u: Move the window surface color bits to the common struct.
win32u: Pass BITMAPINFO and a HBITMAP to window_surface_init.
winex11: Simplify the XSHM extension function calls.
winex11: Create XImage before initializing the window surface.
winex11: Create a HBITMAP for the allocated surface pixels.
win32u: Create a HBITMAP backing the window surface pixels.
win32u: Restore surface rect, which may offsetted from the window rect.
win32u: Use a dedicated helper to move bits from a previous surface.
win32u: Don't map points to the parent window in move_window_bits_parent.
win32u: Get rid of move_window_bits_parent, using move_window_bits.
winemac: Merge RESET_DEVICE_METRICS and DISPLAYCHANGE internal messages.
win32u: Fix a restorer_str typo.
win32u: Send display change messages when host display mode changes.
win32u: Move desktop resize on WM_DISPLAYCHANGE out of the drivers.
gdi32: Use an internal NtUser call for D3DKMTOpenAdapterFromGdiDisplayName.
wineandroid: Always clear UpdateLayeredWindow target rectangle.
wineandroid: Use the surface bitmap directly in UpdateLayeredWindow.
winemac: Always clear UpdateLayeredWindow target rectangle.
winemac: Use the surface bitmap directly in UpdateLayeredWindow.
winemac: Blend alpha with NtGdiAlphaBlend instead of window opacity.
winex11: Always clear UpdateLayeredWindow target rectangle.
winex11: Use the surface bitmap directly in UpdateLayeredWindow.
win32u: Introduce a new CreateLayeredWindow driver entry.
win32u: Move UpdateLayeredWindow implementation out of the drivers.
server: Avoid calling set_event from within msg_queue_add_queue.
win32u: Introduce new helpers to convert server rectangle_t.
win32u: Introduce NtUserAdjustWindowRect call for AdjustWindowRect*.
win32u: Pass desired DPI to NtUserGet(Client|Window)Rect.
win32u: Introduce a new get_monitor_rect helper.
win32u: Pass the rect DPI to NtUserIsWindowRectFullScreen.
winex11: Wrap more window surface formats with NtGdiDdDDICreateDCFromMemory.
winex11: Fix some incorrect usage of NtGdiDdDDICreateDCFromMemory.
gdi.exe16: Fix some incorrect usage of NtGdiDdDDICreateDCFromMemory.
winegstreamer: Allow to clear video decoder input/output types.
winegstreamer: Enforce default stride value in the video decoder.
winegstreamer: Enforce default stride presence in the video processor.
winegstreamer: Rename allow_size_change to allow_format_change.
winegstreamer: Only report format changes when frontend supports it.
winegstreamer: Use a caps to store the desired output format.
winegstreamer: Request the new transform output format explicitly.
winevulkan: Remove some unnecessary casts.
winevulkan: Fix size mismatch when writing to return pointer.
include: Add and fix some WGL prototypes.
winewayland: Force the DPI context when restoring cursor clipping.
winex11: Force the DPI context when restoring cursor clipping.
win32u: Use get_monitor_rect in more places.
win32u: Parameterize get_clip_cursor dpi.
win32u: Parameterize get_monitor_info dpi.
win32u: Use window monitor DPI in get_windows_offset when dpi is 0.
winex11: Use NtUserMapWindowPoints instead of NtUserScreenToClient.
win32u: Call NtUserMapWindowPoints with per-monitor DPI from the drivers.
winemac: Force thread DPI awareness when calling NtUserSetWindowPos.
winewayland: Force thread DPI awareness when calling NtUserSetWindowPos.
winex11: Force thread DPI awareness when calling NtUserSetWindowPos.
winex11: Force thread DPI awareness when calling NtUserRedrawWindow.
winex11: Force thread DPI awareness when calling NtUserChildWindowFromPointEx.
win32u: Remove unused insert_after WindowPosChanging parameter.
wineandroid: Remove unnecessary visible_rect initialization.
winemac: Remove unnecessary visible_rect initialization.
winex11: Remove unnecessary visible_rect initialization.
win32u: Split WindowPosChanging driver call to a separate CreateWindowSurface.
winex11: Move layered window mapping to X11DRV_UpdateLayeredWindow.
winemac: Move layered window mapping to macdrv_UpdateLayeredWindow.
win32u: Move WM_WINE_DESKTOP_RESIZED into driver internal messages range.
Shengdun Wang (3):
ucrtbase/tests: Add FILE structure tests.
ucrtbase: Always use CRITICAL_SECTION for FILE locking.
ucrtbase: Fix FILE _flag values.
Tim Clem (1):
gitlab: Update configuration for the new Mac runner.
Zhiyi Zhang (2):
ws2_32/tests: Test fromlen for recvfrom().
ntdll: Don't zero out socket address in sockaddr_from_unix().
Ziqing Hui (7):
qasf/tests: Add more tests for dmo_wrapper_sink_Receive.
qasf/dmowrapper: Introduce get_output_samples.
qasf/dmowrapper: Introduce release_output_samples.
qasf/dmowrapper: Return failure in dmo_wrapper_sink_Receive if samples allocating fails.
qasf/dmowrapper: Allocate output samples before calling ProcessInput().
qasf/dmowrapper: Return VFW_E_WRONG_STATE in dmo_wrapper_sink_Receive.
qasf/dmowrapper: Sync Stop() and Receive() for dmo wrapper filter.
```
The Wine development release 9.10 is now available.
What's new in this release:
- Bundled vkd3d upgraded to version 1.12.
- DPI Awareness support improvements.
- C++ RTTI support on ARM platforms.
- More obsolete features removed in WineD3D.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.10.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.10/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.10 (total 18):
- #23434 Race management software hangs & jumps up to 100% processor load
- #34708 Silent Hill 4: The Room crashes after first videoscene when trying to go to the door.
- #45493 SRPG Studio games need proper DISPATCH_PROPERTYPUTREF implementation
- #46039 Paint.NET 4.1 (.NET 4.7 app) installer tries to run MS .NET Framework 4.7 installer (Wine-Mono only advertises as .NET 4.5)
- #46787 Notepad++ rather slow (GetLocaleInfoEx)
- #50196 can not copy words between wine apps and ubuntu apps
- #50789 Multiple .NET applications crash with unimplemented 'System.Security.Principal.WindowsIdentity.get_Owner' using Wine-Mono (Affinity Photo 1.9.1, Pivot Animator 4.2)
- #52691 FL Studio 20.9.1 Freezes on start-up
- #54992 EA app launcher does not render correctly
- #56548 reMarkable crashes on start
- #56582 vb3 combobox regression: single click scrolls twice
- #56602 DualShock 4 controller behaves incorrectly on Darwin with hidraw enabled
- #56666 BExAnalyzer from SAP 7.30 does not work correctly
- #56674 Multiple games fail to launch (Far Cry 3, Horizon Zero Dawn CE, Metro Exodus)
- #56718 Compilation fails on Ubuntu 20.04 with bison 3.5.1
- #56724 New chromium versions don't start under wine anymore
- #56730 Access violation in riched20.dll when running EditPad
- #56736 App packager from Windows SDK (MakeAppx.exe) 'pack' command crashes on unimplemented function ntdll.dll.RtlLookupElementGenericTableAvl
### Changes since 9.9:
```
Aida Jonikienė (2):
dxdiagn: Add bIsD3DDebugRuntime property.
dxdiagn: Add AGP properties.
Alexandre Julliard (52):
msvcrt: Add helpers to abstract RVA accesses to RTTI data.
msvcrt: Unify __RTtypeid implementation.
msvcrt: Unify __RTDynamicCast implementation.
msvcrt: Unify _CxxThrowException implementation.
msvcrt: Unify _is_exception_typeof implementation.
msvcrt: Unify __ExceptionPtrCopyException implementation.
msvcrt: Unify exception_ptr_from_record implementation.
msvcrt: Unify call_copy_ctor/call_dtor implementations.
msvcp: Unify __ExceptionPtrCopyException implementation.
msvcp: Unify __ExceptionPtrCurrentException implementation.
msvcp: Unify call_copy_ctor/call_dtor implementations.
msvcrt: Use RVAs in rtti and exception data on all platforms except i386.
msvcp: Use RVAs in rtti and exception data on all platforms except i386.
msvcrt/tests: Use function pointers to bypass builtin malloc/realloc.
msvcp/tests: Fix mangled names on ARM.
winecrt0: Initialize the Unix call dispatcher on first use.
ntdll: Make __wine_unix_call() an inline function.
wbemprox: Avoid unused function warning.
kernelbase: Fix the name of the default system locale.
wbemprox: Don't reference yysymbol_name on older bisons.
conhost: Fix a printf format warning.
winegcc: Don't print a potentially reallocated pointer.
adsldpc: Add correct C++ mangled names for all platforms.
dxtrans: Add correct C++ mangled names for all platforms.
msmpeg2vdec: Add correct C++ mangled names for all platforms.
vssapi: Add correct C++ mangled names for all platforms.
msvcrt: Fix bad_cast_copy_ctor spec entry on ARM.
msvcrt: Export all _ConcRT functions also on ARM.
msvcp120_app: Fix a typo in a C++ mangled name.
msvcp: Replace some stubs by exported functions that already exist for other platforms.
msvcp: Export the thiscall version of ios_base_Tidy.
msvcp140: Sort entry points by function instead of platform.
msvcp: Only export thiscall functions on i386.
msvcp: Only export stubs of thiscall functions on i386.
msvcrt: Only export thiscall functions on i386.
msvcrt: Only export stubs of thiscall functions on i386.
msvcrt: Add missing C++ mangled names for ARM.
msvcirt: Add missing C++ mangled names for ARM.
msvcp60: Add missing C++ mangled names for ARM.
msvcp70: Add missing C++ mangled names for ARM.
msvcp71: Add missing C++ mangled names for ARM.
msvcp80: Add missing C++ mangled names for ARM.
msvcp90: Add missing C++ mangled names for ARM.
msvcp100: Add missing C++ mangled names for ARM.
winedump: Print exported function names in the exception data.
winedump: Print the export or import name of exception handlers.
winedump: Dump exception data for known exception handlers.
vkd3d: Import upstream release 1.12.
msvcrt: Move common exception handling types to the header.
msvcrt: Share the find_caught_type() helper between platforms.
msvcrt: Share the copy_exception() helper between platforms.
msvcrt: Share a helper to find a catch block handler.
Alexandros Frantzis (15):
opengl32: Remove the wglDescribePixelFormat driver entry point.
win32u: Emit number characters for numpad virtual keys.
win32u: Allow drivers to send only the scan code for keyboard events.
win32u: Store the full KBD vkey information in kbd_tables_init_vsc2vk.
server: Send numpad virtual keys if NumLock is active.
user32/tests: Add tests for SendInput with numpad scancodes.
winewayland.drv: Populate vkey to wchar entry for VK_DECIMAL.
server: Fix handling of KEYEVENTF_UNICODE inputs with a non-zero vkey.
user32/tests: Add more test for unicode input with vkey.
user32/tests: Add tests for raw keyboard messages.
server: Use right-left modifier vkeys for hooks.
server: Apply modifier vkey transformations regardless of unicode flag.
server: Don't send raw input events for unicode inputs.
user32/tests: Check async key state in raw nolegacy tests.
server: Set VK_PACKET async state in raw input legacy mode.
Alistair Leslie-Hughes (10):
include: Complete __wine_uuidof for C++.
include: Add C++ support for IUnknown.
odbc32: Correct SQLSetConnectOptionW length parameter type.
include: Added sqlucode.h to sql.h.
include: Correct ListView_GetItemIndexRect macro.
include: Add IFACEMETHOD macros.
include: Add LOGFONTA/W typedef in shtypes.idl.
include: Add IPreviewHandler* interfaces.
include: Correct IRowsetNotify HROW parameter type.
include: Add missing TreeView_* defines.
Anton Baskanov (4):
quartz/tests: Use unaligned width in AVIDec tests to expose incorrect stride calculation.
quartz: Get output format from source, not sink in AVIDec.
quartz: Use the correct stride when calculating image size in AVIDec.
quartz: Hold the streaming lock while calling ICDecompressEnd.
Brendan Shanks (1):
ntdll: Don't warn on macOS and FreeBSD when xattr doesn't exist.
Connor McAdams (1):
uiautomationcore: NULL initialize SAFEARRAY variable passed to IRawElementProviderFragment::GetRuntimeId().
Daniel Lehman (1):
odbc32: Allow null handle for SQLSetEnvAttr.
Danyil Blyschak (3):
win32u: Remove external fonts from the registry before writing to it.
shcore: Check optional pointer in filestream_CopyTo() before writing to it.
wineps.drv: Only merge dmDefaultSource member of devmodes when a slot is found.
Davide Beatrici (6):
winealsa: Return minimum period in get_device_period if requested.
mmdevapi: Adjust timing in AudioClient_Initialize.
winealsa: Remove superfluous timing adjustment.
winecoreaudio: Remove superfluous timing adjustment.
wineoss: Remove superfluous timing adjustment.
winepulse: Remove superfluous timing adjustment.
Dmitry Timoshkov (2):
comctl32/tests: Create a fully updated ListView window.
user32/tests: Add a test to show that SendMessage(LB_SETCOUNT) adds a scrollbar.
Elizabeth Figura (21):
wined3d: Remove the no longer used STATE_SAMPLER.
wined3d: Remove the no longer used STATE_POINTSPRITECOORDORIGIN.
wined3d: Remove the FFP blitter.
wined3d: Remove some obsolete state invalidations.
wined3d: Remove the no longer needed fragment_caps.proj_control flag.
d3d9/tests: Remove leftover debugging code.
wined3d: Remove the no longer needed fragment_caps.srgb_texture flag.
wined3d: Remove the no longer needed fragment_caps.color_key flag.
wined3d: Remove the no longer needed wined3d_vertex_caps.xyzrhw flag.
wined3d: Remove the no longer needed wined3d_vertex_caps.ffp_generic_attributes flag.
wined3d: Remove the no longer used buffer conversion code.
wined3d: Remove the no longer used wined3d_context.fog_coord field.
wined3d: Remove the no longer used wined3d_context_gl.untracked_material_count field.
wined3d: Remove the no longer used wined3d_context.use_immediate_mode_draw field.
wined3d: Remove the no longer used WINED3D_SHADER_CAP_VS_CLIPPING flag.
wined3d: Remove the no longer used wined3d_context.namedArraysLoaded field.
wined3d: Remove the no longer used WINED3D_SHADER_CAP_SRGB_WRITE flag.
wined3d: Move the GL_EXTCALL() definition to wined3d_gl.h.
wined3d: Remove some no longer used wined3d_context fields.
wined3d: Remove no longer used "exponent" and "cutoff" precomputed fields.
wined3d: Remove the no longer used ignore_textype argument of wined3d_ffp_get_fs_settings().
Eric Pouech (4):
conhost: Fix display of font preview in 64-bit mode.
winedump: Dump correct handle information for minidump.
winedump: Don't dump twice.
winedump: Dump Memory64List streams in minidumps.
Esme Povirk (14):
gdiplus: Replace HDC check in GdipFlush.
gdiplus: Bracket HDC use in GdipMeasureCharacterRanges.
gdiplus: Bracket HDC use in GdipMeasureString.
gdiplus: Bracket HDC use in GdipDrawString.
gdiplus: Bracket HDC use in GDI32_GdipDrawDriverString.
gitlab: Add unzip to build image.
gdiplus: Replace HDC use in draw_driver_string.
gdiplus: Bracket HDC use in get_path_hrgn.
gdiplus: Bracket HDC use in gdi_transform_acquire/release.
gdiplus: Do not store HDC on HWND Graphics objects.
gdiplus: Don't call GetDeviceCaps for NULL dc.
user32/tests: Rename winevent_hook_todo to msg_todo.
user32/tests: Mark some Wine-todo messages.
win32u: Implement EVENT_SYSTEM_FOREGROUND.
Fabian Maurer (5):
oleaut32: Add test for invoking a dispatch get-only property with DISPATCH_PROPERTYPUT.
oleaut32: Handle cases where invoking a get-only property with INVOKE_PROPERTYPUT returns DISP_E_BADPARAMCOUNT.
userenv: Add CreateAppContainerProfile stub.
riched20: In para_set_fmt protect against out of bound cTabStop values.
user32/tests: Fix ok_sequence succeeding in todo block not giving a test failure.
Francis De Brabandere (1):
vbscript/tests: Fix error clear call.
Ilia Docin (1):
sane.ds: Add missing color modes setting support.
Jacek Caban (30):
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlobject.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlscript.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlselect.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlstorage.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlstyle.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlstyleelem.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlstylesheet.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmltable.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmltextarea.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmltextnode.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in mutation.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in omnavigator.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in range.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in selection.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in svg.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in xmlhttprequest.c.
ntdll: Use assembly wrapper for unixlib calls on ARM64EC.
d3d9/tests: Use GNU assembly syntax on clang x86_64 MSVC target.
d3d8/tests: Use GNU assembly syntax on clang x86_64 MSVC target.
d3d9: Use GNU assembly syntax on clang x86_64 MSVC target.
d3d8: Use GNU assembly syntax on clang x86_64 MSVC target.
ddraw: Use GNU assembly syntax on clang x86_64 MSVC target.
gitlab: Use --enable-werror for Clang builds.
mshtml: Return success in IHTMLWindow2::get_closed stub.
mshtml/tests: Add more custom properties tests.
mshtml: Factor out alloc_dynamic_prop.
mshtml: Use DispatchEx vtbl for elements as window property lookups.
mshtml: Use DispatchEx vtbl for all window properties.
mshtml: Use macro for window object IDispatch functions implementation.
mshtml: Move IDispatchEx forwarding implementation to outer window object.
Krzysztof Bogacki (7):
win32u: Use separate variable for inner loop.
win32u: Log Vulkan GPU's PCI IDs when matching against them.
win32u: Log Vulkan UUIDs when adding GPUs.
win32u: Remove unused variable from add_vulkan_only_gpus.
win32u: Use common name for fake GPUs and prefer Vulkan name over it.
win32u: Prefer Vulkan PCI IDs over empty ones.
win32u: Prefer Vulkan UUIDs over empty ones.
Marcus Meissner (1):
shell32/tests: Fixed sizeof to GetModuleFileName.
Myah Caron (1):
msvcrt: Fix _kbhit ignoring the last event.
Nikolay Sivov (3):
gdi32/text: Make GetTextExtentExPointW() return sizes consistent with ExtTextOutW().
d3dcompiler/fx: Write empty buffers for compiler versions 33-39.
d3dcompiler: Enable D3DCOMPILE_EFFECT_CHILD_EFFECT option.
Paul Gofman (4):
wine.inf: Add InstallationType field to CurrentVersion.
wine.inf: Add Explorer\Advanced registry key.
mf/tests: Add a test for MFEnumDeviceSources().
mf: Implement audio capture device enumeration in MFEnumDeviceSources().
Piotr Caban (1):
ntdll: Fix UNC path handling in alloc_module.
Rémi Bernon (57):
win32u: Fix default_update_display_devices return type to NTSTATUS.
win32u: Load the graphics driver vulkan functions lazily.
win32u: Keep a list of vulkan GPUS in the device manager context.
win32u: Match driver GPUs with vulkan GPUS from their ids, or index.
win32u: Query GPU memory from vulkan physical device.
win32u: Enumerate offscreen vulkan devices as GPU devices.
dinput: Dynamically allocate the internal device / event arrays.
server: Pass the adjusted vkey to send_hook_ll_message.
winegstreamer: Use DMO_MEDIA_TYPE in the WMA decoder.
winegstreamer: Implement WMA DMO Get(Input|Output)CurrentType.
win32u/tests: Introduce a new run_in_process helper.
win32u/tests: Add NtUser(Get|Set)ProcessDpiAwarenessContext tests.
win32u: Fix NtUserSetProcessDpiAwarenessContext.
user32/tests: Add some SetProcessDpiAwarenessContext tests.
user32/tests: Add more SetThreadDpiAwarenessContext tests.
user32: Fix SetProcessDpiAwarenessContext.
winegstreamer: Use a GstCaps for wg_parser current_format.
winegstreamer: Use a GstCaps instead of preferred_format.
winegstreamer: Rename get_preferred_format to get_current_format.
winegstreamer: Use a GstCaps for wg_parser_stream codec format.
win32u: Get rid of the drivers force_display_devices_refresh flag.
win32u: Update the display device cache after loading the driver.
win32u: Get rid of the UpdateDisplayDevices force parameter.
user32: Test and fix IsValidDpiAwarenessContext.
user32: Test and implement GetDpiFromDpiAwarenessContext.
user32/tests: Add more AreDpiAwarenessContextsEqual tests.
user32/tests: Add more GetAwarenessFromDpiAwarenessContext tests.
win32u: Use NtUserCallOnParam for SetThreadDpiAwarenessContext.
win32u: Return UINT from NtUserGetWindowDpiAwarenessContext.
win32u: Use NtGdiDdDDICreateDCFromMemory for gdi16 DIBDRV.
wineandroid: Fix NtUserSendHardwareInput parameter order.
wineandroid: Use DWORD for pixel pointers.
win32u: Flush window surface when it is fully unlocked.
win32u: Remove surface recursive locking requirement.
win32u: Stop using a recursive mutex for the offscreen surface.
wineandroid: Stop using a recursive mutex for the window surfaces.
winemac: Stop using a recursive mutex for the window surfaces.
winewayland: Stop using a recursive mutex for the window surfaces.
winex11: Stop using a recursive mutex for the window surfaces.
win32u: Get the thread DPI context instead of the awareness.
win32u: Pass the DPI awareness context in win_proc_params.
win32u: Fix SetThreadDpiAwarenessContext.
win32u: Only keep DPI awareness context with window objects.
win32u: Introduce a new window_surface_init helper.
win32u: Move the window surface mutex to the surface header.
win32u: Use helpers to lock/unlock window surfaces.
win32u: Move window surface bounds to the window_surface base struct.
winemac: Get rid of unnecessary blit_data / drawn surface members.
wineandroid: Hold the lock while reading window surface bits.
win32u: Use a helper to flush window surface, factor locking and bounds reset.
win32u: Initialize window surfaces with a hwnd.
win32u: Split update_surface_region into get_window_region helper.
server: Merge get_surface_region / get_window_region requests together.
win32u: Intersect the clipping region with the window shape region.
server: Update window surface regions when the window is shaped.
wineandroid: Remove now unnecessary set_surface_region calls.
win32u: Use a helper to set the window surface clipping, within the lock.
Vijay Kiran Kamuju (1):
ntdll: Add stub RtlLookupGenericTableAvl function.
Yuxuan Shui (2):
shell32: Make sure array passed to PathResolve is big enough.
shell32: Fix ShellExecute for non-filespec paths.
Zhiyi Zhang (4):
comctl32/tests: Add WM_SETFONT tests.
comctl32/syslink: Don't delete font when destroying the control.
comctl32/tooltips: Don't duplicate font when handling WM_SETFONT.
comctl32/ipaddress: Delete font when destroying the control.
```