The Wine development release 8.11 is now available.
What's new in this release:
- More mouse cursor clipping improvements.
- Support for TLS alerts.
- Increased available address space in WoW64 mode.
- Various bug fixes.
The source is available at:
https://dl.winehq.org/wine/source/8.x/wine-8.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
You can also get the current source directly from the git
repository. Check https://www.winehq.org/git for details.
Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.
----------------------------------------------------------------
Bugs fixed in 8.11 (total 26):
- #48811 StarCraft II fails to load in staging
- #51640 LibreOffice 7.2.0 crashes while browsing directories
- #53682 wineboot shows "user_check_not_lock BUG: holding USER lock" on aarch64 since wine-7.14
- #54380 Installed windows driver triggers a window when running any program in winXP mode (unimplemented function ntoskrnl.exe.Ke386QueryIoAccessMap)
- #54442 experimental wow64 mode: doesn't show some graphical windows
- #54738 msi:action - The 64-bit test_register_class_info() fails in Wine
- #54742 The 64-bit advapi32:registry breaks the 32-bit test_redirection() in Wine
- #54751 The 64-bit advapi32:registry breaks test_CoGetPSClsid() in ole32:compobj in Wine
- #54797 Lunar Magic 3.33: Crashes with BadWindow unless WINEDEBUG=+all
- #54848 dnsapi:query - test_DnsQuery() fails on Rémi's Wine test machines
- #54980 wine lost ability to correctly handle printer(CUPS)-supplied fonts (several programs)
- #54993 Framemaker 8 crashes in internal search operation
- #55013 user32:monitor - test_EnumDisplayMonitors() sometimes fails on Linux
- #55016 xaudio2_8:xaudio2 - test_simple_streaming() crashes on Windows 8+
- #55027 Microsoft Office: IME result string may get doubled when edit is done
- #55042 IDictionary::Add() fails to add entries with numerical keys that have the same hashes
- #55043 Z-Vision for Windows: Assertion failed when clicking "LOAD" button.
- #55046 ALT-TAB broken with virtual desktop and capture mouse (regression: 8.9 -> 8.10)
- #55047 d3d test_cursor_clipping() fails
- #55050 Wine stucks when creating prefix
- #55051 Build regression in wine 8.10 using clang on aarch64 (error in backend: Invalid register name "x18")
- #55055 Japanese IME fails to clear composition string when deleting the only remaining character
- #55074 Multiple apps fail to show anything after launch in virtual desktop mode (Steam, Ubisoft Connect)
- #55088 Program crashes when Common Dialog File open function is called
- #55091 preloader build failure with GOTPCREL relocation
- #55097 cmd.exe does not handle PATH with leading or sequential semicolons
----------------------------------------------------------------
Changes since 8.10:
Akihiro Sagawa (1):
commdlg: Fix dialog template parser when caption starts with a DBCS character.
Alex Henrie (21):
windows.media.speech: Fix memory leak on error path in session_worker_thread_cb (scan-build).
shell32: Fix memory leak on error path in FolderItems_Constructor (scan-build).
rpcrt4: Don't use GetProcAddress for ole32 functions.
wldap32: Clean up LDAP_OPT_API_INFO.
wusa: Zero out identity on error path in read_identity.
msi: Fix memory leak on error path in MSI_OpenPackageW (scan-build).
msi: Fix double free on error paths in TransformView_Create (scan-build).
winhttp: Fix memory leak on error path in request_get_codepage (scan-build).
msi: Fix memory leaks in HANDLE_CustomType23 (scan-build).
combase: Don't export hProxyDll or rpc_execute_call.
comdlg32: Don't use GetProcAddress for SHSimpleIDListFromPath.
comctl32: Remove duplicate declarations of MONTHCAL functions.
hhctrl: Initialize item->items to NULL in parse_index_sitemap_object (scan-build).
urlmon: Don't export urlmon_instance.
wininet: Don't overallocate in urlcache_encode_url_alloc (scan-build).
conhost: Use correct pointer type in edit_line_transpose_words (scan-build).
advpack: Check the return value of adv_install in DoInfInstallW (scan-build).
wbemprox: Fix memory leak on error path in enum_key (scan-build).
sane: Fix use after free in create_item (scan-build).
crypt32: Don't export CRYPT_CopyReversed.
ws2_32: Don't export num_startup.
Alexandre Julliard (39):
include: Remove redundant __WINE_USE_MSVCRT checks.
makefiles: Define WINE_UNIX_LIB for all files that are built for Unix.
loader: Make the loader position-independent on 64-bit.
winegcc: Fix an uninitialized variable warning in the PE build.
wow64: Don't force wow64 dlls to load at low addresses.
kernel32/tests: Fix the PROCESS_BASIC_INFORMATION exit status type.
server: Also enforce the size of varargs data structures.
ntdll: Support the lower memory limit in MEM_ADDRESS_REQUIREMENTS.
ntdll: Allocate 64-bit and kernel stacks in high memory.
ntdll: Load modules with a high base address in high memory.
ntdll: Make only the necessary pages writable in the ARM64EC code map.
kernelbase: Don't define stdcall functions on non-i386.
ntdll: Don't define stdcall functions on non-i386.
wow64cpu: Don't define stdcall functions on non-i386.
include: Don't support stdcall functions on non-i386.
makefiles: Pass the dll extension from configure.
makefiles: Make the dll extension a per-architecture variable.
makefiles: Don't build native import libraries for PE-only build.
makefiles: Disable native import libraries on ARM64.
conhost: Use nameless union/structs.
explorer: Use nameless union/structs.
ipconfig: Use nameless union/structs.
netstat: Use nameless union/structs.
oleview: Use nameless unions/structs.
regedit: Use nameless unions/structs.
services: Use nameless unions/structs.
include: Disallow fastcall functions in Unix libraries.
loader: Force building the main loader as PIE on 64-bit.
loader: Always build the main loader as PIE if we have a preloader.
loader: Build the preloader as PIE on 64-bit.
winecfg: Use nameless unions/structs.
winedbg: Use nameless unions/structs.
winefile: Use nameless unions/structs.
winemenubuilder: Use nameless unions/structs.
winhlp32: Use nameless unions/structs.
wordpad: Use nameless unions/structs.
wow64: Map a copy of ntdll to build the syscall table.
ntdll: Implement _errno().
wow64: Don't load the 32-bit ntdll as an image to avoid debugger notifications.
Alistair Leslie-Hughes (1):
wbemdisp: Support DISPATCH_PROPERTYGET in Object Invoke.
Andrey Gusev (1):
include: Add flags in D3D11_RESOURCE_MISC_FLAG.
Bernhard Kölbl (2):
mf: Clear queued topologies on session shutdown.
mf: Don't leak sink in session_get_renderer_node_service().
Connor McAdams (10):
uiautomationcore: Store all events in an event list.
uiautomationcore: Clone UiaCacheRequest structure passed to UiaAddEvent.
uiautomationcore: Add support for cloning UiaCondition structures.
uiautomationcore: Implement UiaRaiseAutomationEvent.
uiautomationcore: Unconditionally match all events registered on the desktop node with a scope of subtree.
uiautomationcore/tests: Add tests for cross-process events.
uiautomationcore: Add support for creating serverside events.
uiautomationcore: Prevent creation of duplicate serverside events.
uiautomationcore: Add support for advising providers of events on serverside events.
uiautomationcore: Implement UiaEventAddWindow.
Daniel Lehman (1):
wininet: Free temporary buffer in InternetQueryOptionW loop.
David Kahurani (3):
gdiplus: Allow NULL format in GdipAddPathString.
msi: Reject shorter/longer lines in MsiDatabaseImportA.
msi: Convert newlines to alternate representation when exporting.
Davide Beatrici (21):
winepulse: Move main loop logic into mmdevapi.
winealsa: Implement main_loop in unixlib.
winecoreaudio: Implement main_loop in unixlib.
wineoss: Implement main_loop in unixlib.
winepulse: Move AudioClient's Initialize's exclusive mode check into unixlib.
winepulse: Move get_application_name into mmdevapi.
winealsa: Call mmdevapi's get_application_name.
winecoreaudio: Call mmdevapi's get_application_name.
wineoss: Call mmdevapi's get_application_name.
winepulse: Move stream_release into mmdevapi.
winealsa: Use mmdevapi's stream_release.
winecoreaudio: Use mmdevapi's stream_release.
wineoss: Use mmdevapi's stream_release.
winealsa: Use mmdevapi's set_stream_volumes.
winecoreaudio: Use mmdevapi's set_stream_volumes.
wineoss: Use mmdevapi's set_stream_volumes.
winepulse: Use mmdevapi's set_stream_volumes.
winealsa: Use create_stream's channel count in AudioClient's Initialize.
winecoreaudio: Use create_stream's channel count in AudioClient's Initialize.
wineoss: Use create_stream's channel count in AudioClient's Initialize.
winepulse: Refactor AudioClient's Initialize to match other drivers.
Eric Pouech (9):
kernel32/tests: Extend console inheritance tests.
include/dbghelp.h: Added some missing definitions.
dbghelp: Create implementation basis for SymSrvGetFileIndex*().
dbghelp/tests: Add tests for SymSrvGetIndexesInfo.
dbghelp/tests: Add tests for SymSrvGetInfoIndexes.
dbghelp: Implement SymSrvGetFileIndexInfo for PE modules.
dbghelp/tests: Add explicit tests about loading ELF modules.
dbghelp: Fix reading Wine loader's base address.
winedump: Tidy up print out in minidumps.
Etaash Mathamsetty (2):
ntdll: Allow RtlAllocateHeap to crash with invalid handle.
user32: Add GetSystemDpiForProcess export.
Fabian Maurer (3):
wineps.drv: Use afm FamilyName instead of FullName.
mmdevapi: Don't redefine stream_handle (gcc 4.3).
gdiplus: Refactor and add comments for easier understanding.
Gabriel Ivăncescu (27):
jscript: Correctly implement context for indirect eval calls in ES5+ modes.
jscript: Fix addressing invalid memory if ref is an argument.
jscript: Fix function leak in scope_init_locals.
jscript: Get rid of jsobj in scope_chain_t.
jscript: Don't use iface_to_jsdisp where it's not necessary to grab it.
jscript: Store detached args into a scope's specialized buffer.
jscript: Start from the last argument when adding them to named locals.
jscript: Get rid of the function instance in arguments obj.
mshtml: Traverse and unlink AreaElements properly.
mshtml: Fix style declaration leak in HTMLStyle_Create.
mshtml: Fix nsIDOMNode leak when retrieving an item in the node list.
mshtml: Fix node leak when enumerating nodes.
mshtml: Handle failure and cleanup properly when enumerating nodes.
mshtml: Fix leaks in create_all_list.
mshtml: Fix element leaks in get_elem_source_index.
mshtml: Fix text node leak in Element innerText setter.
mshtml: Fix text node leak in OptionElement text setter.
mshtml/tests: Fix CurrentStyle leak in test_style_filters.
jscript: Use jsstr_empty instead of allocating empty string.
jscript: Implement `caller` for function instances and prototype.
jscript: Throw error when accessing `arguments` prop of bind functions.
jscript: Don't expose Function.prototype.arguments in non-html mode.
jscript: Store ref to scope directly instead of frame in arguments object.
jscript: Don't use detached arguments buffer in html mode.
jscript: Always create detached variable objects with no class.
jscript: Properly handle passing undefined value to Number.toPrecision.
jscript: Properly handle passing undefined value to Number.toString in ES5+ mode.
Georg Lehmann (1):
winevulkan: Update to VK spec version 1.3.254.
Giovanni Mascellani (5):
dxgi: Do not uselessly pass queue_family_index around.
dxgi: Remove now-useless function d3d12_swapchain_create_buffers().
dxgi: Do not destroy D3D12 resources unless requested.
dxgi: Only create D3D12 resources when necessary.
dxgi: Rename and split d3d12_swapchain_destroy_buffers().
Hans Leidekker (1):
secur32: Add support for sending TLS alerts.
Huw D. M. Davies (2):
winepulse: Don't overwrite the result in the insufficient buffer case.
winepulse: Return E_NOTIMPL when the property is not found.
Jacek Caban (3):
user32: Remove no longer used setupapi import.
win32u: Remove duplicated d3dkmdt.h include.
configure: Use -fvisibility=hidden when building with msvcrt and cross compiler is not available.
Jactry Zeng (2):
atl/tests: Move regular DWORD tests into a loop.
atl: Convert REG_DWORD to a correct type.
Jinoh Kang (1):
loader: Set the visibility of symbols in preloader to "hidden".
Liam Middlebrook (2):
cmd/tests: Add tests for PATH separator.
cmd: Fix empty strings between PATH separators.
Nikolay Sivov (4):
scrrun/dictionary: Compare key values in addition to their hashes.
oleaut32/recinfo: Use CRT allocation functions.
oleaut32/recinfo: Use CoTaskMem* allocations for the record data.
oleaut32: Trace typelib guid in GetRecordInfoFromGuids().
Olivier F. R. Dierick (1):
ntoskrnl.exe: Add Ke386QueryIoAccessMap stub.
Paul Gofman (1):
crypt32: Do not create persistent container in CRYPT_CreateKeyProv().
Rémi Bernon (41):
server: Pass the message code to get_hardware_msg_bit.
server: Use hardware message category when checking filter.
imm32: Avoid resizing IMCC to zero-size buffer.
winex11: Remove now unnecessary WM_X11DRV_CLIP_CURSOR_NOTIFY.
win32u: Move grab_pointer registry option from winex11.
win32u: Add a clipping_reset member to user_thread_info.
win32u: Add a clipping_cursor member to user_thread_info.
winex11: Move clip_fullscreen_window foreground check inside it.
win32u: Move fullscreen window cursor clipping from winex11.
server: Update desktop cursor window when cursor pos changes.
server: Keep track of the current desktop cursor handle.
server: Introduce and send new WM_WINE_SETCURSOR hardware message.
win32u: Add a hwnd parameter to SetCursor driver entry points.
win32u: Notify drivers of cursor changes on WM_WINE_SETCURSOR.
wineandroid: Set the window cursor immediately in SetCursor.
winex11: Set the window cursor immediately in SetCursor.
server: Update the DF_WINE_CREATE_DESKTOP desktop flag on opening.
win32u: NtUserGetObjectInformation returns a BOOL, not NTSTATUS.
winex11: Don't grab the cursor if another process is focused.
winex11: Simplify the cursor clipping retry mechanism.
winex11: Replace the clipping message HWND with a BOOL flag.
winegstreamer: Introduce new stream_descriptor_set_tag helper.
winegstreamer: Pass a struct wg_parser_stream to media_stream_create.
winegstreamer: Factor the creation of the first stream media type.
winegstreamer: Introduce new init_video_media_types helper.
winegstreamer: Introduce new init_audio_media_types helper.
winegstreamer: Pass the stream descriptor to media_stream_create.
win32u: Remove unnecessary set_cursor new_clip rect copy.
server: Pass set_cursor flags in WM_WINE_CLIPCURSOR wparam.
win32u: Use a specific flag instead of shrinking the clip rect.
winegstreamer: Remove colorimetry and chroma-site from wg_format caps.
winegstreamer: Remove the callback mechanism from wg_allocator.
winegstreamer: Move release_memory_sample helper around.
winegstreamer: Lazily allocate wg_allocator unix memory.
imm32/tests: Test how deleting a character can behave.
imm32: Use offsets instead of lengths to decide on sending updates.
winex11: Report empty preedit string when result string is committed.
winex11: Make sure HIMC is opened before sending IME updates.
win32u: Split default UpdateDisplayDevices implementation to a helper.
win32u: Move virtual desktop display settings logic from winex11.
configure: Build x86_64 PE code with mcmodel=small.
Shaun Ren (8):
sapi: Partially implement ISpMMSysAudio::SetState.
sapi: Free completed buffers asynchronously in SpMMAudio.
sapi: Implement ISpMMSysAudio::Write.
sapi: Implement ISpMMSysAudio::EventHandle.
sapi: Implement ISpVoice::SetOutput.
sapi: Implement ISpVoice::Set/GetVoice.
sapi: Implement ISpVoice::Set/GetRate.
sapi: Implement ISpVoice::Set/GetVolume.
Tatsuyuki Ishi (3):
win32u: Move QueryDisplayConfig from user32.
win32u: Cleanup naming and log messages for QueryDisplayConfig.
win32u: Avoid SEGV in QueryDisplayConfig when run as service.
Tim Clem (1):
ntdll: Treat read faults on readable pages as write faults on macOS.
Vladislav Timonin (2):
shell32: Show >4GB values in size columns of My Computer.
shell32: Don't show size for inaccessible drives in My Computer.
Zebediah Figura (1):
xaudio2/tests: Fix the IID_IXAudio28 declaration.
Ziqing Hui (1):
winegstreamer: Implement Flush for WMV decoder DMO.
The Wine development release 8.10 is now available.
What's new in this release:
- All PE->Unix transitions go through the syscall interface.
- Mouse cursor clipping improvements.
- Support for virtual memory placeholders.
- Locale and timezone data updates.
- Various bug fixes.
The source is available at:
https://dl.winehq.org/wine/source/8.x/wine-8.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
You can also get the current source directly from the git
repository. Check https://www.winehq.org/git for details.
Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.
----------------------------------------------------------------
Bugs fixed in 8.10 (total 13):
- #18889 Multiple isolation-aware applications fail to load (MSN Messenger Live 2009, Lync 2010, Adobe Premiere Pro CS3, Quicken 201X)(embedded PE manifest search should support ISOLATIONAWARE_MANIFEST_RESOURCE_ID)
- #24946 uTorrent 2.2.0 hangs on startup (FD_WRITE event is reported over and over in WSAEnumNetworkEvents for a bound UDP socket)
- #27827 Creo Elements/Direct Modeling Express 4.0/6.0 loader failure due to missing msvcrt.dll dependency (native netapi32.dll imports msvcrt functions)
- #47808 Cygwin's mintty.exe crashes with a stack overflow
- #52868 TwitchTest crashes on unimplemented function IPHLPAPI.DLL.GetPerTcpConnectionEStats
- #53092 Animated Puzzles crashes on start
- #54410 .NET 3.5 Checkbox checkmarks should be black instead of "Foreground" color
- #54599 Honeygain crashes on unimplemented function IPHLPAPI.DLL.GetCurrentThreadCompartmentId
- #54810 PmxEditor 0.2.7.5 doesn't start after Wine 8.4.
- #54913 ntdll: NtDuplicateToken has wrong prototype
- #54949 user32:msg gets an extra WM_NCPAINT in ShowWindow(child, SW_SHOW)
- #54991 Chinese IME no longer works in Naver LINE since Wine 8.9
- #55008 wininet:http - test_secure_connection() fails on Windows and Wine
----------------------------------------------------------------
Changes since 8.9:
Akihiro Sagawa (1):
winex11: Ignore BadWindow errors caused by XConfigureWindow.
Alex Henrie (29):
iphlpapi: Add GetCurrentThreadCompartmentId stub and a test.
iphlpapi: Add GetPerTcpConnectionEStats stub.
bcrypt/tests: Don't allocate inside todo_wine and free outside of it.
iphlpapi/tests: Use ~0u instead of ~0ul in testGetIpNetTable.
winegstreamer: Pass a QWORD pointer to IMFByteStream_GetLength.
wusa: Fix double free on error path in read_update_package (scan-build).
mscms: Fix double free on error path in EnumColorProfilesA (scan-build).
msi: Return ERROR_OUTOFMEMORY if calloc fails in TransformView_Create (scan-build).
msi: Make TransformView_Create static.
msi: Fix memory leak in ready_media (scan-build).
wbemprox: Fix memory leak on error path in create_view (scan-build).
jscript: Fix memory leak on error path in String_replace (scan-build).
jscript: Remove unnecessary call to malloc in strbuf_ensure_size.
conhost: Fix memory leak on error path in edit_line_move_to_history (scan-build).
localspl: Fix memory leak in lpr_start_doc (scan-build).
msvcrt: Use 'else if' in _wgetcwd.
wineusb: Fix memory leaks on error paths in usb_submit_urb (scan-build).
kerberos: Fix memory leaks in (wow64_)query_ticket_cache (scan-build).
dnsapi: Fix memory leak on error path in do_query_netbios (scan-build).
hhctrl: Fix memory leak on error path in resolve_filename (scan-build).
wldap32: Fix memory leak on error path in ldap_start_tls_sW (scan-build).
jscript: Fix memory leak on error path in regexp_string_match (scan-build).
vbscript: Fix memory leak on error path in RegExp2_Execute (scan-build).
wininet: Fix memory leaks on error paths in INTERNET_LoadProxySettings (scan-build).
vbscript: Fix memory leak on error path in alloc_vbscode (scan-build).
rpcrt4: Replace RPCRT4_strndupA with strdup.
winhttp: Fix double free on error path in queue_task (scan-build).
msi: Fix memory leak on error path in MSI_ProcessMessage (scan-build).
regedit: Fix memory leak on error path in GetItemPath (scan-build).
Alexandre Julliard (46):
include: Don't align the stack for PE builds.
ntdll: Use x18 for the TEB on ARM64.
ntdll: Use nameless unions/structs for loader data.
ntdll: Use nameless unions/structs for CPU-related data.
ntdll: Use nameless unions/structs for IO_STATUS_BLOCK.
include: Only enable the non-inline NtCurrentTeb() on the Unix side.
wineps: Don't use CDECL for private functions.
win32u: Don't use WINAPI for the font enumeration function.
win32u: Don't use WINAPI for private functions.
ntdll: Don't pass arguments on the stack for user callbacks on ARM64.
ntdll: Don't pass arguments on the stack for user callbacks on x86-64.
ntdll: Don't pass arguments on the stack for user callbacks on i386.
ntdll: Don't pass arguments on the stack for user callbacks on ARM.
ntdll: Don't use WINAPI for KeUserModeCallback().
ntdll: Store the PE function pointers as simple void pointers.
include: Only declare __wine_unix_call() on the PE side.
ntdll: Use the sysv ABI for the %fs allocation function.
ntdll: Use the sysv ABI for setjmp/longjmp on the Unix side.
ntdll: Use the default ABI for all functions on the Unix side.
kernelbase: Update timezone data to version 2023c.
nls: Update locale data to CLDR version 43.
xslt: Import upstream release 1.1.38.
xml2: Import upstream release 2.11.4.
kernelbase: Use nameless unions/structs for loader data.
kernelbase: Use nameless unions/structs for CPU-related data.
kernelbase: Use nameless unions/structs for IO_STATUS_BLOCK.
kernel32: Use nameless unions/structs.
server: Send the APC call data as vararg in the queue_apc request.
server: Send the APC call data as vararg in the select request.
wininet/tests: Update expected WineHQ certificate.
ntdll: Support adding overlapping ranges in mmap_add_reserved_area().
ntdll: Add a helper function to unmap memory above the user space limit.
ntdll: Reimplement unmap_area() to avoid recursion and callbacks.
ntdll: Reimplement map_fixed_area() to avoid recursion and callbacks.
ntdll: Reimplement allocation inside a reserved area without using a callback.
ntdll: Reimplement allocation of the virtual heap without using a callback.
ntdll: Reimplement fill_basic_memory_info() without using a callback.
ntdll: Reimplement virtual_release_address_space() without using a callback.
ntdll: Report the remaining part of the 64K after a view as free.
ntdll: Use the full 4Gb for large address aware applications on Wow64.
ntdll: Update the reserved range on 64-bit to match the preloader.
ntdll: Use the sysv ABI for __wine_syscall_dispatcher_return().
winebuild: Set a 64-bit base address for generated 64-bit dlls.
winebuild: Update target-dependent characteristics after option parsing.
winedump: Dump version resources in a more structured way.
winedump: Dump manifest resources in a more structured way.
Alistair Leslie-Hughes (5):
xactengine: Correct interfaces for IXACT3Cue.
include: Use STDMETHOD when returning HRESULT.
krnl386.exe16: Don't overflow when calculating size.
xactengine: Correct XACTNOTIFICATIONTYPE_MAX value.
xactengine: IXACT3EngineImpl_CreateSoundBank isn't a stub.
André Zwing (1):
wow64: Ignore Thumb flag when parsing ARM syscall number.
Aurimas Fišeras (1):
po: Update Lithuanian translation.
Bernhard Kölbl (1):
mf/tests: Remove duplicate call to MFStartup().
Bernhard Übelacker (1):
comdlg32: Avoid crash in RemoveControlItem.
Billy Laws (1):
configure: Stash host LDFLAGS when configuring cross-compilers.
Connor McAdams (4):
uiautomationcore: Put general purpose helper functions into separate source file.
uiautomationcore: Add global interface table helper functions.
uiautomationcore: Respect ProviderOptions_UseComThreading on advise events interfaces.
uiautomationcore: Get IRawElementProviderAdviseEvents interfaces from embedded fragment root providers.
Daniel Lehman (2):
msi: Release record instead of free.
riched20: Update paragraph position in marked tree.
David Kahurani (1):
gdiplus: Handle Windows style newline.
Davide Beatrici (38):
wined3d: Fix uninitialized variable warning.
winepulse: Move AudioClient3 into mmdevapi.
winealsa: Use mmdevapi's AudioClient3.
winecoreaudio: Use mmdevapi's AudioClient3.
wineoss: Use mmdevapi's AudioClient3.
winepulse: Move AudioClient2 into mmdevapi.
winealsa: Use mmdevapi's AudioClient2.
winecoreaudio: Use mmdevapi's AudioClient2.
wineoss: Use mmdevapi's AudioClient2.
winepulse: Always initialize ref to 1 in session wrapper.
winepulse: Move session_wrapper_create into mmdevapi.
winealsa: Use mmdevapi's session_wrapper_create.
winecoreaudio: Use mmdevapi's session_wrapper_create.
wineoss: Use mmdevapi's session_wrapper_create.
winepulse: Lock sessions in AudioClient's GetService.
winepulse: Move AudioClient's GetService into mmdevapi.
winealsa: Use mmdevapi's AudioClient's GetService.
winecoreaudio: Use mmdevapi's AudioClient's GetService.
wineoss: Use mmdevapi's AudioClient's GetService.
winepulse: Move AudioClient's SetEventHandle, Reset, Stop into mmdevapi.
winealsa: Use mmdevapi's AudioClient's SetEventHandle, Reset, Stop.
winecoreaudio: Use mmdevapi's AudioClient's SetEventHandle, Reset, Stop.
wineoss: Use mmdevapi's AudioClient's SetEventHandle, Reset, Stop.
winepulse: Lock sessions in AudioClient's Start.
winecoreaudio: Lock sessions in AudioClient's Start.
winepulse: Move AudioClient's Start into mmdevapi.
winealsa: Use mmdevapi's AudioClient's Start.
winecoreaudio: Use mmdevapi's AudioClient's Start.
wineoss: Use mmdevapi's AudioClient's Start.
winepulse: Move AudioClient's GetDevicePeriod, GetMixFormat, IsFormatSupported into mmdevapi.
winealsa: Use mmdevapi's AudioClient's GetDevicePeriod, GetMixFormat, IsFormatSupported.
winecoreaudio: Use mmdevapi's AudioClient's GetDevicePeriod, GetMixFormat, IsFormatSupported.
wineoss: Use mmdevapi's AudioClient's GetDevicePeriod, GetMixFormat, IsFormatSupported.
winepulse: Move AudioClient's GetCurrentPadding, GetStreamLatency, GetBufferSize into mmdevapi.
winealsa: Use mmdevapi's AudioClient's GetCurrentPadding, GetStreamLatency, GetBufferSize.
winecoreaudio: Use mmdevapi's AudioClient's GetCurrentPadding, GetStreamLatency, GetBufferSize.
wineoss: Use mmdevapi's AudioClient's GetCurrentPadding, GetStreamLatency, GetBufferSize.
mmdevapi: Handle CreateThread() failure in AudioClient's Start.
Eric Pouech (5):
dbghelp: Better handle very long C++ qualified identifiers in dwarf.
dbghelp/tests: Fix process kind detection on old Windows machines.
dbghelp/tests: Review old-wow64 expected values.
dbghelp/tests: Add more tests for module imagename handling.
dbghelp: Reimplement EnumerateLoadedModules().
Gabriel Ivăncescu (6):
mshtml: Fix classList toggle() when return value pointer is NULL.
jscript: Return undefined for empty RegExp captures in ES5+ mode.
jscript: Throw proper error for unexpected quantifiers in RegExp.
jscript: Throw proper error for out of memory conditions in RegExp.
mshtml/tests: Test RegExp.toString on object with separate RegExp flag props.
mshtml: Handle protocols with no ports when checking target origin.
Georg Lehmann (1):
winevulkan: Update to VK spec version 1.3.251.
Giovanni Mascellani (6):
dxgi: Document some struct d3d12_swapchain fields.
dxgi: Rename d3d12_swapchain_prepare_command_buffers().
dxgi: Store Vulkan formats in the swapchain object.
dxgi: Factor out d3d12_swapchain_create_image_resources().
dxgi: Move non-Vulkan-specific code out of d3d12_swapchain_create_vulkan_swapchain().
dxgi: Move Vulkan-specific code to d3d12_swapchain_create_vulkan_swapchain().
Jacek Caban (8):
win32u: Use syscall interface for all ntuser functions.
win32u: Implement NtGdiIcmBrushInfo and use it instead of __wine_get_brush_bitmap_info.
win32u: Extend NtGdiSetDIBitsToDeviceInternal for SetDIBits implementation.
win32u: Don't return full OUTLINETEXTMETRICW from __wine_get_file_outline_text_metric.
win32u: Use syscall interface for all exports.
ntdll: Get rid of hacks for direct unix calls.
wineps: Don't include gdi_driver.h from PE module.
win32u: Don't use CDECL for gdi_dc_funcs entries.
Jinoh Kang (7):
kernel32/tests: Remove test for ACTCTX_FLAG_HMODULE_VALID with hModule = NULL case.
kernel32/tests: Test setting lpResourceName to NULL for CreateActCtxW.
ntdll: Move ACTCTX lpResourceName validation to RtlCreateActivationContext.
kernel32/tests: Test loading assembly manifest resource inside dependencies.
ntdll: Don't hard-code DLL manifest resource ID when looking up dependency assembly.
user32/tests: Test for update region after showing a child window.
server: Update parent window region when exposing previously invisible window.
Joshua Ashton (1):
winevulkan: Include function name in asserts.
Martin Storsjö (1):
include: Fix the use of __getReg for aarch64/msvc mode.
Michael Stefaniuc (3):
ws2_32/tests: Remove superfluous casts to self.
wmvcore: Remove superfluous casts to self.
dbghelp: Remove superfluous casts to self.
Nikolay Sivov (8):
ole32/antimoniker: Use CRT allocation functions.
ole32/antimoniker: Fix Enum() return error code.
ole32/classmoniker: Use CRT allocation functions.
ole32/pointermoniker: Use CRT allocation functions.
ole32/itemmoniker: Use CRT allocation functions.
ole32/compositemoniker: Use CRT allocation functions.
ole32/filemoniker: Use CRT allocation functions.
ole32/git: Use CRT allocation functions.
Paul Gofman (13):
ntdll: Support MEM_COALESCE_PLACEHOLDERS in NtFreeVirtualMemory().
ntdll: Factor out unmap_view_of_section() function.
kernelbase/tests: Add tests for MEM_PRESERVE_PLACEHOLDER with UnmapViewOfFile2().
ntdll: Validate flags in NtUnmapViewOfSectionEx().
ntdll: Support MEM_PRESERVE_PLACEHOLDER in NtUnmapViewOfSectionEx().
winegstreamer: Don't pre-check sample size in wg_transform_read_mf().
kernelbase: Don't modify non-volatile regs in RaiseException() on x64.
ws2_32: Make wait in accept() alertable.
ws2_32: Make wait in connect() alertable.
ws2_32: Make wait in WSAPoll() alertable.
ws2_32: Test wait alertability in WSAGetOverlappedResult().
winegstreamer: Implement MFT_MESSAGE_COMMAND_DRAIN for the H264 decoder.
winegstreamer: Implement MFT_MESSAGE_COMMAND_FLUSH for the H264 decoder.
Piotr Caban (12):
msvcr100: Fix next writer unblocking in reader_writer_lock::unlock.
msvcr100: Use Context to store critical_section owner.
msvcr100: Use Context blocking functions in critical_section class.
make_unicode: Don't use Türkiye as it can't be encoded in some locales.
msvcr100: Use Context blocking functions in event class.
msvcr100: Use Context blocking functions in Concurrency::wait().
localspl: Don't pass original document name to cupsStartDocument.
msvcr100: Fix use after free in critical_section::try_lock_for().
msvcr100: Add support for COOPERATIVE_TIMEOUT_INFINITE timeout in critical_section.
msvcr100: Use block_context_for helper in Concurrency::wait().
msvcr100: Use block_context_for helper in event::wait().
msvcr100: Use Context blocking functions in _Condition_variable class.
Rémi Bernon (44):
winegstreamer: Forbid vaapidecodebin when looking for a specific element.
winegstreamer: Only warn on wg_transform input buffer push errors.
winegstreamer: Set the default H264 caps profile to "baseline".
server: Assume the internal clip message to be WM_WINE_CLIPCURSOR.
server: Move set_cursor desktop local variable to wider scope.
win32u: Rename user driver CreateDesktopWindow entry to SetDesktopWindow.
win32u: Call SetDesktopWindow when desktop window is successfully created.
explorer: Load graphics driver before calling CreateDesktopW.
explorer: Use root window if driver doesn't implement create_desktop.
explorer: Don't call driver create_desktop if desktop name is "root".
explorer: Call user driver through a new CreateDesktop callback.
wineandroid: Use the user driver interface to create host desktops.
winex11: Use the user driver interface to create host desktops.
explorer: Remove now unnecessary wine_create_desktop entry.
imm32: Query the new input context in ImmAssociateContextEx / IACE_DEFAULT.
server: Use get_hardware_msg_bit consistently to classify messages.
win32u: Move some window functions to window.c.
win32u: Move cursor clipping functions to input.c.
win32u: Add a separate function to process WM_WINE_CLIPCURSOR.
win32u: Use WM_WINE_CLIPCURSOR / TRUE for empty clipping rect.
user32: Remove now unused virtual screen helpers.
mf/tests: Add H264 decoder tests with concatenated streams.
winegstreamer: Use an IMFMediaType for the internal stream type.
winegstreamer: Generate H264 timestamps using the input type frame rate.
winegstreamer: Use the output wg_format in CAPS sink query.
user32/tests: Zero-initialize keyboard state array.
user32/tests: Add a helper to run a test in a process.
user32/tests: Test more ClipCursor reset scenarios.
winegstreamer: Pass desired output plane alignment to wg_transform_create.
winegstreamer: Pass desired input queue length to wg_transform_create.
winegstreamer: Implement MF_LOW_LATENCY attribute and latency query.
win32u: Reset cursor clipping rectangle on display mode change.
winex11: Rely on win32u to reset clipping on display mode change.
winex11: Reset clipping by calling NtUserClipCursor directly.
server: Don't reset cursor clipping on foreground thread exit.
kernelbase: Comment out DECLSPEC_HOTPATCH for ConvertThreadToFiber.
evr/tests: Test IMFVideoDisplayControl_GetCurrentImage orientation.
evr: Respect RGB format stride in GetCurrentImage.
win32u: Add a reset parameter to WM_WINE_CLIPCURSOR and driver ClipCursor.
server: Use the helper to reset the clip rect when the desktop size changes.
server: Use a separate helper to merge WM_MOUSEMOVE messages.
server: Queue a hardware WM_WINE_CLIPCURSOR message to the foreground thread.
win32u: Asynchronously apply or reset ClipCursor from the hardware message.
winex11: Remove now unnecessary ClipCursor forwarding to foreground thread.
Santino Mazza (1):
riched20: Call ME_UpdateRepaint instead of editor_ensure_visible in set_selection.
Shaun Ren (8):
sapi: Implement ISpObjectToken::CreateKey.
sapi: Partially reimplement ISpObjectTokenEnumBuilder storing a token array.
sapi: Implement token filtering and sorting in ISpObjectTokenEnumBuilder.
sapi: Add SpMMAudioOut stub.
sapi: Implement ISpMMSysAudio::Get/SetDeviceId.
sapi: Add GUIDs SPDFID_Text/WaveFormatEx.
include: Add sperror error code SPERR_UNSUPPORTED_FORMAT.
sapi: Implement ISpMMSysAudio::Get/SetFormat.
Tim Clem (1):
loader: Reserve some space for 32-bit top-down allocations on 64-bit.
Zebediah Figura (10):
winebuild: Use segment prefixes in 16-bit stack switching code instead of writing out byte values.
winebuild: Use the lretw mnemonic in wine_call_to_16().
wow32: Use spec file imports.
ntdll: Do not throw deadlock exceptions for Wine critical sections.
ntdll: Simplify critical section timeout logic.
xaudio2/tests: Add a couple of helpers to abstract the difference between versions.
xaudio2: Move CreateAudioVolumeMeter() and CreateAudioReverb() to xapo.c.
xaudio2: Create XAPO objects directly from CreateAudioVolumeMeter() and CreateAudioReverb().
xaudio2: Use the preprocessor to modify definitions in xaudio2.idl and xaudio2fx.idl.
xaudio2/tests: Fix the IID_IXAPO query.
Zhiyi Zhang (6):
gdiplus/tests: Add pen custom line cap record and play back tests.
gdiplus: Support recording pen custom start line cap.
gdiplus: Support recording pen custom end line cap.
gdiplus: Support playing back pen custom start line cap.
gdiplus: Support playing back pen custom end line cap.
winegstreamer: Fix check for non-zero padding in mf_media_type_from_wg_format_video().
Ziqing Hui (5):
mf/tests: Test input type for WMA decoder DMO.
mf/tests: Test output type for WMA decoder DMO.
mf/tests: Split input type tests from test_wmv_decoder_media_object.
mf/tests: Split output type tests from test_wmv_decoder_media_object.
mf/tests: Split size info tests from test_wmv_decoder_media_object.
The Wine development release 8.9 is now available.
What's new in this release:
- Mono engine updated to version 8.0.0.
- Completion of PE conversion in the PostScript driver.
- Doppler shift support in DirectSound.
- GdiPlus performance improvements.
- Various bug fixes.
The source is available at:
https://dl.winehq.org/wine/source/8.x/wine-8.9.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
You can also get the current source directly from the git
repository. Check https://www.winehq.org/git for details.
Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.
----------------------------------------------------------------
Bugs fixed in 8.9 (total 16):
- #3452 BC3000 - Horribly Slow
- #36230 Silverlight 5.x requires the "Audio Capture Filter" for recording from the microphone
- #50955 .netCore app can't bind to port shortly after another .netCore program binding to the same port was terminated
- #53860 Wine Notepad : Using Japanese Input Method(IM), sometimes cursor goes back when string converted
- #54916 touhou 12.3 with dpad mod crashes on start
- #54917 Need For Speed Underground has keyboard input issues
- #54934 Battle.net unimplemented function msauddecmft.dll.DllGetClassObject called in 32-bit code
- #54936 Wine 8.7 and 8.8 does not print
- #54939 Dotted files are shown - but "don't show dotted" files is active
- #54955 Battle.net crashes on unimplemented function msmpeg2vdec.dll.DllGetClassObject
- #54956 Framemaker 8 crashes on printing
- #54960 winhttp:winhttp - test_websocket() fails on Windows and Wine
- #54965 Rich Edit erroneously moves the cursor to the end of text when system IME composition ends
- #54974 armv7 ELF builds crashing since "ntdll: Support the machine extended parameter in NtMapViewOfSectionEx()."
- #54976 Mono/.Net assemblies fail to start: Application could not be started, or no application associated with the specified file.
- #54982 Visio 2003 print dialog shows broken paper sizes when printing
----------------------------------------------------------------
Changes since 8.8:
Alex Henrie (3):
mshtml: Fix memory leak on error path in add_func_info (Coverity).
mshtml: Only allow one thread to use Gecko.
setupapi: Use CRT functions for memory allocation where possible.
Alexandre Julliard (19):
ntdll: Fix typo in the check for hidden files.
ntdll: Catch MEM_EXTENDED_PARAMETER duplicates for all types.
ntdll: Use STATUS_NOT_SUPPORTED for internal machine mismatch errors.
ntdll: Support the machine extended parameter in NtMapViewOfSectionEx().
ntdll: Add a helper function to map the main exe module.
ntdll: Don't even try to load .so libraries for a different machine.
ntdll: Support the PS_ATTRIBUTE_MACHINE_TYPE attribute for new processes.
kernelbase: Add a helper function to validate process/thread attributes.
kernelbase: Add support for the PROC_THREAD_ATTRIBUTE_MACHINE_TYPE attribute.
start: Move memory allocation into parse_title().
start: Add a separate helper to parse command line options.
start: Use CRT allocation functions.
start: Implement the /machine option.
ntdll: Add a separate helper function for freeing a placeholder.
server: Add a separate request to create a memory view for an image mapping.
server: Return STATUS_IMAGE_MACHINE_TYPE_MISMATCH when the mapping's machine differs from the process.
configure: Don't create the wine64 symlink in multi-arch builds.
ntdll: Also update the entry point address when loading an ARM64X binary.
ntdll: Allocate the ARM64EC code map when the first ARM64X binary is loaded.
Alexandros Frantzis (6):
winewayland.drv: Allocate process_wayland statically.
winewayland.drv: Read and dispatch Wayland events.
winewayland.drv: Handle dynamic Wayland output events.
winewayland.drv: Make access to Wayland output information thread-safe.
winewayland.drv: Update display devices from the desktop window thread.
winewayland.drv: Update desktop window size on display changes.
André Zwing (1):
winedump: Recognize RISC-V PEs.
Anton Baskanov (20):
winegstreamer: Add a second videoconvert before the videoflip.
winegstreamer: Don't force top-down orientation when changing output format in video_decoder.
ir50_32: Let video_decoder flip the video instead of doing it manually.
dsound: Store the frequency of 3D buffers separately.
dsound/tests: Add tests for Doppler shift.
dsound: Enable Doppler shift.
dsound: Change the speed of sound to 360.
dsound: Avoid division by zero when calculating Doppler shift.
dsound/tests: Test Doppler shift with moving listener.
dsound: Use relative velocity to compute Doppler shift.
dsound/tests: Test that the Doppler shift is limited to +-0.5 speed of sound.
dsound: Limit the Doppler shift to +-0.5 speed of sound.
dsound/tests: Test that the shifted frequency is limited to DSBFREQUENCY_MAX.
dsound: Clamp the shifted frequency to [DSBFREQUENCY_MIN, DSBFREQUENCY_MAX].
dsound/tests: Test Doppler shift in head-relative mode.
dsound: Fix Doppler shift in head-relative mode.
dsound/tests: Test Doppler shift with 3D processing disabled.
dsound: Use the value from SetFrequency when 3D processing is disabled.
dsound/tests: Test distance and Doppler factor.
dsound: Take distance and Doppler factor into account.
Aurimas Fišeras (1):
po: Update Lithuanian translation.
Bartosz Kosiorek (7):
gdiplus: Improve performance of GdipInvertMatrix.
gdiplus: Improve performance of gdip_transform_points.
gdiplus: Fix GdipGetGenericFontFamily functions according to native gdiplus.dll.
gdiplus: Limit calculating transformation points to resampling.
gdiplus: Use iterator instead calculate pointer position every time.
gdiplus: Use float increment instead of calculation to impove perf.
gdiplus: Improve performance of DrawImagePointsRect by avoid TransformMatrixPoints.
Bernhard Kölbl (1):
mf: Don't try to clone non existent topo connections.
Brendan Shanks (8):
winemac: Fix window scaling in high-res/retina mode when using a non-retina monitor.
winemac: Remove the unused WineContentView _retinaMode variable.
winemac: Centralize initialization of WineContentView.
winemac: Centralize setting retina-mode-dependent properties on WineContentView's layer.
winemac: Work around poor-quality downscaling in high-res/retina mode on macOS 10.13 and earlier.
winemac: Add missing event to dbgstr_event().
winemac: Explicitly link against Foundation.framework.
win32u: Propagate WM_MOUSEHWHEEL to the parent window in DefWindowProc().
Connor McAdams (7):
include: Define the remaining missing provider interfaces.
uiautomationcore: Don't leak parent node in conditional_navigate_uia_node.
uiautomationcore: Fix maximum ID comparison for uia_{prop,pattern,control}_info_from_id().
uiautomationcore/tests: Add tests for non-nested node events.
uiautomationcore: Implement UiaAddEvent.
uiautomationcore: Implement UiaRemoveEvent.
uiautomationcore: Call IRawElementProviderAdviseEvents methods when events are added or removed.
Davide Beatrici (16):
winepulse: Move AudioCaptureClient into mmdevapi.
winealsa: Use mmdevapi's AudioCaptureClient.
winecoreaudio: Use mmdevapi's AudioCaptureClient.
wineoss: Use mmdevapi's AudioCaptureClient.
winepulse: Move AudioRenderClient into mmdevapi.
winealsa: Use mmdevapi's AudioRenderClient.
winecoreaudio: Use mmdevapi's AudioRenderClient.
wineoss: Use mmdevapi's AudioRenderClient.
winealsa: Implement get_device_period in unixlib.
winecoreaudio: Implement get_device_period in unixlib.
wineoss: Implement get_device_period in unixlib.
winepulse: Implement is_format_supported in unixlib.
explorer: Fix uninitialized variable warning.
winealsa: Move stream mode and period/duration initialization logic into unixlib.
winecoreaudio: Move stream mode and period/duration initialization logic into unixlib.
wineoss: Move stream mode and period/duration initialization logic into unixlib.
Eric Pouech (1):
kernel32/tests: Harden some wow64 module tests.
Esme Povirk (3):
mscoree: Update Wine Mono to 8.0.0.
mscoree: Use updated preload hook function.
mscoree: Search the Mono GAC before the appdomain paths.
Floris Renaud (1):
po: Update Dutch translation.
François Gouget (18):
iphlpapi/tests: Use win_skip() for missing APIs.
ws2_32/tests: Use win_skip() for missing APIs.
wtsapi32/tests: Use win_skip() for missing APIs.
wintab32/tests: Use win_skip() for missing dlls.
gdi32/tests: Use win_skip() for missing APIs.
sti/tests: Use win_skip() for missing APIs.
ntdll/tests: Use win_skip() for missing APIs.
imm32/tests: Fix the spelling of a comment.
mf/tests: Fix the spelling of a win_skip() message.
msado15: Fix the spelling of a comment.
ndtll: Fix the spelling of a comment.
taskschd/tests: Fix the spelling of a test string.
uiautomationcore/tests: Fix the spelling of a win_skip() message.
dnsapi/tests: Ignore OPT records in the CNAME tests.
wineps: Fix the spelling of a constant.
gdi32/tests: Use skip() for APIs which are stubs in some drivers.
wininet/tests: Consistently use strlen() in the InternetGetConnectedStateExA() tests.
wininet/tests: Consistently use strlen() instead of lstrlenA().
Gabriel Ivăncescu (9):
mshtml: Explicitly hold ref to the plugin host in NPP_New.
mshtml: Release ref from the element when detaching the plugin host.
mshtml: Stop the plugin when detaching the plugin host.
mshtml: Expose the other remaining props for element.classList.
mshtml: Implement classList's contains() method.
mshtml: Implement classList's toggle() method.
mshtml: Implement classList's length prop.
mshtml: Implement classList's item() method.
mshtml: Implement indexed props for classList.
Giovanni Mascellani (1):
winegstreamer: Free the GStreamer buffer when freeing a WG parser stream.
Hans Leidekker (2):
webservices: Handle WS_XML_BUFFER_TYPE in get_field_read_option().
winhttp/tests: Fix a test failure.
Jacek Caban (16):
win32u: Use syscall interface for NtGdiOpenDCW.
win32u: Use syscall interface for more painting functions.
win32u: Use syscall interface for more painting functions.
win32u: Use syscall interface for more printer functions.
win32u: Use syscall interface for more path functions.
win32u: Pass blend function as DWORD to NtGdiAlphaBlend.
win32u: Use syscall interface for bitblt functions.
win32u: Use syscall interface for more bitmap functions.
win32u: Use syscall interface for D3DKMT functions.
win32u: Use syscall interface for DIB functions.
win32u: Use syscall interface for more DC functions.
win32u: Use syscall interface for more GDI object functions.
win32u: Use syscall interface for more font functions.
win32u: Use syscall interface for more font functions.
win32u: Use syscall interface for more clipping functions.
win32u: Use syscall interface for all ntgdi functions.
Jactry Zeng (8):
comdlg32: Calculate button height of toolbar with DPI for item dialog.
comdlg32: Set a size for toolbar buttons of the file access dialog.
shell32/tests: Add tests for IFolderView2_{Get, Set}CurrentFolderFlags().
shell32: Implement IFolderView2_{Get, Set}CurrentFolderFlags().
shell32: Reimplement IFolderView2_SetCurrentViewMode() with modern behaviours.
shell32/tests: Move tests of IExplorerBrowser_SetFolderSettings() to a separated function and more tests.
shell32: Reimplement IExplorerBrowser_SetFolderSettings() with support of setting flags.
shell32: Update view mode flags while creating IShellView for IExplorerBrowser.
Jinoh Kang (4):
combase: Fix reading from beyond the end of a HGLOBAL stream.
combase: Compare AddRef() return value against 1 instead of 0 in find_proxy_manager.
combase: Prevent use-after-free due to a race with proxy_manager_destroy.
imm32: Don't erroneously start composition when handling IMC_SETOPENSTATUS.
Mohamad Al-Jaf (2):
msauddecmft: Add DllGetClassObject() stub.
msmpeg2vdec: Add DllGetClassObject() stub.
Nikolay Sivov (11):
d2d1: Implement IsSupported() for HWND target.
wineps: Fix names in paper sizes list.
mfmediaengine: Implement GetNumberOfStreams().
d2d1: Implement IsSupported() for DC target.
d2d1/tests: Use test context for more tests.
d2d1: Reject D2D1_ALPHA_MODE_STRAIGHT alpha mode for HWND targets.
d2d1/tests: Add some more tests for ID2D1GdiInteropRenderTarget.
d2d1: Create GDI-compatible target bitmap for GDI-compatible target usage.
d2d1: Improve GetDC()/ReleaseDC() handling on render targets.
d2d1: Create GDI-compatible swapchain only for corresponding target usage.
d2d1: Improve resource properties check when creating a bitmap.
Paul Gofman (16):
ntdll: Fix tail padding in mark_block_tail().
ntdll: Fix last block detection in heap_walk_blocks().
kernel32/tests: Add tests for subheap sizes.
ntdll: Better match Windows subheap sizes.
ntdll: Handle context overlap in call_user_exception_dispatcher() on x64.
wined3d: Only set changed.lights if wined3d_light_state_enable_light() changed state.
wined3d: Track per light state changes in stateblock.
wined3d: Use RB tree for storing lights.
nsiproxy.sys: Detect PPP interface type from flags on Linux.
ntdll: Handle NULL process handle in MapViewOfFile3().
ntdll: Pass allocation type to map_view().
ntdll: Support MEM_RESERVE_PLACEHOLDER in NtAllocateVirtualMemoryEx().
ntdll: Support MEM_REPLACE_PLACEHOLDER in map_view().
ntdll: Support MEM_REPLACE_PLACEHOLDER in NtAllocateVirtualMemoryEx().
ntdll: Support MEM_PRESERVE_PLACEHOLDER in NtFreeVirtualMemory().
ntdll/tests: Add more tests for placeholders.
Piotr Caban (27):
wineps: Convert WCHAR to Adobe Glyph name on PE side.
wineps: Store builtin fonts list in DEVMODE.
include: Add ddk/winddi.h header.
wineps: Add support for loading builtin fonts from NTF files.
wineps: Enumerate NTF fonts in enum_fonts.
wineps: Pass font data in NTF format to unixlib.
wineps: Don't pass PRINTERINFO structure to unixlib.
wineps: Introduce wine_driver_open_dc wine specific export used to create printer DC.
wineps: Implement Wow64 entry points in the Unix library.
wineps: Use default devmode if winspool returns fake data.
winspool: Register wineps print processor before adding printer.
localspl: Fix wow64_start_doc Wow64 entry point.
wineps: Move BANDINFOSTRUCT definition to unixlib.c.
wineps: Define PSDRV_DEVMODE in unixlib.h.
wineps: Remove unix_ prefix from find_pagesize and find_slot functions.
wineps: Mark default DEVMODE const.
wineps: Simplify PSDRV_UVMetrics implementation.
wineps: Remove unused fields from print_ctx.
wineps: Don't store logPixels in print_ctx.
wineps: Don't store ImageableArea in print_ctx.
gdi32: Mark objects as not used before clearing handles table in emf_reset.
localspl: Implement AbortPrinter while spooling.
winspool: Add AbortPrinter implementation.
gdi32: Abort printing if DeleteDC is called before EndDoc.
wineps: Remove no longer used PSDRV_SelectDownloadFont helper.
wineps: Mark font as unset in PSDRV_SelectFont.
wineps: Fix download font escapement.
Rémi Bernon (48):
imm32: Update the IME composition window position after drawing.
imm32: Use DrawTextW to wrap IME composition string.
comctl32/edit: Notify IME on caret position, format_rect and font changes.
comctl32/edit: Delegate composition string rendering to the IME UI.
user32/edit: Notify IME on position, format_rect and font changes.
user32/edit: Delegate composition string rendering to the IME UI.
hid: Avoid printing uninitialized guid (Valgrind).
dinput/tests: Avoid leaking a IDirectInput reference (Valgrind).
dinput/tests: Avoid leaking data in add_file_to_catalog (Valgrind).
windows.gaming.input: Avoid leaking IDirectInputEffect reference (Valgrind).
winemac: Return the caret position in query_ime_char_rect.
winemac: Remove now unnecessary selected HIMC tracking code.
winemac: Use the default IME implementation for ImeSelect.
dinput/tests: Add a zero-terminator for hardware ids (Valgrind).
mf/tests: Release PROPVARIANT memory in check_attributes (Valgrind).
mf/tests: Avoid leaking media types in test_video_processor (Valgrind).
rtworkq: Release thread pool work object when work_item is destroyed (Valgrind).
winegstreamer: Fix the CS cleanup in wg_sample_queue_destroy (Valgrind).
winegstreamer: Free the params structure after setting the pool meta (Valgrind).
winegstreamer: Remove unnecessary wg_parser their_sink pad.
winegstreamer: Remove unnecessary wg_parser_stream their_src pad.
quartz: Avoid reading past the end of a buffer (Valgrind).
winex11: Use ime_comp_buf != NULL instead of ximInComposeMode.
winex11: Keep track of the cursor position on the XIM side.
winex11: Send an internal WM_IME_NOTIFY wparam to set open status.
winex11: Set or clear XIC focus using a xim_set_focus helper.
winex11: Post internal WM_IME_NOTIFY wparam on composition updates.
winex11: Include the XIM preedit and result text into the IME updates.
winex11: Generate IME messages using WM_IME_NOTIFY instead of callbacks.
winex11: Drop the x11drv_ime_update_association user callback.
winex11: Remove now unnecessary selected HIMC tracking code.
winex11: Use the default IME implementation for ImeSelect.
imm32: Get rid of the graphics driver loading mechanism.
imm32: Remove now unused members from ime_private.
dinput/tests: Add some tests with keyboard action mapping.
dinput: Delete the action mapping registry key on SetActionMap.
dinput: Reset action map mapping before loading the registry mapping.
dinput: Clear DIA_APPNOMAP BuildActionMap flag with specific device semantic.
dinput: Avoid remapping already mapped objects in BuildActionMap.
dinput: Delay input thread start until the first device acquire.
dinput/tests: Test that FromGameController also works with IRawGameController.
windows.gaming.input: Query IGameController interface in TryGetFactoryControllerFromGameController.
mf/tests: Simplify video processor expected input types checks.
mf/tests: Rename some variables in video processor transform tests.
mf/tests: Move broken video processor aperture to a separate test.
mf/tests: Add more video processor tests with RGB555 format.
mf/tests: Add some IV50 encoder / decoder tests.
imm32: Silence some unnecessary FIXMEs.
Sebastian Mayr (2):
d3d8/tests: Test IDirect3DDevice8::ValidateDevice() with various min, mag and mip filters.
wined3d: Improve d3d8 compatibility of texture filters.
Tim Clem (1):
wow64win: Only marshal MSGs in wow64_NtUserCallWindowsHook if needed.
Zebediah Figura (18):
qcap/audiorecord: Implement DecideBufferSize().
qcap/tests: Add tests for audio capture pin connection.
qcap/tests: Test audio capture allocator properties.
qcap/audiorecord: Open a winmm device when connecting.
qcap/audiorecord: Implement streaming.
qcap/tests: Test audio capture streaming.
user32/tests: Do not dump the message sequence when a todo succeeds on Windows.
user32/tests: Do not stop checking the message list when skipping an optional or unsupported message.
qcap/audiorecord: Implement IAMStreamConfig::SetFormat() and IAMStreamConfig::GetFormat().
qcap/audiorecord: Stub IKsPropertySet.
qcap/audiorecord: Implement IKsPropertySet::Get(&ROPSETID_Pin, AMPROPERTY_PIN_CATEGORY).
qcap/audiorecord: Stub IAMBufferNegotiation.
qcap/audiorecord: Implement IAMBufferNegotiation::SuggestAllocatorProperties().
qcap/tests: Remove duplicated tests for allocator identity.
mmdevapi/tests: Remove some unnecessary workarounds.
mmdevapi/tests: Run property store tests for all devices.
mmdevapi/tests: Add some tests for PKEY_AudioEngine_DeviceFormat.
xactengine: Use the xaudio2 channel.
Zhiyi Zhang (1):
d2d1/tests: Add some IsSupported() tests for HWND target.
Ziqing Hui (7):
mfreadwrite/tests: Add tests for MP4 sink writer.
mf/tests: Test GetInputStatus for WMV decoder DMO.
mf/tests: Test Discontinuity for WMV decoder DMO.
mf/tests: Test Flush for WMV decoder DMO.
winegstreamer: Implement GetInputStatus for WMV decoder DMO.
winegstreamer: Implement Discontinuity for WMV decoder DMO.
mf/tests: Add tests for MPEG4 media sink.
The Wine development release 8.8 is now available.
What's new in this release:
- More work towards full PE support in the PostScript driver.
- Initial support for loading ARM64EC modules.
- More work on IME restructuration.
- Various bug fixes.
The source is available at:
https://dl.winehq.org/wine/source/8.x/wine-8.8.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
You can also get the current source directly from the git
repository. Check https://www.winehq.org/git for details.
Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.
----------------------------------------------------------------
Bugs fixed in 8.8 (total 18):
- #33945 Wine build warnings with gcc
- #35254 Freemake Video Converter 4.1 installer complains about running Freemake processes (builtin 'findstr' stub app always returns "match")
- #48596 Multiple applications need tasklist.exe to support printing process list in CSV format '/fo CSV /nh' (Net64+ Client 2.x, Playstation Now 11.x, MathType)
- #49964 32-bit dxdiag doesn't support '/64bit' command line switch (launch 64-bit dxdiag)
- #50576 ACAT Phrase, part of Intel Assistive Context-Aware Toolkit (ACAT) v1.00.0 (.NET 4.5 app) crashes on unimplemented function 'uiautomationcore.dll.UiaNodeFromFocus'
- #51107 rise of nation extended: cannot do multiplayer when having more than one network interface
- #52269 Captvty can't find its own tools/cefsharp folder
- #53073 mfplat: unimplemented function while loading Devil May Cry 1
- #53826 Attempting to install / update battle.net fails with Qt error
- #54250 winedbg loads wrong debug symbols for builtin dlls
- #54367 Wow64 wineboot fails to generate 32Bit slice of wineprefix
- #54596 Wavelab 6.1 has problems minimising window
- #54733 Notepad3 crashes on unimplemented function SHLWAPI.dll.StrFormatByteSizeEx
- #54760 imm32:imm32 - test_ImmActivateLayout() fails on Windows
- #54864 imm32:imm32 - test_ImmSetOpenStatus() fails on Windows in the Korean locale
- #54879 RtlValidSecurityDescriptor should return TRUE if the given descriptor is valid.
- #54904 RtlInitializeSid should return NTSTATUS
- #54918 compiling nvcuda fails with threadpoolapiset.h:36:55: error: expected declaration specifiers before ‘__WINE_DEALLOC’
----------------------------------------------------------------
Changes since 8.7:
Ake Rehnman (2):
ntdll: Fix return value of RtlInitializeSid().
ntdll: Fix RtlValidSecurityDescriptor() return value.
Alex Henrie (1):
winemenubuilder: Skip desktop integration for certain associations.
Alexandre Julliard (23):
ntdll: Initialize TLS links also on the 64-bit side in wow64 mode.
ntdll: Add a helper function to read a PE image directory.
ntdll: Allow loading ARM64EC binaries.
ntdll: Apply dynamic relocations when mapping an ARM64X binary.
ntdll: Support the ARM64EC code map.
ntdll: Implement RtlIsEcCode().
ntdll: Handle the extended memory attributes in NtAllocateVirtualMemoryEx().
ntdll: Support the MEM_EXTENDED_PARAMETER_EC_CODE attribute.
server: Make x86_64 a supported architecture on ARM64.
ntdll: Pass limit instead of zero bits to internal memory mapping functions.
ntdll: Add a helper function to process MEM_EXTENDED_PARAMETER parameters.
ntdll: Support extended address requirements in NtMapViewOfSectionEx().
ntdll/tests: Add tests for address requirements in NtMapViewOfSectionEx().
wow64: Add a helper function to convert MEM_EXTENDED_PARAMETER.
wow64: Convert MEM_EXTENDED_PARAMETER also for NtMapViewOfSectionEx().
ntdll: Add a helper function to free a range of pages.
ntdll: Move the Unix function tables to avoid forward declarations, and make them static.
win32u: Don't export wow64 Unix call functions.
kernelbase: Move Wow64EnableWow64FsRedirection() from kernel32 to kernelbase.
win32u: Don't use floating point types in syscalls.
winebuild: Disallow floating point arguments in syscall functions.
server: Add a separate request to create a memory view for a .so builtin.
server: Move the Wine-specific flags out of the image_flags field.
Alistair Leslie-Hughes (1):
activeds: Free memory on error paths (coverity).
Aurimas Fišeras (1):
po: Update Lithuanian translation.
Biswapriyo Nath (1):
include: Add DXGI_DEBUG_D3D11 in d3d11sdklayers.idl.
Brendan Shanks (2):
include: Implement C_ASSERT() using the C11 _Static_assert() if available.
winemac: Initialize retina_on to avoid incorrect cached display data in high-res/retina mode.
Connor McAdams (1):
combase: Check that process ID matches before searching the MTA for a stub manager.
Conor McCarthy (1):
vkd3d: Leave the command queue op mutex locked after a partial flush.
David Kahurani (2):
gdiplus: Traverse and draw the whole string.
shlwapi: Implement StrFormatByteSizeEx.
Davide Beatrici (18):
winealsa: Move SimpleAudioVolume into mmdevapi.
winecoreaudio: Use mmdevapi's SimpleAudioVolume.
wineoss: Use mmdevapi's SimpleAudioVolume.
winepulse: Use mmdevapi's SimpleAudioVolume.
winecoreaudio: Implement per-channel volume control.
mmdevapi: Remove unused "channel" member in set_volumes_params.
winealsa: Move ChannelAudioVolume into mmdevapi.
winecoreaudio: Use mmdevapi's ChannelAudioVolume.
wineoss: Use mmdevapi's ChannelAudioVolume.
winepulse: Use mmdevapi's ChannelAudioVolume.
winepulse: Move AudioStreamVolume into mmdevapi.
winealsa: Use mmdevapi's AudioStreamVolume.
winecoreaudio: Use mmdevapi's AudioStreamVolume.
wineoss: Use mmdevapi's AudioStreamVolume.
winepulse: Move AudioClock into mmdevapi.
winealsa: Use mmdevapi's AudioClock.
winecoreaudio: Use mmdevapi's AudioClock.
wineoss: Use mmdevapi's AudioClock.
Eric Pouech (3):
evr: Fix incorrect integral computation.
winedump: Fix copy & paste error.
winegstreamer: Fix typo.
Etaash Mathamsetty (1):
kernelbase: Add GetPackagesByPackageFamily stub.
Floris Renaud (1):
po: Update Dutch translation.
François Gouget (2):
kernel32/tests: Use win_skip() for missing APIs.
kernelbase/tests: Use win_skip() for missing APIs.
Georg Lehmann (1):
winevulkan: Update to VK spec version 1.3.250.
Gerald Pfeifer (1):
webservices: Avoid uninitialized variable warning in format_double.
Giovanni Mascellani (11):
winegstreamer: Synchronize concurrent access to the media source.
winegstreamer: Synchronize concurrent access to the media stream.
winegstreamer: Synchronize access to the media source from callbacks.
mfplat/tests: Push image size and format as context.
mfplat/buffer: Use the appropriate image copy function for NV11.
mfplat/buffer: Support YV12, I420 and IYUV image formats.
mfplat/tests: Test large RGB image formats.
mfplat/tests: Test IMF2DBuffer::ContiguousCopyFrom().
mfplat/buffer: Implement IMF2DBuffer::ContiguousCopyFrom().
mfplat/tests: Test IMF2DBuffer::ContiguousCopyTo().
mfplat/buffer: Implement IMF2DBuffer::ContiguousCopyTo().
Jactry Zeng (1):
wordpad: Resize buttons of toolbar to make them align with height of the font list combox.
Michael Stefaniuc (4):
dxdiagn: Avoid assigning COM objects to interface variables.
dbgeng: Avoid casts to IUnknown* in IUnknown method calls.
d2d1: Remove superfluous casts to self.
wbemprox: Avoid assigning COM objects to interface variables.
Mohamad Al-Jaf (3):
include: Add hrtfapoapi.idl file.
hrtfapo: Add stub DLL.
hrtfapo: Add CreateHrtfApo() stub.
Nikolay Sivov (5):
ntdll/tests: Add some tests for RtlInitializeSid().
ntdll: Fix subauthority count check in RtlInitializeSid().
ntdll/tests: Add some RtlValidSecurityDescriptor() tests.
mfplat: Implement MFCreatePathFromURL().
mfplat/tests: Add another test for MFCopyImage().
Olivier F. R. Dierick (1):
dxdiag: Ignore option /64bit on the commandline.
Paul Gofman (11):
win32u: Partially implement NtUserDisplayConfigGetDeviceInfo(DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE).
d3dx9: Fix dst pitch for compressed format in D3DXLoadSurfaceFromMemory().
wbemprox: Bump video driver version and date.
ntdll: Retry send on ECONNREFUSED in try_send().
ntdll/tests: Add tests for freeing a part of view.
kernelbase: Validate nonzero size for MEM_RELEASE in VirtualFreeEx().
ntdll: Fix size validation in NtFreeVirtualMemory().
ntdll: Fully support unaligned views in free ranges management.
ntdll: Factor out some view manipulation functions.
ntdll: Support partial view release in NtFreeVirtualMemory().
ntdll: Add logging for free ranges.
Piotr Caban (37):
gdi32: Ignore in_count parameter in Escape() on PASSTHROUGH escape.
gdi32: Support saving EMR_EXTESCAPE record in spool file.
gdi32: Return error in EndPage if it's called before StartPage.
win32u: Don't allow bitmap fonts if OUT_TT_ONLY_PRECIS output precision is specified.
wineps: Use only TrueType fonts in print processor.
Revert "wineps: Fix default device font selection.".
winspool: Change CUPS printers print processor to wineps.
wineps: Remove no longer used graphic driver functions.
wineps: Use designated initializers to initialize gdi_dc_funcs structure.
wineps: Store page size full name as unicode string.
gdi32: Handle NEXTBAND escape in Escape().
wineps: Remove no longer used NEXTBAND escape.
wineps: Copy GetDeviceCaps implementation to unixlib.
wineps: Copy ResetDC implementation to unixlib.
wineps: Move ExtEscape implementation to unixlib.
wineps: Store font related strings in unicode.
wineps: Copy SelectFont implementation to unixlib.
wineps: Move EnumFonts implementation to unixlib.
wineps: Move GetCharWidth implementation to unixlib.
wineps: Copy GetTextMetrics implementation to unixlib.
wineps: Copy GetTextExtentExPoint implementation to unixlib.
wineps: Use printer DC in print processor.
wineps: Change initial printer font to DEVICE_DEFAULT_FONT.
wineps: Introduce PSDRV_GET_GLYPH_NAME escape to obtain builtin glyph name from unixlib.
wineps: Remove unused fields from PSFONT structure.
wineps: Don't use BUILTIN structure on PE side.
wineps: Remove no longer used font selection code from PE side.
wineps: Remove no longer used PSDRV_StartDoc and PSDRV_EndDoc functions.
gdi32: Add device name to wine_get_gdi_driver call.
wineps: Move remaining DC driver functions to unixlib.
wineps: Rename PSDRV_PDEVICE structure to print_ctx.
wineps: Define PSDRV_PDEVICE structure in unixlib.
wineps: Remove gdi_physdev from print_ctx structure.
wineps: Remove unused fields from PSDRV_DEVMODE.
wineps: Use standard DEVMODEW structure instead of PSDRV_DEVMODE when possible.
wineps: Store data from PPD file used in unixlib in DEVMODE.
wineps: Store font substitution table in DEVMODE.
Rémi Bernon (51):
winegstreamer: Query the wg_parser stream in media_stream_create.
winegstreamer: Keep a IMFMediaSource pointer in the media stream.
winegstreamer: Only break cyclic references in IMFMediaSource_Shutdown.
winegstreamer: Remove unnecessary media source stream states.
riched20: Update the editor IME position on GCS_RESULTSTR.
winex11: Rename preedit buffer and related variables.
winex11: Simplify xic_preedit_draw control flow.
winex11: Compute preedit text buffer sizes in WCHAR units.
winex11: Always zero terminate XIM composition string buffer.
imm32/tests: Move IME calls test helpers around.
imm32/tests: Test cross-thread ImmRequestMessage(W|A) calls.
imm32: Use INPUTCONTEXT directly in ImmRequestMessage(W|A).
imm32/tests: Add more ImmProcessKey and ImmGetVirtualKey tests.
imm32/tests: Test ImmTranslateMessage / ImeToAsciiEx calls.
imm32: Ignore some messages in ImmTranslateMessage.
imm32: Clear vkey before calling ToAsciiEx in ImmTranslateMessage.
imm32: Post messages to the target window in ImmTranslateMessage.
imm32/tests: Adjust the ImmSetOpenStatus tests for MS Korean IME.
imm32/tests: Print human readable IME message names.
imm32/tests: Ignore some unknown WM_IME_NOTIFY messages.
imm32/tests: Add some missing local variables declarations.
imm32/tests: Test MS Korean IME GA-NA-DA sequence.
imm32/tests: Test MS Japanese IME NIHONGO-NO sequence.
winegstreamer: Return a IUnknown pointer from source_create_async_op.
winegstreamer: Avoid potential leak of media source async commands.
winegstreamer: Use helpers to convert stream descriptor type to wg_format.
winegstreamer: Start media streams in a dedicated media_stream_start helper.
winegstreamer: Simplify media source wait_on_sample control flow.
winegstreamer: Avoid eating errors in media source async commands.
winegstreamer: Keep a stream descriptor array on the media source.
winegstreamer: Create media source presentation descriptor as needed.
winemac: Delay ime_set_text until ImeToAsciiEx requests it.
winemac: Wait for IME input result on the unix side.
winemac: Send IME key input from ImeProcessKey.
imm32/tests: Mark some tests as broken by prior SetForegroundWindow call.
winex11: Use a helper to change internal composition status.
winex11: Clear the composition string when input context is closed.
winex11: Simplify NotifyIME with NI_COMPOSITIONSTR / CPS_COMPLETE.
win32u: Introduce new NtUserNotifyIMEStatus syscall.
winex11: Move NotifyIME to the default IME implementation.
winemac: Use the default IME implementation for NotifyIME.
winex11: Use the default IME implementation for ImeSetCompositionString.
winemac: Use the default IME implementation for ImeSetCompositionString.
win32u: Introduce a new ImeProcessKey call through NtUserMessageCall.
winemac: Use the ImeProcessKey driver entry to process IME input.
win32u: Introduce a new ImeToAsciiEx call through NtUserMessageCall.
winemac: Use the ImeToAsciiEx driver entry to retrieve IME result.
winemac: Compute the required COMPOSITIONSTRING size in ImeToAsciiEx.
imm32: Resize the composition string if the driver requested so.
winemac: Write the IME strings to the COMPOSITIONSTRING in ImeToAsciiEx.
winemac: Generate IME messages from the default ImeToAsciiEx implementation.
Santino Mazza (1):
mf/session: Reset presentation flags when session_clear_presentation is called.
Shaun Ren (6):
sapi: Implement ISpRegDataKey::SetStringValue.
sapi: Ignore read_only in ISpRegDataKey::SetKey.
sapi: Implement ISpRegDataKey::OpenKey.
sapi: Use ISpRegDataKey in object_token.
sapi: Implement ISpObjectToken::Set/GetStringValue.
sapi: Implement ISpObjectToken::CreateInstance.
Sven Baars (2):
mscoree/tests: Remove the parent argument from create_new_dir() (Coverity).
ddraw: Set the texture height in SetSurfaceDesc() (Coverity).
Tim Clem (2):
ntdll: Decrement thread count from exit_thread and exit the process if needed.
winemac.drv: Force a window in front of its peers if its level is decreased.
Torge Matthies (4):
ntdll/tests: Add test for file attributes of files with names beginning with a dot.
ntdll: Handle hidden file names inside get_file_info instead of after it.
ntdll: Only infer hidden attribute from file name if xattr is not present.
ntdll: Set xattr in NtCreateFile if inferred and requested attributes don't match.
Vijay Kiran Kamuju (1):
winex11.drv: Fix compile when xrandr is not available.
Zebediah Figura (32):
d3d8: Move surface allocation to d3d8_surface_create().
d3d8: Create sub-resource surfaces manually.
d3d8: Pass the container to d3d8_surface_create().
wined3d: Directly call wined3d_texture_create() to create swapchain textures.
winepulse: Avoid accessing the product name after freeing it.
ntdll: Fix the prototype of NtDuplicateToken().
advapi32/tests: Add more tests for token duplication.
quartz: Check whether the pin is connected in IBasicVideo::GetVideoSize().
quartz: Check whether the pin is connected in IVideoWindow::put_Caption().
quartz: Check whether the pin is connected in IVideoWindow::put_WindowStyle().
quartz: Check whether the pin is connected in IVideoWindow::put_AutoShow().
quartz: Check whether the pin is connected in IVideoWindow::put_Owner().
quartz: Check whether the pin is connected in IVideoWindow::put_MessageDrain().
quartz: Check whether the pin is connected in IVideoWindow::put_Visible().
quartz: Check whether the pin is connected in IVideoWindow::SetWindowPosition().
d3d9/tests: Add some more tests for accessing an old backbuffer surface after a reset.
d3d9: Hold a reference to the wined3d swapchain from d3d9 swapchain surfaces.
d3d8: Hold a reference to the wined3d swapchain from d3d8 swapchain surfaces.
d3d11: Hold a reference to the wined3d swapchain from d3d11 swapchain textures.
wined3d: Do not forward texture references to the swapchain.
wined3d: Read the sm4 sample count in DCL instructions.
wined3d: Do not declare resources as multisampled if the sample count is 1.
qcap/audiorecord: Get rid of the AudioRecord typedef.
qcap/audiorecord: Add a stub source pin.
qcap/tests: Test audio capture pin interfaces.
qcap/tests: Test audio capture pin information.
qcap/tests: Test the audio capture CLSID.
qcap/audiorecord: Stub IAMStreamConfig.
qcap/tests: Add tests for media types.
qcap/audiorecord: Implement pin_get_media_type().
qcap/audiorecord: Implement IAMStreamConfig::GetStreamCaps().
qcap/audiorecord: Partially implement QueryAccept().
Zhiyi Zhang (15):
tasklist: Add basic functionality.
tasklist: Support '/nh' option.
tasklist: Support '/fo' option.
tasklist: Partially support '/fi' option.
findstr: Add basic functionality.
oledb32/tests: Test initial catalog property.
oledb32: Use the correct property for initial catalog.
oledb32/tests: Test provider string with multiple provider specific properties.
oledb32: Put provider initialization properties in a single DBPROP_INIT_PROVIDERSTRING.
oledb32/tests: Test converting DBTYPE_VARIANT to DBTYPE_UI8.
oledb32: Support converting DBTYPE_VARIANT to DBTYPE_UI8.
oledb32/tests: Test converting DBTYPE_VARIANT to DBTYPE_GUID.
oledb32: Support converting DBTYPE_VARIANT to DBTYPE_GUID.
oledb32/tests: Test converting DBTYPE_VARIANT to DBTYPE_VARIANT.
oledb32: Support converting DBTYPE_VARIANT to DBTYPE_VARIANT.
Ziqing Hui (4):
winegstreamer: Introduce format_is_compressed.
winegstreamer: Implement wg_parser_stream_get_codec_format.
winegstreamer: Implement amt_from_wg_format_video_wmv.
winegstreamer: Use codec format in stream_props_GetMediaType.
The Wine development release 8.7 is now available.
What's new in this release:
- DXBC shader parsing delegated to vkd3d.
- More spool file improvements in the PostScript driver.
- Various bug fixes.
The source is available at:
https://dl.winehq.org/wine/source/8.x/wine-8.7.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
You can also get the current source directly from the git
repository. Check https://www.winehq.org/git for details.
Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.
----------------------------------------------------------------
Bugs fixed in 8.7 (total 17):
- #9932 Listview highlight issues when drag&drop enabled
- #23647 Street Fighter 4 Benchmark: Flickering screen with parallel rendering enabled
- #32089 Window resize enters endless cycle
- #32958 ReVolt 1207: Crashes when trying to play Stunt Arena
- #33487 Davar bible software not working
- #43672 Airscout program 1.2.0.5 does not load under wine 2.0.2
- #50249 Shapes On A Plane crashes on start
- #51625 Unravel fails to load
- #52322 wineserver memory leak during HTTPs download (Genshin Impact Launcher, Qt5)
- #54424 user32:edit - test_dbcs_WM_CHAR() fails on Windows in mixed locales
- #54464 Multiple games crash on launch (Sekiro: Shadows Die Twice GOTY, Dark Souls III)
- #54799 wininet:internet - test_InternetGetConnectedStateExA() fails in the Japanese and Chinese locales in Wine
- #54808 Access violation in ntdll when running Adolix Split and Merge PDF with .NET Framework installed
- #54815 wininet:internet - test_InternetErrorDlg() fails on Windows 10 1607
- #54844 Existing prefixes keep resetting to Win10 when wine is updated
- #54856 Final Fantasy XI Online: Opening movie doesn't play (redux part II).
- #54882 Conemu fails to start (cannot attach to process)
----------------------------------------------------------------
Changes since 8.6:
Alex Henrie (2):
kernel32/tests: Check that lpSectionBase != NULL before dereferencing.
ntdll: Increment offset by len in build_clr_surrogate_section.
Alexandre Julliard (18):
include: Add some CHPE definitions.
winedump: Dump hybrid metadata also for i386 CHPE modules.
include: Add the ARM64EC context structure.
include: Update the PEB and TEB structures.
zlib: Run source files through zlib2ansi to avoid K&R function definitions.
makedep: Avoid generating empty dependencies.
winedump: Print entry point names in code range lists.
kernelbase: Move to a higher address on 64-bit.
kernel32: Move to a higher address on 64-bit.
ntdll: Reimplement RtlSetBits() to set 32 bits at a time.
ntdll: Reimplement RtlClearBits() to clear 32 bits at a time.
ntdll: Reimplement RtlAreBitsSet() to check 32 bits at a time.
ntdll: Reimplement RtlAreBitsClear() to check 32 bits at a time.
ntdll: Reimplement RtlNumberOfSetBits() to check 32 bits at a time.
ntdll: Use a separate memory allocation for the kernel stack.
ntdll: Use nameless unions/structs for register contexts.
include: Add some new ProcThreadAttribute definitions.
winedump: Fix printing of code ranges in hybrid modules.
Alexandros Frantzis (5):
winewayland.drv: Initialize display devices once after process init.
tools: Support building Wayland protocol source files.
winewayland.drv: Use the output name reported by the compositor.
winewayland.drv: Basic support for Windows monitor positioning.
winewayland.drv: Infer and report Windows monitor positions.
Alistair Leslie-Hughes (1):
widl: Suppress a coverity warning.
Andrey Gusev (1):
dxgi: Update TRACE in dxgi_device_create_resource().
André Zwing (1):
ntdll: Print RPC_S_SERVER_UNAVAILABLE exceptions.
Anton Baskanov (7):
winegstreamer: Fix negative height image size calculation.
winegstreamer: Call init_gstreamer() in winegstreamer_create_video_decoder().
dsound: Remove the unused nAvgBytesPerSec field.
dsound: Remove redundant assignments to freqAdjustNum and freqAdjustDen.
dsound: Preserve freqAccNum value in DSOUND_RecalcFormat().
dsound: Acquire the lock when setting 3D buffer parameters.
dsound: Allocate big enough committedbuff up front.
Aurimas Fišeras (1):
po: Update Lithuanian translation.
Bernhard Übelacker (1):
ntoskrnl: Do not leak memory by setting input buffer to NULL.
Brendan Shanks (4):
winemac: Refactor constrain_window_frame() to use separate origin and size arguments.
winemac: Set the Cocoa window contentMaxSize to the size limits from constrain_window_frame().
winemac: Don't constrain surface dimensions to the onscreen part of a window.
msvcrt: Fix crash when rethrowing after a non-C++ exception on x86_64.
Byeong-Sik Jeon (2):
imm32: Stop updating INPUTCONTEXT hWnd member in ImmGetContext.
imm32: Avoid updating INPUTCONTEXT hWnd on ImmSetActiveContext deactivation.
Connor McAdams (12):
uiautomationcore: Implement UIA_ControlTypePropertyId for default HWND provider.
uiautomationcore: Implement UIA_BoundingRectanglePropertyId for default HWND provider.
uiautomationcore: Implement NavigateDirection_Parent navigation for default HWND provider.
uiautomationcore: Add a default ProviderType_Proxy MSAA bridge clientside provider.
uiautomationcore: Implement UiaGetRootNode.
uiautomationcore: Implement IUIAutomation::GetRootElement.
uiautomationcore: Implement conditional NavigateDirection_Parent navigation.
uiautomationcore: Add normalization navigation to UiaGetUpdatedCache.
uiautomationcore: Add UiaNodeFromFocus stub.
uiautomationcore: Implement UiaNodeFromFocus.
uiautomationcore: Implement IUIAutomation::GetFocusedElement{BuildCacheRequest}.
uiautomationcore: Retrieve runtime ID on UiaReturnRawElementProvider thread to prevent a deadlock.
Davide Beatrici (22):
winealsa: Export function to get AudioSessionWrapper object.
winecoreaudio: Export function to get AudioSessionWrapper object.
wineoss: Export function to get AudioSessionWrapper object.
winepulse: Export function to get AudioSessionWrapper object.
mmdevapi: Import GetAudioSessionWrapper() from driver.
mmdevapi: Implement AudioSessionManager.
winealsa: Remove AudioSessionManager.
winecoreaudio: Remove AudioSessionManager.
wineoss: Remove AudioSessionManager.
winepulse: Remove AudioSessionManager.
winealsa: Implement functions to lock and unlock sessions.
winecoreaudio: Implement functions to lock and unlock sessions.
wineoss: Implement functions to lock and unlock sessions.
winepulse: Implement functions to lock and unlock sessions.
winealsa: Use dedicated macros to call interface functions.
winecoreaudio: Use dedicated macros to call interface functions.
wineoss: Use dedicated macros to call interface functions.
winepulse: Use dedicated macros to call interface functions.
winealsa: Move AudioSessionControl into mmdevapi.
winecoreaudio: Use mmdevapi's AudioSessionControl.
wineoss: Use mmdevapi's AudioSessionControl.
winepulse: Use mmdevapi's AudioSessionControl.
Derek Lesho (1):
winegstreamer: Cache wg_parser input data.
Dmitry Timoshkov (1):
shell32/tests: Add SHBindToFolderIDListParent() tests.
Eric Pouech (6):
mf/tests: Add tests about (negative) stride handling.
winegstreamer: In video_processor, activate a videoflip converter.
winedbg: Let 'break symbol : line' command work again.
dbghelp: Use source file path as stored in debug info format.
winedbg: Simplify watch command implementation.
winedbg: Improve size management in watch command.
François Gouget (7):
user32/tests: Fix the DBCS WM_CHAR tests in mixed locales.
dnsapi/tests: Make DnsQuery()'s CNAME tests more compatible with CDNs.
wininet: Add constants for DetectAutoProxyUrl().
wininet/tests: Add more proxy tests.
kernel32/tests: Fix the ScrollConsoleScreenBuffer() tests on Windows 10 1909.
msi/tests: Fix the ok() formats so they match the size of their arguments.
msi/tests: Ok_() takes printf-style arguments.
Gabriel Ivăncescu (12):
mshtml: Implement MediaQueryList's addListener method.
mshtml: Implement MediaQueryList's removeListener method.
mshtml: Use proper event type for PageTransition events.
mshtml: Do not release the principal returned by GetPrincipal.
mshtml: Fix factory leak in init_nsio.
mshtml: Fix nsIFile dir leak in init_xpcom.
mshtml: Fix URI leak in NewURI on failure.
mshtml: Store minimum compat mode required for events in the ctor table.
mshtml: Support cycle collection for nsChannel.
mshtml: Fix nsChannel's load_info leak.
mshtml: Pass actual node_ccp to ccref_decr for nodes.
mshtml/tests: Fix element leak in elem_fire_event.
Giovanni Mascellani (11):
mfplat/tests: Test Lock2D() on a locked D3D9 surface buffer.
mfplat/tests: Test locking flags for D3D9 buffers.
mfplat/tests: Independently test that locking flags are ignored for D3D9 buffers.
mfplat: Fix locking flags usage for D3D9 buffers.
mfplat/tests: Test Lock2D() on a locked DXGI surface buffer.
mfplat/tests: Test locking flags for DXGI buffers.
mfplat: Do not mark a DXGI buffer as locked if surface mapping fails.
mfplat: Fix locking flags usage for DXGI buffers.
mfplat: Only download surface data from GPU for DXGI buffers when reading.
mfplat: Only upload surface data to GPU for DXGI buffers when writing.
mfplat/tests: Test that the content of DXGI buffers is discarded when locking for writing.
Hans Leidekker (1):
wine.inf: Use FLG_ADDREG_NOCLOBBER for CurrentMajor/MinorVersionNumber.
Henri Verbeet (12):
d3dcompiler: Check for minimum bytecode size in d3dcompiler_get_blob_part().
d3dcompiler: Check for minimum bytecode size in d3dcompiler_strip_shader().
d3dcompiler: Store DXBC sections as vkd3d_shader_dxbc_section_desc structures.
d3dcompiler: Use vkd3d_shader_serialize_dxbc() in d3dcompiler_get_blob_part().
d3dcompiler: Use vkd3d_shader_serialize_dxbc() in d3dcompiler_strip_shader().
d3dcompiler: Use vkd3d_shader_parse_dxbc() in d3dcompiler_get_blob_part().
d3dcompiler: Use vkd3d_shader_parse_dxbc() in d3dcompiler_strip_shader().
d3dcompiler: Use vkd3d_shader_parse_dxbc() in d3dcompiler_shader_reflection_init().
wined3d: Implement shader_extract_from_dxbc() on top of vkd3d_shader_parse_dxbc().
vkd3d: Update the version information for release 1.7.
d3d10: Implement d3d10_effect_parse() on top of vkd3d_shader_parse_dxbc().
d3d10: Implement parse_fx10_preshader() on top of vkd3d_shader_parse_dxbc().
Jactry Zeng (2):
appwiz.cpl: Process messages while waiting for the uninstaller to terminate.
appwiz.cpl: Handle WM_CLOSE and WM_COMMAND(IDCANCEL) in the support info dialog.
Jinoh Kang (6):
kernel32/tests: Test for activation context switching between fibers.
ntdll: Factor out reading current activation context into a helper function.
ntdll: Store current activation context stack pointer into a local variable.
ntdll: Use ActivationContextStackPointer instead of referencing ActivationContextStack directly.
ntdll: Implement RtlFreeActivationContextStack().
kernelbase: Implement activation context switching for fibers.
Martin Garton (1):
msvcrt: Fix typo in #define.
Matteo Bruni (2):
d3dcompiler/tests: Add a couple tests for minimum size in D3DGetBlobPart().
d3dcompiler/tests: Add a couple tests for minimum size in D3DStripShader().
Michael Stefaniuc (3):
threadpoolwinrt: Forward a Release() to a Release() method.
uiautomationcore: Drop superfluous TRUE : FALSE conditional expression.
win32u: Use ARRAY_SIZE() instead of open coding it.
Mohamad Al-Jaf (9):
include: Add windows.graphics.capture.interop.idl file.
include: Add appnotify.h file.
twinapi.appcore: Add stub DLL.
twinapi.appcore: Add RegisterAppStateChangeNotification stub.
twinapi.appcore: Add UnregisterAppStateChangeNotification stub.
apisetschema: Add api-ms-win-core-psm-appnotify-l1-1-0.
shell32: Implement SHBindToFolderIDListParent().
shell32/tests: Test SHBindToParent() last parameter behavior.
shell32: Fix last parameter behavior in SHBindToFolderIDListParent().
Paul Gofman (4):
ntdll: Mind LFH pending blocks in RtlDestroyHeap().
ntdll: Avoid integer overflow in block_get_subheap().
mfplat: Fix returned buffer length in dxgi_surface_buffer_lock().
wined3d: Add a comment about mismatched samplers.
Piotr Caban (36):
wineps: Rename handle count parameter in hmf_proc.
wineps: Set text and background color during device creation.
wineps: Handle EMR_EXTCREATEFONTINDIRECTW record in spool files.
wineps: Handle font selection in spool files.
wineps: Store text justification info in print processor data.
wineps: Handle EMR_EXTTEXTOUTW record in spool files.
wineps: Add BiDi support in EMR_EXTTEXTOUTW record.
wineps: Clip visible rectangle to bitmap size in get_vis_rectangles.
wineps: Handle EMR_CREATEPALETTE record in spool files.
wineps: Handle EMR_SELECTPALETTE record in spool files.
wineps: Handle EMR_SETDIBITSTODEVICE record in spool files.
wineps: Handle EMR_STRETCHDIBITS record in spool files.
wineps: Handle EMR_REALIZEPALETTE record in spool files.
wineps: Handle EMR_RESIZEPALETTE record in spool files.
wineps: Handle EMR_SETPALETTEENTRIES record in spool files.
gdi32: Use EMR_REALIZEPALETTE to record RealizePalette.
gdi32: Fix EMR_CREATEPALETTE recording.
gdi32: Store palette in EMR_EOF record.
gdi32/tests: Add EMF palette tests.
wineps: Fix default device font selection.
wineps: Fix return value in path drawing routines.
wineps: Continue printing if path drawing function returns error.
wineps: Reset memory DC state on every page.
localspl: Add support for PRINTER_ATTRIBUTE_RAW_ONLY printer attribute.
localspl: Validate datatype in StartDocPrinter.
wineps: Reset current position on every page.
gdi32: Store the printer info in a structure.
gdi32: Improve EMF DC cleanup when CloseEnhMetafile is not called.
gdi32: Factor out emf_eof helper.
gdi32: Factor out emf_create helper.
gdi32: Add support for creating EMF spool files.
gdi32: Add GdiIsMetaPrintDC implementation.
localspl: Add partial support for PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS attribute.
gdi32: Implicitly call StartPage while drawing on printer DC.
gdi32: Support creating EMRI_DEVMODE records in spool files.
wineps: Handle EMRI_DEVMODE record in spool files.
Rémi Bernon (11):
imm32/tests: Test that ImmSetOpenStatus doesn't set IMMGWL_IMC.
imm32/tests: Check IME UI visibility vs ImmSetCompositionWindow.
imm32/tests: Check ImmSetActiveContext effect on INPUTCONTEXT hWnd member.
imm32: Forward ImmGetContext to NtUserGetWindowInputContext directly.
user32: Move WM_IME_COMPOSITION DefWindowProc handlers in separate helpers.
user32: Ignore WM_IME_COMPOSITION from the IME UI window in DefWindowProc.
imm32: Don't hide/show IME UI window in ImmSetCompositionWindow.
imm32: Move ImmAssociateContext(Ex) around.
imm32: Update IME UI window IMMGWL_IMC when focus or HIMC changes.
imm32/tests: Add some ImmGenerateMessage tests.
imm32: Send messages one by one in ImmGenerateMessage.
Shaun Ren (2):
include: Add more sapi structs and enums.
include: Add ISpTTSEngineSite and ISpTTSEngine interfaces.
Stefan Dösinger (14):
d3dx9: Use __VA_ARGS__ instead of GCCs named variadics.
d3dx9/tests: Use __VA_ARGS__ instead of GCCs named variadics.
wined3d: Sync depth stencils to both early and late depth test.
wined3d: Avoid VK_IMAGE_LAYOUT_GENERAL.
wined3d: Fall back to general layout if necessary.
d3d9/tests: Radeon GPUs don't draw from sysmem textures.
d3d9/tests: Accept AMD GPU sysmem sample failure in test_mipmap_upload.
d3d8/tests: Radeon GPUs don't draw from sysmem textures.
d3d8/test: Accept AMD GPU sysmem sample failure in test_mipmap_upload.
d3dx9: Load D3DAssemble via GetProcAddress.
d3dcompiler/tests: Load D3DAssemble via GetProcAddress.
d3dcompiler: Make D3DAssemble a private export.
d3d9/tests: AMD GPUs sample the border color of cube textures.
d3d9/tests: Accept random depth when using a 3D texture with a 2D sampler.
Vova Mshanetskiy (2):
winhttp: Support WINHTTP_OPTION_PARENT_HANDLE in request_query_option().
winhttp: Avoid unnecessary cast in connect_query_option().
Zebediah Figura (8):
wined3d: Allow retrieving the frontbuffer from a wined3d swapchain.
ddraw: Retrieve the frontbuffer directly from wined3d.
wined3d: Disable shaderTessellationAndGeometryPointSize.
dxgi: Introduce IWineDXGIDeviceParent::register_swapchain_texture() and use it in IDXGIDevice::CreateSurface().
dxgi: Create d3d11 swapchain textures directly from d3d11_swapchain_init().
d3d9: Move surface allocation to d3d9_surface_create().
d3d9: Create sub-resource surfaces manually.
d3d9: Pass the container to d3d9_surface_create().
Ziqing Hui (3):
winegstreamer: Implement wg_format_from_caps_video_wmv.
wingstreamer: Create extra decodebin to decode compressed stream.
mfreadwrite: Fix an address of operator typo.
The Wine stable release 8.0.1 is now available.
What's new in this release:
- Fixes for macOS Ventura 13.3 on Apple Silicon
- Tamil and Turkish translation updates
- Various bug fixes
The source is available at:
https://dl.winehq.org/wine/source/8.0/wine-8.0.1.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
You can also get the current source directly from the git
repository. Check https://www.winehq.org/git for details.
Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.
----------------------------------------------------------------
Bugs fixed in 8.0.1 (total 36):
- #49615 Device read errors logged in dmesg when running wine commands with empty CD/DVD drive, since 5.5
- #51345 Regression: Visual Studio 2005 "package load failure"
- #52506 Setup of game "What's the Secret?" fails to create icon
- #52878 Free PC Audit 5.1.211.96 fails to show info in 'Brief' tab (needs GetBinaryValue method of the StdRegProv class)
- #53274 adsldp:ldap - test_ParseDisplayName() sometimes fails to connect to the server
- #53926 New typelib marshaller depends on IID_IDispatch support from target interface
- #53981 Chromium broken sandbox due to GetSecurityInfo giving access denied
- #54030 Snagit needs Win32_Volume class ( 'select deviceid from win32_volume where driveletter =C:')
- #54215 ListView doesn't refresh when changing between List and Details styles.
- #54234 vbscript fails to compile when colon follows Else in If...Else
- #54289 RtlCopyContext buffer overflow
- #54318 Rich Edit inserts newly composed text at wrong position when system IME composition ends while a selection is active
- #54337 AviUtl shows Japanese text as garbage after conversion in ExEdit edit box
- #54353 crypt32:cert - testVerifyRevocation() gets unexpected success in Wine on second run
- #54357 Spurious fixme message when calling ScrollWindow()
- #54364 RtlGenRandom fails on systems with more than 128 cores
- #54371 loader won't launch from PATH unless named "wine"
- #54376 ws2_32:sock - test_reuseaddr() overflows a sockaddr variable by reading an AF_INET6 peer name into it
- #54379 since wine 8.0 print doesn't work any more
- #54432 Missing ntdll.RtlAddressInSectionTable() implementation causes all GraalVM Native Image exes to crash on load
- #54449 nethack crashes
- #54456 vbscript memory leak in For Each with SafeArray as group
- #54457 vbscript memory leaks in interp_redim_preserve
- #54458 vbscript memory leaks in Global_Split
- #54489 VarAbs() does not handle BSTR arguments correctly
- #54490 vbscript fails to compile when statement follows ElseIf
- #54493 vbscript fails to compile concat when used without space and expression begins with H
- #54495 Motorola Ready For Assistant does not start, needs ext-ms-win-networking-wlanapi-l1-1-0.dll
- #54563 The gif is displaying wrongly, with weird backgrounds of various colors
- #54564 Rich Edit crashes when Ctrl+Right is pressed at past the final paragraph
- #54570 Saints Row: The Third heavy rain causes heavy fps reductions
- #54581 SpeedCommander 20 installer crashes on unimplemented function SHELL32.dll.Shell_GetCachedImageIndexW
- #54617 KakaoTalk IM text edit window leaves artifacts when the text overflows and scroll bar appears
- #54663 ldp.exe crashes on unimplemented function wldap32.dll.ldap_set_dbg_flags
- #54690 ldp.exe crashes when attempting to connect to an invalid host
- #54707 adsldp:ldap - test_DirectorySearch() fails on Windows and Linux
----------------------------------------------------------------
Changes since 8.0:
Akihiro Sagawa (2):
user32/tests: Add DBCS WM_CHAR tests for edit control.
user32/edit: Fix WM_CHAR handler for double-byte characters.
Alex Henrie (5):
shell32: Add support for Program Manager icons with arguments.
wldap32: Add ldap_set_dbg_flags stub.
wldap32: Handle null LDAPMessage in ldap_count_entries.
wldap32: Handle null LDAPMessage in ldap_parse_result.
server: Fix buffer overrun in map_view handler.
Alexandre Julliard (2):
gitlab: Add workaround for more strict git ownership check.
ntdll: Prefer the ntdll path over argv[0] on platforms without reliable exe information.
Alistair Leslie-Hughes (1):
mountmgr.sys: Don't attempt to read from invalid media.
Brendan Shanks (7):
loader: In macOS preloader, move the top-down allocations area down.
loader: In macOS preloader, stop using mincore() to test if a region is empty.
server: On macOS, fake debug registers when running under Rosetta.
ntdll: Add a WARN when setting debug registers fails under Rosetta.
loader: In macOS preloader, fix an environment variable sometimes being lost.
taskmgr: Use exit code 1 when terminating processes.
taskkill: Use exit code 1 when terminating processes.
Carlos Rodriguez (1):
wined3d: Add GPU information for another Intel UHD 630 GPU.
Dmitry Timoshkov (3):
win32u: Give full access rights to the process window station.
win32u: Give full access rights to the thread desktop.
rpcrt4: Mark the buffer as invalid in NdrProxyFreeBuffer().
Eric Pouech (3):
ntdll: Implement RtlAddressInSectionTable.
conhost: Only update font when running with a window.
winedbg: Use debuggee's bitness for 'examine /a' command.
Florian Will (2):
gdiplus/tests: Test for GdipPrivateAddFontFile() sharing violation.
gdiplus: Use FILE_SHARE_READ in GdipPrivateAddFontFile().
Gabriel Ivăncescu (1):
jscript: Fix jsstr leak after changing variant type to BSTR.
Gijs Vermeulen (1):
shell32: Add Shell_GetCachedImageIndexA/W exports.
Giovanni Mascellani (1):
wbemprox: Do not call Release() inside wbemprox_cf_CreateInstance().
Hans Leidekker (8):
wbemprox: Implement GetBinaryValue() method.
adsldp/tests: Avoid test failures when the server is down.
wbemprox: Implement Win32_Volume.
advapi32: Bump random buffer size.
msi: Install and patch global assemblies in InstallFinalize.
msi: Perform late initialization of the assembly caches.
adsldp/tests: Skip all remaining tests when the server is down.
adsldp/tests: Fix test failures.
Hugh McMaster (2):
regedit: Allow export_key() to return TRUE.
regedit: Append '.reg' file extension if necessary.
Illia Polishchuk (2):
d3d9/tests: Add test for non-indexed instancing drawing.
d3d9: Always draw only a single instance for non-indexed draws.
Jacek Caban (2):
win32u: Silence spurious FIXME in NtUserScrollWindowEx.
oleaut32: Remove overflow check for VT_R4 and VT_R8 in VarAbs.
Jason Millard (7):
vbscript: Fix compile when colon follows Else on new line.
vbscript: Fix memory leak in owned safearray iterator.
vbscript: Fix memory leak in Split().
vbscript: Fix memory leak in Split().
oleaut32: Fix VarAbs function for BSTR with positive values.
vbscript: Fix compile when statement after ElseIf or after separator.
vbscript: Fix compile issue with non hex after concat without space.
Jinoh Kang (7):
ws2_32/test: Fix sockaddr buffer overflow in test_reuseaddr.
riched20: Obtain the composition start index after deleting selection.
riched20/tests: Test for word movement across paragraph boundary.
riched20: Don't set para unless committing cursor move in ME_MoveCursorWords.
riched20/tests: Test for ITextDocument::Freeze and ITextDocument::Unfreeze.
riched20: Don't assume that TxDraw preserves the device context's brush selection.
riched20: Implement ITextDocument::Freeze and ITextDocument::Unfreeze.
K.B.Dharun Krishna (1):
po: Update Tamil translation.
Michael Stefaniuc (2):
tools: Get the ANNOUNCE bug list from the stable-notes git notes.
gitlab: Do not run the build script on each commit.
Nikolay Sivov (1):
apisetschema: Add ext-ms-win-networking-wlanapi-l1-1-0.
Paul Gofman (5):
ntdll: Factor out context_copy_ranges() function.
ntdll: Do not use extended context in RtlCopyContext() if extended state is not copied.
cryptnet: Cache revocation status in verify_cert_revocation().
cryptnet: Use cert data hash as cache id instead of serial number.
cryptnet: Also hash issuer cert for cache id.
Piotr Caban (7):
msvcrt: Don't crash on NULL argument in getenv.
msvcrt: Don't crash on NULL argument in _wgetenv.
msvcrt: Improve error handling in getenv_s.
msvcrt: Improve error handling in _wgetenv_s.
winspool: Fix FILE: output handling in StartDocDlgW.
localspl: Ignore an empty output string.
gdiplus: Use transparency instead of background color if transparent color flag is set in GIF GCE.
Rémi Bernon (2):
dwrite: Statically init the system_fallback locale list.
services: Use a separate allocation for NotifyParamsArray[0].params.
Serkan Önder (1):
po: Update Turkish translation.
Tingzhong Luo (1):
evr: Fix crash when clearing input type for the mixer.
Zebediah Figura (1):
oleaut32: Manually construct a stub buffer for dispinterfaces.
Zhiyi Zhang (3):
comctl32/tests: Add WM_STYLECHANGED tests for changing listview view styles.
comctl32/listview: Repaint when changing view styles.
user32/tests: Test winstation and desktop access rights.
The Wine development release 8.6 is now available.
What's new in this release:
- Bundled math library from Musl libc.
- Gecko engine updated to version 2.47.4.
- Improved spool file support in the PostScript driver.
- Various bug fixes.
The source is available at:
https://dl.winehq.org/wine/source/8.x/wine-8.6.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
You can also get the current source directly from the git
repository. Check https://www.winehq.org/git for details.
Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.
----------------------------------------------------------------
Bugs fixed in 8.6 (total 25):
- #11436 Pepakura viewer: err:wgl:X11DRV_wglShareLists Could not share display lists, context already created !
- #18773 Multiple apps need DirectShow MPEG Layer-3 decoder filter / l3codecx.ax (The Westerner, 3D Mark 2001SE)
- #28586 Team Fortress Arcade & Pixel Force: Left 4 Dead music doesn't play
- #32490 Graphical issues in Inquisitor (red squares painted on the screen)
- #42372 Watchtower Library 2016 crashes when trying to play a video
- #49002 Multiple games trigger GL_INVALID_FRAMEBUFFER_OPERATION in wined3d (Free Horror Game "My Place", DiRT Rally 2.0)
- #49332 CounterPath Bria Solo crashes after login dialog
- #51178 The Bat! v9.3.4.12: Missing content in TTreeViews on Windows versions higher than 8
- #52193 schtasks.exe:schtasks fails on Windows 7 when missing privileges
- #53128 Without elevated privileges schedsvc:rpcapi fails on Windows 7
- #53269 uiautomationcore:uiautomation fails on Windows 10 1909
- #53781 Multiple apps crash on unimplemented function CFGMGR32.dll.CM_MapCrToWin32Err (Matrix Awakens MegaCity Unreal Engine 5.1 demo, Hogwarts Legacy)
- #53983 Chromium broken sandbox, needs NtQueryInformationProcess with ProcessHandleTable
- #54106 taskschd:scheduler - test_GetTask() fails on Windows 7 when it has insufficient privileges
- #54109 schedsvc:rpcapi causes taskschd:scheduler to crash on w7u_adm
- #54110 CubicSDR crashes on unimplemented function msvcp140.dll.?_Rethrow_future_exception@std@@YAXVexception_ptr@1@@Z
- #54594 dinput:device8 - test_dik_codes() sometimes gets timeouts on the GitLab CI
- #54634 schtasks.exe:schtasks causes taskschd:scheduler to crash on w7u_adm and w8adm
- #54666 Compilation fails with gcc 4.8.4 - error: missing binary operator before token "("
- #54713 dinput:device8 - test_mouse_keyboard() fails on some Window 7 locales
- #54728 Pro Evolution Soccer 2008 demo takes +- 9 minutes to complete extracting 'Pro Evolution Soccer 2008 DEMO.msi' (disabling 'Light' theme works around)
- #54772 LDAP Explorer (LEX) fails to connect without SSL
- #54774 dinput:device8 - test_overlapped_format() sometimes gets a timeout in Wine (GitLab CI)
- #54781 Wine fails to update existed prefix
- #54819 DnsQuery_A() mishandles CNAME DNS records
----------------------------------------------------------------
Changes since 8.5:
Alex Henrie (6):
wldap32/tests: Name option test functions after the option being tested.
wldap32: Allow LDAP_OPT_REFERRALS to be set from a pointer.
wintrust: Annotate WINTRUST_Alloc with __WINE_(DEALLOC|MALLOC).
wldap32: Skip over the TLS certificate check if not using TLS.
opengl32/tests: Make the wglShareLists tests comprehensive.
winex11: Allow replacing either context in wglShareLists.
Alexandre Julliard (78):
libs: Import the math library from upstream musl 1.2.3.
msvcrt: Use the fabs()/fabsf() implementation from the bundled musl library.
msvcrt: Use the frexp()/frexpf() implementation from the bundled musl library.
msvcrt: Use the modf()/modff() implementation from the bundled musl library.
msvcrt: Use the cbrt()/cbrtf() implementation from the bundled musl library.
msvcrt: Use the hypot()/hypotf() implementation from the bundled musl library.
msvcrt: Use the trunc()/truncf() implementation from the bundled musl library.
msvcrt: Use the fmax()/fmaxf() implementation from the bundled musl library.
msvcrt: Use the fmin()/fminf() implementation from the bundled musl library.
msvcrt: Use the fdim()/fdimf() implementation from the bundled musl library.
msvcrt: Use the copysign()/copysignf() implementation from the bundled musl library.
msvcrt: Use the nan()/nanf() implementation from the bundled musl library.
msvcrt: Use the scalbn() implementation from the bundled musl library.
msvcrt: Use the ilogb()/ilogbf() implementation from the bundled musl library.
msvcrt: Use the logb()/logbf() implementation from the bundled musl library.
msvcrt: Use the remquo()/remquof() implementation from the bundled musl library.
msvcrt: Use the lgamma()/lgammaf() implementation from the bundled musl library.
msvcrt: Use the tgamma()/tgammaf() implementation from the bundled musl library.
msvcrt: Use the expm1()/expm1f() implementation from the bundled musl library.
msvcrt: Use the j0()/y0() implementation from the bundled musl library.
msvcrt: Use the j1()/y1() implementation from the bundled musl library.
msvcrt: Use the jn()/yn() implementation from the bundled musl library.
msvcrt: Use the fmod()/fmodf() implementation from the bundled musl library.
msvcrt: Use the log()/logf() implementation from the bundled musl library.
msvcrt: Use the log10()/log10f() implementation from the bundled musl library.
msvcrt: Use the __expo2()/__expo2f() implementation from the bundled musl library.
msvcrt: Use the coshf() implementation from the bundled musl library.
msvcrt: Use the sinhf() implementation from the bundled musl library.
msvcrt: Use the cosh() implementation from the bundled musl library.
msvcrt: Use the sinh() implementation from the bundled musl library.
msvcrt: Use the atan2()/atan2f() implementation from the bundled musl library.
msvcrt: Use the exp2()/exp2f() implementation from the bundled musl library.
msvcrt: Use the log1p()/log1pf() implementation from the bundled musl library.
msvcrt: Use the log2()/log2f() implementation from the bundled musl library.
msvcrt: Use the fma()/fmaf() implementation from the bundled musl library.
msvcrt: Use the round()/roundf() implementation from the bundled musl library.
msvcrt: Use the floor()/floorf() implementation from the bundled musl library.
msvcrt: Use the ceil()/ceilf() implementation from the bundled musl library.
msvcrt: Use the nextafter()/nextafterf() implementation from the bundled musl library.
msvcrt: Use the nexttoward()/nexttowardf() implementation from the bundled musl library.
msvcrt: Use the __rem_pio2()/__rem_pio2f() implementation from the bundled musl library.
msvcrt: Use the __sindf() implementation from the bundled musl library.
msvcrt: Use the __cosdf() implementation from the bundled musl library.
msvcrt: Use the sin()/sinf() implementation from the bundled musl library.
msvcrt: Use the cos()/cosf() implementation from the bundled musl library.
msvcrt: Use the tan()/tanf() implementation from the bundled musl library.
msvcrt: Use the pow()/powf() implementation from the bundled musl library.
msvcrt: Use the rint()/rintf() implementation from the bundled musl library.
msvcrt: Use the expf() implementation from the bundled musl library.
msvcrt: Use the acosf() implementation from the bundled musl library.
msvcrt: Use the asinf() implementation from the bundled musl library.
msvcrt: Use the atanf() implementation from the bundled musl library.
msvcrt: Use the exp() implementation from the bundled musl library.
msvcrt: Use the acos() implementation from the bundled musl library.
msvcrt: Use the asin() implementation from the bundled musl library.
msvcrt: Use the atan() implementation from the bundled musl library.
msvcrt: Use the asinh()/asinhf() implementation from the bundled musl library.
msvcrt: Use the acosh()/acoshf() implementation from the bundled musl library.
msvcrt: Use the atanh()/atanhf() implementation from the bundled musl library.
msvcrt: Use the tanh()/tanhf() implementation from the bundled musl library.
msvcrt: Use the remainder()/remainderf() implementation from the bundled musl library.
msvcrt: Use the erf()/erfc()/erff()/erfcf() implementation from the bundled musl library.
msvcrt: Use the sqrtf() implementation from the bundled musl library.
msvcrt: Use the sqrt() implementation from the bundled musl library.
msvcrt: Use the _dclass()/_fdclass() implementation from the bundled musl library.
ntdll: Use the sin() implementation from the bundled musl library.
ntdll: Use the cos() implementation from the bundled musl library.
ntdll: Use the tan() implementation from the bundled musl library.
ntdll: Use the atan() implementation from the bundled musl library.
ntdll: Use the atan2() implementation from the bundled musl library.
ntdll: Use the log() implementation from the bundled musl library.
ntdll: Use the pow() implementation from the bundled musl library.
ntdll: Use the sqrt() implementation from the bundled musl library.
ntdll: Use the ceil() implementation from the bundled musl library.
ntdll: Use the floor() implementation from the bundled musl library.
ntdll: Use the fabs() implementation from the bundled musl library.
ntdll: Use the correct section start when reading the COR header.
winedump: Apply all dynamic relocations before dumping alternate PE headers.
Alexandros Frantzis (10):
win32u: Support setting the current mode using gdi_device_manager.
winex11.drv: Extract function to check devmode equality.
winex11.drv: Set the current mode using gdi_device_manager.
winewayland.drv: Set the current mode using gdi_device_manager.
winemac.drv: Extract function to get the current mode.
winemac.drv: Set the current mode using gdi_device_manager.
wineandroid.drv: Set the current mode using gdi_device_manager.
winex11.drv: Use the proper id with the settings handler.
winex11.drv: Do not call desktop get_current_mode() from UpdateDisplayDevices.
winex11.drv: Use a distinct type for the settings id.
Alistair Leslie-Hughes (1):
msado15: Initialize all SYSTEMTIME members.
Aurimas Fišeras (1):
po: Update Lithuanian translation.
Biswapriyo Nath (1):
include: Fix IDirectXVideoDecoderService declaration in dxva2api.idl.
Connor McAdams (5):
uiautomationcore/tests: Add tests for default ProviderType_BaseHwnd clientside provider.
uiautomationcore: Add a default ProviderType_BaseHwnd clientside provider.
uiautomationcore: Implement UIA_ProcessIdPropertyId for default HWND provider.
uiautomationcore: Implement UIA_ClassNamePropertyId for default HWND provider.
uiautomationcore: Implement UIA_NamePropertyId for default HWND provider.
Daniel Tang (1):
wintypes: Declare exported functions in rometadataresolution.h.
Davide Beatrici (11):
winecoreaudio: Retain precision when storing period in unixlib.
winecoreaudio: Store flags in unixlib.
winecoreaudio: Implement and call set_event_handle in unixlib.
winecoreaudio: Implement and call timer_loop in unixlib.
winealsa: Move common mmdevdrv structs into mmdevapi.
winecoreaudio: Use mmdevdrv structs from mmdevapi.
wineoss: Use mmdevdrv structs from mmdevapi.
winepulse: Use mmdevdrv structs from mmdevapi.
mmdevapi: Rename mmdevapi.h to mmdevapi_private.h.
mmdevapi: Add missing includes to mmdevapi_private.h.
mmdevapi: Add missing includes and typedef to mmdevdrv.h.
Eric Pouech (5):
kernel32/debugger: Fix a failing test (on Wine).
winedump: Fix out of bounds access (spotted by GCC13).
winedbg: Don't crash when no search path has been set.
kernel32/tests: Workaround broken behavior in Win7 Pro64.
psapi: Test filesystem redirection with EnumProcessModulesEx.
Florian Will (5):
dinput/tests: Add EnumObjects callback return value test.
dinput: Fix EnumObjects callback return value handling.
dinput/tests: Add guidType test for collection objects.
dinput: Set guidType = GUID_Unknown for HID collections.
dinput/tests: Remove unmatched winetest_pop_context().
François Gouget (14):
dinput/tests: Fix the spelling of an ok() message.
wininet/tests: Remove redundant quotes in an ok() message.
wininet/tests: Avoid an unnecessary strlen() call in internet.c.
kernel32/tests: Improve the WideCharToMultiByte() null-termination and truncation tests.
iphlpapi: Fix the GAA_FLAG_INCLUDE_GATEWAYS constant name.
wininet/tests: Fix the InternetErrorDlg() tests on Windows 10 1607.
wininet/tests: Avoid an unnecessary lstrlenW() call in internet.c.
winintest/tests: Remove a couple of redundant InternetGetConnectedStateEx*() tests.
wininet/tests: Dump the state string if it is not as expected.
wininet: InternetGetConnectedStateExA() must always null-terminate the state string.
wininet/tests: Fix InternetGetConnectedStateEx() parameter checking.
user32/tests: Windows 11's notepad has four icons.
dnsapi/tests: Test how DnsQuery() handles CNAMEs.
advapi32/tests: Make the services resume handle traces more informative.
Gabriel Ivăncescu (6):
mshtml: Tell wine-gecko about the IE compat document mode.
mshtml: Set dom.ipc.plugins.enabled to FALSE.
mshtml: Implement `complete` prop for input elements.
mshtml: Get rid of dispatch_nsevent_hook.
mshtml: Implement ProgressEvent's initProgressEvent method.
mshtml/tests: Add tests for non-stringed url() with non-URL characters in CSS.
Giovanni Mascellani (5):
dxgi/tests: Test GetLastPresentCount() with DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT.
dxgi: Return correct present count with DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT.
dxgi: Return a duplicate frame latency event.
dxgi/tests: Rename the waitable object from "event" to "semaphore".
dxgi/tests: Test the frame latency waitable more thoroughly.
Hans Leidekker (3):
wldap32: Implement LDAP_OPT_REFERRAL_HOP_LIMIT.
wldap32: Don't call ldap_connect() when a connection has already been established.
ws2_32: Skip non-address records in dns_only_query().
Hugh McMaster (5):
kernel32/tests: Check return length of GetConsoleOriginalTitleA/W().
conhost: Save original console title on initialization.
kernelbase: Implement GetConsoleOriginalTitleW().
kernelbase: Implement GetConsoleOriginalTitleA().
kernel32/tests: Test GetConsoleOriginalTitleW() with an empty title.
Jacek Caban (2):
winevulkan: Add support for VK_KHR_map_memory2.
mshtml: Wine Gecko 2.47.4 release.
Jactry Zeng (5):
include: Add FWF_NONE.
shell32: Assign a default view mode value for IShellView.
shell32/tests: Move interfaces creation to a function.
shell32/tests: Add tests for IShellView_GetCurrentInfo().
shell32: Assign a default flags for view information of IShellView.
Mohamad Al-Jaf (34):
widl: Add support for inherited runtime classes.
widl: Add support for protected attribute.
widl: Add support for composable attribute.
cryptowinrt/tests: Remove racey refcount test.
include: Add windows.ui.composition.idl file.
include: Add Windows.UI.Composition.CompositionBrush definition.
include: Add ICompositionSurface interface definition.
include: Add Windows.UI.Composition.CompositionSurfaceBrush definition.
include: Add Windows.UI.Composition.SpriteVisual definition.
include: Add Windows.UI.Composition.CompositionClip definition.
include: Add Windows.UI.Composition.Visual definition.
include: Add Windows.UI.Composition.ColorKeyFrameAnimation definition.
include: Add Windows.UI.Composition.CompositionColorBrush definition.
include: Add Windows.UI.Composition.CubicBezierEasingFunction definition.
include: Add Windows.UI.Composition.CompositionEffectBrush definition.
include: Add Windows.UI.Composition.CompositionEffectFactory definition.
include: Add Windows.UI.Composition.ExpressionAnimation definition.
include: Add Windows.UI.Composition.InsetClip definition.
include: Add Windows.UI.Composition.LinearEasingFunction definition.
include: Add Windows.UI.Composition.CompositionPropertySet definition.
include: Add Windows.UI.Composition.QuaternionKeyFrameAnimation definition.
include: Add Windows.UI.Composition.ScalarKeyFrameAnimation definition.
include: Add Windows.UI.Composition.CompositionScopedBatch definition.
include: Add Windows.UI.Composition.CompositionTarget definition.
include: Add Windows.UI.Composition.Vector2KeyFrameAnimation definition.
include: Add Windows.UI.Composition.Vector3KeyFrameAnimation definition.
include: Add Windows.UI.Composition.Vector4KeyFrameAnimation definition.
include: Add Windows.UI.Composition.CompositionCommitBatch definition.
include: Add Windows.UI.Composition.Compositor definition.
include: Add Windows.UI.Composition.CompositionObject definition.
include: Add Windows.UI.Composition.CompositionDrawingSurface definition.
include: Add Windows.UI.Composition.CompositionGraphicsDevice definition.
widl: Add support for WinRT HANDLE parameter type.
include: Add windows.ui.composition.interop.idl file.
Nikolay Sivov (1):
mfplat: Handle more video subtypes in MFInitMediaTypeFromAMMediaType().
Paul Gofman (10):
winegstreamer: Fix check for non-zero padding in h264 transform.
win32u: Set DEVPKEY_Device_MatchingDeviceId for GPUs.
win32u: Set DEVPKEY_Device_BusNumber for GPUs.
win32u: Set DEVPKEY_Device_RemovalPolicy for GPUs.
mf/tests: Increase h264data.bin video length.
mf/tests: Test h264 decoder with dxgi device manager.
winegstreamer: Process MFT_MESSAGE_SET_D3D_MANAGER in h264 decoder.
winegstreamer: Provide samples if DXGI device manager is set in h264 decoder.
winegstreamer: Pass temporary sample to wg_transform_read_mf() in h264 decoder.
winex11.drv: Fix bit shifts in pixel format description for RGBA formats.
Piotr Caban (61):
win32u: Add support for undocummented DIB_PAL_INDICES color usage in SetDIBits.
gdi32: Rename DIB_PAL_MONO to DIB_PAL_INDICES.
gdi32: Let SetDIBits handle DIB_PAL_INDICES color usage in PlayEnhMetaFileRecord.
wineps: Handle EMR_MASKBLT record in spool files.
wineps: Handle EMR_PLGBLT record in spool files.
wineps: Handle EMR_DELETEOBJECT record in spool files.
wineps: Handle EMR_POLYDRAW record in spool files.
wineps: Handle EMR_POLYDRAW16 record in spool files.
wineps: Handle EMR_CREATEPEN record in spool files.
wineps: Handle EMR_CREATEBRUSHINDIRECT record in spool files.
gdi32: Factor out function for obtaining gdi object handle.
gdi32: Support stock brush in EMR_FILLRGN.
gdi32: Support stock brush in EMR_FRAMERGN.
wineps: Handle EMR_FILLRGN record in spool files.
wineps: Handle EMR_FRAMERGN record in spool files.
wineps: Handle EMR_INVERTRGN record in spool files.
wineps: Handle EMR_SETROP2 record in spool files.
wineps: Handle EMR_SETSTRETCHBLTMODE record in spool files.
wineps: Handle EMR_SETTEXTALIGN record in spool files.
wineps: Handle EMR_OFFSETCLIPRGN record in spool files.
wineps: Handle EMR_EXCLUDECLIPRECT record in spool files.
wineps: Handle EMR_INTERSECTCLIPRECT record in spool files.
wineps: Handle EMR_SCALEVIEWPORTEXTEX record in spool files.
wineps: Handle EMR_SCALEWINDOWEXTEX record in spool files.
wineps: Don't write invisible parts of image to decrease output file size.
wineps: Handle EMR_SELECTCLIPPATH in spool files.
wineps: Handle EMR_EXTSELECTCLIPRGN record in spool files.
wineps: Fix reporting supported color depths in PSDRV_PutImage.
wineps: Handle EMR_GRADIENTFILL record in spool files.
wineps: Handle EMR_ENDPATH record in spool files.
wineps: Handle EMR_ABORTPATH record in spool files.
wineps: Handle EMR_BEGINPATH record in spool files.
wineps: Handle EMR_FILLPATH record in spool files.
wineps: Handle EMR_STROKEANDFILLPATH record in spool files.
wineps: Handle EMR_STROKEPATH record in spool files.
wineps: Handle EMR_CLOSEFIGURE record in spool files.
wineps: Handle EMR_FLATTENPATH record in spool files.
wineps: Handle EMR_WIDENPATH record in spool files.
include: Add EMRTRANSPARENTBLT definition.
gdi32: Handle EMR_TRANSPARENTBLT record in PlayEnhMetaFileRecord.
wineps: Fix SetPixel implementation.
wineps: Don't store currently selected brush in print processor data.
wineps: Handle EMR_SETTEXTCOLOR record in spool files.
wineps: Handle EMR_SETBKCOLOR record in spool files.
wineps: Handle EMR_SAVEDC in spool files.
wineps: Handle EMR_RESTOREDC record in spool files.
wineps: Handle EMR_EXTESCAPE record in spool files.
wineps: Silence FIXME message on EMR_ALPHABLEND record.
wineps: Silence FIXME message on EMR_EXTFLOODFILL record.
wineps: Handle EMR_SETMAPPERFLAGS record in spool files.
wineps: Handle EMR_SETMAPMODE record in spool files.
wineps: Handle EMR_SETBKMODE record in spool files.
wineps: Handle EMR_SETPOLYFILLMODE record in spool files.
wineps: Handle EMR_SETLAYOUT record in spool files.
wineps: Handle EMR_SETTEXTJUSTIFICATION record in spool files.
msvcr100: Add missing ExternalContextBase virtual functions stubs.
msvcr100: Add Context::Block() implementation.
msvcr100: Add ExternalContextBase::Block() implementation.
msvcr100: Add ExternalContextBase::IsSynchronouslyBlocked() implementation.
msvcr100: Add ExternalContextBase::Unblock implementation.
msvcr100: Use Context blocking functions in reader_writer_lock class.
Rémi Bernon (72):
winex11: Remove non-CJK specific XIC creation logic.
winex11: Always create XIC preedit and status attributes.
winex11: Pass hwnd parameter to all XIC callbacks.
winex11: Remove unnecessary else control flow.
winex11: Create the thread XFontSet on thread attach.
winex11: Set thread data XIM pointer outside of open_xim.
winex11: Cleanup XIM initialization traces.
imm32: Rewrite ImmInternalSendIMEMessage helper as imc_send_message.
imm32: Rewrite ImmInternalPostIMEMessage helper as imc_post_message.
imm32: Rewrite ImmInternalSendIMENotify helper as imc_notify_ime.
imm32: Fix mixed-up HIMC / imc pointers in ImmTranslateMessage.
imm32: Simplify control flow in ImmTranslateMessage.
imm32: Cleanup parameters and traces in ImmTranslateMessage.
imm32: Use a stack allocated buffer in ImmTranslateMessage.
ws2_32/tests: Adjust test results without host IPv6 support.
winemac: Rename imeData / data members and variables to himc.
winemac: Use UINT(32) for HIMC in the unixlib interface.
winemac: Assume IME UI window always has a valid HIMC.
winemac: Pass INPUTCONTEXT pointer to UpdateDataInDefaultIMEWindow.
winemac: Add a helper to get IME private window.
winemac: Add a helper to get COMPOSITIONSTRING text.
winemac: Add a helper to select IME private font.
winex11: Assume IME UI window always has a valid HIMC.
winex11: Pass INPUTCONTEXT pointer to UpdateDefaultIMEWindow.
winex11: Add a helper to get COMPOSITIONSTRING text.
winex11: Add a helper to select IME private font.
winex11: Register XIC status callbacks.
winex11: Refactor XIM input style selection.
winex11: Reorder control flow in xic_preedit_draw.
winex11: Fix XIM wchar encoding in xic_preedit_draw.
winex11: Early return control flow in xic_preedit_caret.
winex11: Set x11drv_win_data XIC out of X11DRV_CreateIC.
dinput/tests: Mark some tests as flaky to work around fvwm bug.
imm32/tests: Test setting the same HIMC statuses twice.
imm32/tests: Test WM_IME_NOTIFY messages target window.
imm32/tests: Add more ImmGetCompositionString(W|A) tests.
imm32/tests: Add more ImmSetCompositionString tests.
winex11: Cleanup spaces in IME UI window proc.
winex11: Move IME UI proc to default IME implementation.
winemac: Use the default IME UI window proc implementation.
imm32: Cleanup default IME UI window proc traces.
imm32: Call DefWindowProcW from IME UI for unhandled messages.
imm32: Remove unnecessary HIMC check in IME UI window proc.
imm32/tests: Reduce the number of IME installations.
imm32/tests: Cleanup the cross thread IMC tests.
imm32: Serialize ImeInquire / ImeDestroy calls.
imm32: Use INPUTCONTEXT directly in ImmGetOpenStatus.
imm32: Use INPUTCONTEXT directly in ImmSetOpenStatus.
imm32: Cache INPUTCONTEXT values for every IME.
imm32: Compare open status values in ImmSetOpenStatus.
imm32: Use INPUTCONTEXT directly in ImmGetConversionStatus.
imm32: Use INPUTCONTEXT directly in ImmSetConversionStatus.
include: Add INPUTCONTEXT fdwInit flags definitions.
imm32/tests: Add some Imm(Get|Set)CompositionWindow tests.
imm32/tests: Add some Imm(Get|Set)StatusWindowPos tests.
imm32/tests: Add some Imm(Get|Set)CompositionFont tests.
imm32/tests: Add some Imm(Get|Set)CandidateWindow tests.
imm32: Use INPUTCONTEXT directly in ImmSetCompositionWindow.
imm32: Use INPUTCONTEXT directly in ImmGetCompositionWindow.
imm32: Use INPUTCONTEXT directly in ImmSetStatusWindowPos.
imm32: Use INPUTCONTEXT directly in ImmGetStatusWindowPos.
imm32: Use INPUTCONTEXT directly in ImmSetCompositionFont(A|W).
imm32: Use INPUTCONTEXT directly in ImmGetCompositionFont(A|W).
imm32: Use INPUTCONTEXT directly in ImmSetCandidateWindow.
imm32: Use INPUTCONTEXT directly in ImmGetCandidateWindow.
winegstreamer: Introduce a new wg_init_gstreamer unixlib entry.
winegstreamer: Move some wg_parser / wg_transform helpers to unixlib.c.
winegstreamer: Sync element state with parent in append_element.
winegstreamer: Use append_element to build wg_parser pipeline.
winegstreamer: Remove unnecessary unlink in pad-removed callback.
winegstreamer: Introduce new link_src_to_element / link_element_to_sink helpers.
winegstreamer: Introduce new stream_type_from_caps helper.
Santino Mazza (3):
mf/tests: Test media session error handling.
mf/session: Handle errors when subscribing to source's events.
mf/session: Handle error when a source fails to start.
Stefan Dösinger (2):
wined3d: Rotate vk bind masks in wined3d_swapchain_vk_rotate.
include: X86 msvc has _InterlockedExchangePointer and _InterlockedCompareExchangePointer.
Tatsuyuki Ishi (1):
ntdll: Use log-linear bucketing for free lists.
Torge Matthies (1):
msvcr110: Implement _Context::_IsSynchronouslyBlocked.
Vijay Kiran Kamuju (1):
msvcp110: Add std::_Rethrow_future_exception implementation.
Zebediah Figura (14):
quartz/vmr9: Do not clear the previous allocator and presenter in IVMRFilterConfig9::SetRenderingMode().
quartz/vmr9: Return a default_presenter structure from the default presenter constructor.
quartz/vmr9: Do not bother setting the cookie when using the default presenter.
quartz/vmr9: Do not set the mode if we failed to create the default presenter.
advapi32: Print ReportEvent() messages one line at a time.
d3dx10/tests: Port some additional D3DX10GetImageInfoFromMemory() tests from d3dx11.
windowscodecs: Map GUID_WICPixelFormat32bppRGBA1010102 to DXGI_FORMAT_R10G10B10A2_UNORM as well.
d3dx10: Map DXGI_FORMAT_R16_UNORM to DXGI_FORMAT_R16G16B16A16_UNORM in get_d3dx10_dds_format().
winegstreamer: Initialize media source video types from a wg_video_format array.
winegstreamer: Set the MF_MT_DEFAULT_STRIDE attribute in mf_media_type_from_wg_format().
winegstreamer: Translate the MF_MT_DEFAULT_STRIDE attribute to flipped video in mf_media_type_to_wg_format().
winegstreamer: Move flipping based on RGB to the frontends.
wined3d: Do not use glFramebufferTexture() to bind array RTVs with an array size of one.
d3d10core/tests: Add a regression test for mismatch of layered framebuffer attachments.
Zhiyi Zhang (4):
winex11.drv: Fix a typo.
light.msstyles: Use border fill background for progress parts.
light.msstyles: Don't draw a border for progress fill parts.
wined3d: Add GPU information for AMD Raphael.
The Wine development release 8.5 is now available.
What's new in this release:
- Bundled vkd3d upgraded to version 1.7.
- Better error reporting in the IDL compiler.
- Support for shared Wow64 Classes registry key.
- More cleanups in IME support.
- Support for configuring a WinRT dark theme.
- Various bug fixes.
The source is available at:
https://dl.winehq.org/wine/source/8.x/wine-8.5.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
You can also get the current source directly from the git
repository. Check https://www.winehq.org/git for details.
Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.
----------------------------------------------------------------
Bugs fixed in 8.5 (total 21):
- #44547 Deus Ex: invisible War v1.2 crashes when using the hotkey to quickload a saved game
- #46562 Notepad++ 7.6.3 crashes when searching twice and first time found results
- #47326 Fair Strike fails to map joystick due to IDirectInputDevice8 SetActionMap being a semi-stub.
- #53704 Bible Black ~La Noche de Walpurgis~ won't start
- #53794 Sins of the Solar Empire Rebellion (Gog 1.975.1) crashes on unimplemented function concrt140.dll.?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ
- #53981 Chromium broken sandbox due to GetSecurityInfo giving access denied
- #54560 mscoree:mscoree - test_loadpaths_execute() sometimes gets directory creation errors
- #54618 VARA FM crashes on unimplemented function pdh.dll.PdhVbGetDoubleCounterValue
- #54640 Treecomp listviews and possibly other widgets are not drawn
- #54675 Chocolatey OpenSSH installer fails
- #54679 Conspiracy's Clean Slate 64K demo crashes due to HLSL shader compilation failure
- #54687 LibreVR Revive fails to run (CertGetNameStringW with dwType=CERT_NAME_ATTR_TYPE and pvTypePara missing additional fallbacks)
- #54691 reg.exe:copy, reg.exe:delete, reg.exe:export, reg.exe:import & reg.exe:query (+32-bit reg.exe:add) - The 64-bit tests fail due to ERROR_ACCESS_DENIED errors in Wine
- #54701 Ultimate Race Pro crashes after intro movies
- #54702 ldp.exe crashes when attempting to add, delete, modify, or compare an entry without a name
- #54707 adsldp:ldap - test_DirectorySearch() fails on Windows and Linux
- #54710 imm32:imm32 - test_ImmEscape() fails in the Korean locale on Windows
- #54711 imm32:imm32 - test_ImmGetProperty() fails in the Korean locale on Windows
- #54724 LDAP bind over SSL to a server and port that do not support SSL hangs forever
- #54727 LDAP Explorer (LEX) throws an exception when attempting to connect over SSL
- #54729 wine build fails with bison 3.0.5
----------------------------------------------------------------
Changes since 8.4:
Alex Henrie (14):
include: Annotate LDAP allocation functions with __WINE_(DEALLOC|MALLOC).
wldap32: Handle null DN or null message in ldap_add* and add tests.
wldap32: Handle null DN or null message in ldap_modify* and add tests.
include: Annotate ldap_(*_attribute|get_dn)* with __WINE_(DEALLOC|MALLOC).
wldap32: Annotate allocation functions with __WINE_(DEALLOC|MALLOC).
wldap32: Handle null DN or null attr in ldap_compare* and add tests.
include: Allow multiple definitions on GCC with DECLSPEC_SELECTANY.
wldap32/tests: Use the same context in test_ldap_(add|modify_compare).
wldap32: Handle null DN or null message in ldap_delete* and add tests.
wldap32: Implement setting LDAP_OPT_SSL and add tests.
wldap32: Stub out setting LDAP_OPT_REFERRAL_HOP_LIMIT.
wldap32: Implement ldap_connect.
wldap32: Return ~0u from ldap_modrdn* for any error.
wldap32: Implement setting LDAP_OPT_SERVER_CERTIFICATE and add tests.
Alexandre Julliard (17):
widl: Pass the correct parent name when opening an import file.
include: Declare some missing ntdll functions, and fix the sorting.
kernelbase: Use RtlGetNativeSystemInformation() to implement GetNativeSystemInfo().
wow64: Allow the CPU backend to override CPU information.
wow64: Convert token and debug port in NtCreateUserProcess().
ntdll: Fixup CPU information for old Wow64 mode.
ntdll: Add a helper function to check for old-style Wow64 mode.
ntdll: Add a helper function to check for Wow64 mode.
ntdll: Use get_wow_teb() and wow_peb in more places.
vkd3d: Import upstream release 1.7.
ntdll: One more fix for CPU information in old Wow64 mode.
ntdll: Convert WoW context to native context when running in 32-bit code.
ntdll: Fully initialize the i386 FPU context on ARM64.
kernelbase: Fix pattern checking for genitive month names in get_date_format().
d3dcompiler/tests: Update todos for tests that succeed with vkd3d 1.7.
ntdll: Add a helper function to return the alternate 32/64 loader.
ntdll: Only fall back to start.exe when using a different loader.
Alistair Leslie-Hughes (7):
msado15: Bind fields in _Recordset Open.
msado15: Store all data from provider.
include: Add Missing IUISettings interfaces.
windows.ui: Add Stubbed interface IUISettings.
windows.ui: Add IUISettings2 stub interface.
windows.ui: Use DEFINE_IINSPECTABLE for IUISettings3.
msado15: Handle DBTYPE_STR type when loading recordset data.
Bernhard Kölbl (1):
windows.media.speech/tests: Allow recognizer state to be idle during active recognition session.
Biswapriyo Nath (5):
include: Add IDirectManipulationInteractionEventHandler declaration in directmanipulation.idl.
include: Add missing TS_STATUS constants in textstor.idl.
include: Fix c++ compiler error with msxml2.idl.
include/windows.system.idl: Update file to newer formatting.
include: Add Windows.System.DispatcherQueue definition.
Brendan Shanks (2):
winemac: Fix memory leak in UpdateDisplayDevices.
ntdll: Print correct thread rename trace when using current thread ID with exception method.
Carlos Rodriguez (1):
wined3d: Add GPU information for another Intel UHD 630 GPU.
Connor McAdams (12):
uiautomationcore: Add stub IUIAutomationTreeWalker implementation.
uiautomationcore: Implement IUIAutomationTreeWalker::Get{First/Last}ChildElement{BuildCache}.
uiautomationcore: Implement IUIAutomationTreeWalker::Get{Previous/Next}SiblingElement{BuildCache}.
uiautomationcore: Implement IUIAutomationTreeWalker::GetParentElement{BuildCache}.
uiautomationcore/tests: Skip IAccessible2 tests on Win10v1909.
uiautomationcore/tests: Add NULL input argument tests for IUIAutomationTreeWalker navigation method.
uiautomationcore: Add a helper function for retrieving a property value from an individual node provider.
uiautomationcore: Add support for UIA_ProviderDescriptionPropertyId.
uiautomationcore: Add support for UIA_IsOffscreenPropertyId to MSAA providers.
uiautomationcore: Add support for UIA_LegacyIAccessibleChildIdPropertyId.
uiautomationcore: Add support for UIA_LegacyIAccessibleRolePropertyId.
uiautomationcore: Implement ILegacyIAccessibleProvider::get_Role for MSAA providers.
Eric Pouech (2):
kernel32/tests: Extend the tests for load/unload debug events on Wow64.
wow64: Move filter of (un)load DLL debug events to client side.
Etaash Mathamsetty (6):
kernel32: Add semi-stub for CreateFileTransactedA/W().
kernel32: Add semi-stub for CreateDirectoryTransactedA/W().
kernel32: Add semi-stub for DeleteFileTransactedA/W().
kernel32: Add semi-stub for FindFirstFileTransactedA/W().
kernel32: Add semi-stub for GetFileAttributesTransactedA/W().
kernel32: Add semi-stub for RemoveDirectoryTransactedA/W().
Floris Renaud (1):
po: Update Dutch translation.
François Gouget (16):
mscoree/tests: Avoid temporary directory name collisions.
imm32/tests: Document the WINE_LANGID value.
widl: Error_loc() messages must have a trailing linefeed.
schtasks/tests: Deleting folders requires elevated privileges on Windows 7 & 8.
schtasks/tests: Verify that the task folders are correctly deleted.
schedsvc/tests: Use __HRESULT_FROM_WIN32() to initialize constants.
schedsvc/tests: Use wide character string literals in rpcapi.c.
schedsvc/tests: Use a winetest context in the rpcapi loops.
schedsvc/tests: Document SchRpcGetTaskInfo() calls that crash on Windows.
schedsvc/tests: Deleting tasks & folders requires elevated privileges on Windows 7.
taskschd/tests: Use __HRESULT_FROM_WIN32() to initialize constants.
taskschd/tests: Store the xml definitions as wide string literals in scheduler.c.
taskschd/tests: Use wide character string literals in scheduler.c.
taskschd/tests: Use a winetest context in the scheduler loops.
taskschd/tests: Elevated privileges are needed to connect using a hostname.
taskschd/tests: Deleting tasks & folders requires elevated privileges on Windows 7.
Gabriel Ivăncescu (5):
mshtml: Fix nsevent leak in create_document_event.
mshtml: Fix nsscript leak in bind_event_scripts.
mshtml: Share reference with the node for Gecko DOM Documents.
mshtml: Fix nsuri leak if create_channelbsc failed.
mshtml: Fix nsparser leak if script_elem_from_nsscript failed.
Georg Lehmann (1):
winevulkan: Update to VK spec version 1.3.246.
Hans Leidekker (2):
adsldp/tests: Fix test failures.
ldap: Return an error when the server doesn't respond to the SSL handshake.
Huw D. M. Davies (1):
win32u: Fix printf format warnings.
Jinoh Kang (3):
kernel32/tests: Test for manifest file open share mode in CreateActCtxW.
ntdll: Open application manifest files with FILE_SHARE_DELETE.
ntdll: Don't report user (PE) stack via pthread_attr_setstack().
Louis Lenders (1):
wine.inf: Add EditionID to HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion.
Marc-Aurel Zent (1):
iphlpapi: Return FALSE for bad handles in IcmpCloseHandle.
Max Figura (10):
wined3d: Move the WINED3D_RS_TWEENFACTOR stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_POSITIONDEGREE stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_NORMALDEGREE stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_MINTESSELLATIONLEVEL stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_MAXTESSELLATIONLEVEL stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_ADAPTIVETESS_X stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_ADAPTIVETESS_Y stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_ADAPTIVETESS_Z stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_ADAPTIVETESS_W stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_ENABLEADAPTIVETESSELLATION stub to wined3d_device_apply_stateblock.
Michael Stefaniuc (11):
msdasql: Remove redundant NULL check before heap_free().
windows.media.speech: Remove redundant NULL check before free().
dinput/tests: Use separate statements instead of the comma operator.
jscript: Use separate statements instead of the comma operator.
dmsynth: Don't crash when Open() gets a DMUS_PORTPARAMS7.
dinput/tests: Drop superfluous TRUE : FALSE conditional expressions.
dinput: Remove superfluous cast to self.
uiautomationcore/tests: Drop superfluous TRUE : FALSE conditional expression.
ntdll/tests: Use FAILED() instead of not SUCCEEDED().
wmvcore/tests: Don't cast NULL to another pointer type.
mfplat/tests: Remove duplicated ok() call.
Mohamad Al-Jaf (11):
include: Add windows.graphics.effects.idl file.
include: Add windows.graphics.capture.idl file.
graphicscapture: Add stub DLL.
graphicscapture: Add IGraphicsCaptureSessionStatics stub interface.
graphicscapture/tests: Add IGraphicsCaptureSessionStatics::IsSupported() tests.
graphicscapture: Partially implement IGraphicsCaptureSessionStatics::IsSupported().
winecfg: Add an option to set WinRT app dark theme.
cfgmgr32: Implement CM_MapCrToWin32Err.
cfgmgr32/tests: Add CM_MapCrToWin32Err tests.
include: Add DirectXAlphaMode enum.
include: Add windows.ui.core.idl file.
Nikolay Sivov (15):
d3d10/effect: Add support for itof instruction.
d3d10/effect: Add support for ineg instruction.
d3d10/effect: Add support for imax instruction.
d3d10/effect: Add support for udiv instruction.
d3dcompiler: Always initialize output shader blob pointer in D3DCompile2().
d3dcompiler: Allow D3DCompile2() to succeed with null output shader blob pointer.
d3dcompiler: Always free messages string in D3DCompile2().
d3dcompiler: Fix bytecode buffer leaks in D3DCompile2().
d3d10/effect: Add support for 'movc' instruction.
d3d10/effect: Handle division by zero in 'udiv'.
d3d10/effect: Add support for asin/acos/atan instructions.
d3d10/effect: Add support for umin/umax instructions.
d3d10/effect: Add support for 'imin' instruction.
d3d10/effect: Add support for 'iadd' instruction.
d3d10/tests: Add some tests for trigonometric functions.
Paul Gofman (15):
crypt32: Support user properties for certificates.
crypt32: Use CERT_STORE_ADD_ALWAYS when reading certs from registry.
crypt32: Refactor CRYPT_ImportSystemRootCertsToReg().
crypt32: Refactor read_trusted_roots_from_known_locations().
crypt32: Keep root certs cached in registry unless some are deleted on host.
taskkill: Use CRT allocation functions.
taskkill: Remove unneeded free() before process exit.
taskkill: Enumerate processes in main().
taskkill: Factor out get_task_pid().
taskkill: Use toolhelp snapshot to get process information.
taskkill: Mark processes for termination in main().
taskkill: Support terminating child processes.
services: Create service processes in a job.
services: Factor out notify_service_state() function.
services: Change running service state once its process dies.
Piotr Caban (49):
wineps: Move more code into create_psdrv_physdev helper.
wineps: Create fake PSDRV_PDEVICE OpenPrintProcessor.
wineps: Initialize PSDRV_PDEVICE print job information in PrintDocumentOnPrintProcessor.
wineps: Write document header and footer in PrintDocumentOnPrintProcessor.
wineps: Handle EMR_HEADER record in spool files.
wineps: Handle EMR_EOF record in spool files.
wineps: Handle brush selection in spool files.
wineps: Handle pen selection in spool files.
wineps: Handle EMR_RECTANGLE record in spool files.
wineps: Handle EMR_MOVETOEX record in spool files.
wineps: Handle EMR_LINETO record in spool files.
wineps: Handle EMR_CREATEMONOBRUSH record in spool files.
wineps: Handle EMR_CREATEDIBPATTERNBRUSHPT record in spool files.
wineps: Handle EMR_SETWORLDTRANSFORM record in spool files.
wineps: Handle EMR_MODIFYWORLDTRANSFORM record in spool files.
wineps: Handle EMR_POLYBEZIER record in spool files.
wineps: Handle EMR_POLYPOLYLINE record in spool files.
wineps: Handle EMR_POLYPOLYGON record in spool files.
wineps: Handle EMR_SETPIXELV record in spool files.
wineps: Handle EMR_ELLIPSE record in spool files.
wineps: Handle EMR_ROUNDRECT record in spool files.
wineps: Handle EMR_ARC record in spool files.
wineps: Handle EMR_CHORD record in spool files.
wineps: Handle EMR_PIE record in spool files.
ucrtbase: Add __CxxFrameHandler4 implementation.
wineps: Introduce helper for PolyBezier drawing.
wineps: Handle EMR_POLYGON record in spool files.
wineps: Handle EMR_POLYLINE record in spool files.
wineps: Handle EMR_POLYBEZIERTO record in spool files.
wineps: Handle EMR_POLYLINETO record in spool files.
wineps: Handle EMR_ARCTO record in spool files.
wineps: Handle EMR_POLYBEZIER16 record in spool files.
wineps: Handle EMR_POLYGON16 record in spool files.
wineps: Handle EMR_POLYLINE16 record in spool files.
wineps: Handle EMR_POLYBEZIERTO16 record in spool files.
wineps: Handle EMR_POLYLINETO16 record in spool files.
wineps: Handle EMR_POLYPOLYLINE16 record in spool files.
wineps: Handle EMR_POLYPOLYGON16 record in spool files.
wineps: Support arc direction in PSDRV_DrawArc.
wineps: Handle EMR_ANGLEARC record in spool files.
wineps: Handle EMR_PAINTRGN record in spool files.
wineps: Handle EMR_SETWINDOWEXTEX record in spool files.
wineps: Handle EMR_SETWINDOWORGEX record in spool files.
wineps: Handle EMR_SETVIEWPORTEXTEX in spool files.
wineps: Handle EMR_SETVIEWPORTORGEX record in spool files.
wineps: Handle EMR_SETBRUSHORGEX in spool files.
wineps: Handle EMR_SETARCDIRECTION record in spool files.
wineps: Handle EMR_STRETCHBLT record in spool files.
wineps: Handle EMR_BITBLT record in spool files.
Rémi Bernon (105):
win32u/tests: Test NtUserCreateInputContext (et al.)
win32u: Stub NtUserBuildHimcList syscall.
win32u/tests: Test NtUserBuildHimcList syscall.
win32u: Introduce new next_process_user_handle_ptr helper.
win32u: Implement NtUserBuildHimcList syscall.
dinput: Rewrite IDirectInputDevice8W_BuildActionMap.
dinput: Pass device object format index to queue_event.
dinput: Pass additional information to enum_object callback.
dinput: Split enum_objects_count helper from enum_objects_init.
dinput: Call enum_objects to initialize the device object format.
widl: Simplify uuid literals lexing.
widl: Remove unused lexer aliases.
widl: Simplify preprocessor directive lexing.
widl: Simplify reserved keywords lexing.
widl: Lex calling convention variations toghether.
imm32/tests: Remove GetLastError check on default IME ImmEscape tests.
imm32/tests: Update ImmGetProperty expectations for Korean locale.
dinput/tests: Flush messages after creating the test_mouse_keyboard window.
dinput: Count the actual number of object formats in SetActionMap.
dinput: Initialize device object format when creating devices.
dinput: Move mouse_create_device function around.
dinput: Always allocate and initialize the object_properties.
dinput: Initialize SetActionMap variables in their declarations.
dinput: Always set the DIPROP_BUFFERSIZE property in SetActionMap.
dinput: Only set DIPROP_RANGE in SetActionMap if range isn't empty.
dinput: Use 4 bytes for every object user state in SetActionMap.
dinput: Initialize object formats from device objects in SetActionMap.
dinput: Respect DIA_APPNOMAP in IDirectInputDevice8W_SetActionMap.
dinput: Return error from SetActionMap if SetDataFormat fails.
dinput: Keep device objects app data in the object properties.
dinput: Allow action formats with no matching actions.
dinput: Check IDirectInputDevice8W_SetActionMap flags.
dinput: Return DI_SETTINGSNOTSAVED when DIDSAM_FORCESAVE is used.
imm32: Implement ImmEnumInputContext.
imm32: Remove unnecessary threadDefault InputContextData member.
imm32: Remove unused IMM_IsCrossThreadAccess hwnd parameter.
imm32: Use NtUserQueryInputContext to check cross-thread access.
imm32: Rename InputContextData to struct imc.
widl: Rename (error|warning)_loc_info to (error|warning)_at.
widl: Allow source location to span over multiple lines.
widl: Move diagnostic and location functions to parser.l.
widl: Enable bison locations option.
widl: Improve accuracy of error messages location.
widl: Print the import stack and context in messages.
imm32: Fix ImmEscape(A|W) with NULL data.
imm32: Fix ImmEnumRegisterWord(A|W) callback conversion.
imm32/tests: Reduce test output unnecessary verbosity.
imm32: Stub ImmActivateLayout.
imm32/tests: Test undocumented ImmActivateLayout.
widl: Use spaces to indent attribute rules more consistently.
widl: Move attribute related functions to attribute.c.
widl: Simplify attribute creation with either int or ptr value.
widl: Remove custom attribute creation helper.
widl: Add source location information to attributes.
widl: Use warning_at when reporting duplicate attributes.
widl: Define PARSER_LTYPE instead of api.location.type.
dinput/tests: Test BuildActionMap cases with multiple devices.
dinput/tests: Add more IDirectInput8_EnumDevicesBySemantics tests.
dinput: Trace formats in (Build|Set)ActionMap and EnumDevicesBySemantics.
dinput: Load action map from registry before resetting guid.
dinput: Check device type in BuildActionMap for specific semantics.
dinput: Implement DIDBAM_PRESERVE BuildActionMap flag.
dinput: Rewrite IDirectInput8_EnumDevicesBySemantics.
win32u: Allow LANG_INVARIANT in NtUserActivateKeyboardLayout.
imm32: Use installed IME language for the created HKL.
imm32/tests: Check current keyboard layout during ime calls.
imm32: Call ActivateKeyboardLayout from ImmActivateLayout.
imm32/tests: Test ImmCreateInputContext et al.
imm32/tests: Test ActivateKeyboardLayout with an existing window.
imm32: Enumerate input contexts in ImmActivateLayout.
imm32: Introduce a new imc_select_hkl helper.
imm32: Update HIMC private data when selecting IME.
imm32: Call ImeSelect from ImmLockIMC with current IME.
imm32/tests: Add explicit ImmLoadIME / ImmFreeLayout calls.
imm32/tests: Ignore expected calls marked with todo.
imm32: Cleanup ImmProcessKey variables and traces.
imm32: Ignore ImmProcessKey if hkl isn't the current layout.
imm32/tests: Test ImmProcessKey with the installed IME.
imm32/tests: Test IME UI creation with the installed IME.
imm32/tests: Test IME UI window and IME window presence.
imm32: Update existing input contexts on layout change.
imm32: Keep the IME UI window on the default input context.
imm32: Re-create the IME UI window when IME changes.
imm32: Create the IME UI as child of the IME default window.
imm32/tests: Test DefWindowProc with IME UI messages.
win32u: Ignore IME messages from IME UI windows in DefWindowProc.
win32u: Ignore some IME messages in default_window_proc.
imm32: Pass the HIMC to the IME UI window IMMGWL_IMC.
imm32: Send WM_IME_SELECT messages when IME is activated.
imm32: Select current IME on input contexts when needed.
imm32: Introduce new input_context_init helper.
imm32: Add a default implementation for IME functions.
imm32: Return TRUE from ImmIsIME with any HKL.
winex11: Use the default IME implementation for stubs.
winemac: Use the default IME implementation for stubs.
imm32/tests: Add some ImmSetConversionStatus tests.
imm32/tests: Add some ImmSetOpenStatus tests.
imm32: Avoid recursing into ImeSelect calls.
imm32/tests: Init INPUTCONTEXT status in ImeSelect.
imm32/tests: Add some ImeSetActiveContext tests.
imm32/tests: Add some spurious IME select calls.
imm32/tests: Add some ImmRequestMessageW tests.
imm32/tests: Add some ImmGetCandidateList(W|A) tests.
imm32/tests: Add some ImmGetCandidateListCount(W|A) tests.
imm32/tests: Add some ImmGetCandidateWindow tests.
Shaun Ren (1):
quartz: Set filter sync source in FilterGraph2_AddFilter.
Stefan Dösinger (3):
wined3d: Make video memory accounting a per-resource flag.
ddraw/tests: Native 64 bit ddraw has a video memory leak.
ddraw/tests: Show that SYSMEM | 3DDEVICE surfaces don't consume vidmem.
Sven Baars (12):
advapi32/tests: Copy Software\Classes tests from ntdll.
kernelbase: Call open_key() from open_subkey().
kernelbase: Use open_key() to obtain any existing Wow6432node in create_key().
kernelbase: Pass a name pointer to open_key().
kernelbase: Return the last existing key from open_key() when it's called from create_key().
kernelbase: Don't open Wow6432nodes from create_key().
kernelbase: Factor creating a subkey out of create_key().
kernelbase: Call create_key() from create_subkey().
kernelbase: Add support for shared registry keys.
kernelbase: Recursively obtain the Wow6432Node parent.
kernelbase: Remove special Wow64 handling for HKEY_CLASSES_ROOT.
wine.inf: Put the Clients key in the right place.
Torge Matthies (5):
msvcr100: Only wake task collection waiters when finished >= count.
msvcr100: Use enum for _StructuredTaskCollection return value.
msvcr100: Use enum for _StructuredTaskCollection status bits.
msvcr100: Implement _StructuredTaskCollection canceling.
msvcr100: Implement _StructuredTaskCollection::_IsCanceling.
Tyson Whitehead (3):
crypt32: Add some CertGetNameStringW fallback cases.
crypt32/tests: Test for CertGetNameStringW fallback cases.
crypt32/tests: Document fields in original test certificate.
Vicki Pfau (1):
hidparse.sys: Include zero-count reports in cap count.
Vijay Kiran Kamuju (1):
msvcr100: Add _UnrealizedChore::_CheckTaskCollection stub.
Zebediah Figura (15):
ddraw: Factor out a ddraw_texture_rename_to() helper from ddraw_surface1_Flip().
wined3d: Pass parent ops to wined3d_texture_set_sub_resource_parent().
wined3d: Pass parent ops to wined3d_resource_set_parent().
ddraw: Move sub-resource surface creation to ddraw_texture_init().
ddraw: Make ddraw_surface_init() static.
include: Use hexadecimal constants for XAudio flags.
include: Add D3D10CalcSubresource().
d3d10core/tests: Add a broken() case for WARP in test_occlusion_query().
d3d11/tests: Add a broken() case for WARP in test_occlusion_query().
ddraw/tests: Add some tests for creating surfaces with user memory.
wined3d: Pass parent ops to wined3d_rendertarget_view_set_parent().
ddraw: Reimplement SetSurfaceDesc() by recreating the wined3d texture(s).
ddraw/tests: Make test_texture_wrong_caps() a bit clearer.
include: Include corecrt.h in vadefs.h.
winedevice: Use the ntoskrnl channel.
Zhiyi Zhang (1):
dwrite: Use cache when font transform matrix contains only translation offsets.
Ziqing Hui (5):
mf/tests: Test time length returned by ProcessOutput.
winegstreamer: Add format field to wmv wg_format.
winegstreamer: Ignore framerate of media type for WMV decoder DMO.
winegstreamer: Create wg_transform for WMV decoder.
winegstreamer: Implement ProcessInput and ProcessOutput for WMV decoder DMO.
The Wine stable release 7.0.2 is now available.
What's new in this release:
- Various bug fixes
The source is available at:
https://dl.winehq.org/wine/source/7.0/wine-7.0.2.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
You can also get the current source directly from the git
repository. Check https://www.winehq.org/git for details.
Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.
----------------------------------------------------------------
Bugs fixed in 7.0.2 (total 43):
- #36711 Sid Meier's Civilization IV crashes while loading saved game (GOG.com complete, Colonization, Warlords, Beyond the Sword)('winetricks -q msxml3' is a workaround)
- #39346 Lego Rock Raiders crashes on startup (d3drm_device_init doesn't handle device version 3 case)
- #40444 Find doesn't jump to a found item in WinSCP when editing a file
- #42751 Multiple applications crash on unimplemented function msvcr{100,110}.dll.?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z (Gas Guzzlers Combat Carnage, Clip Studio Paint, Cube World, Intel ACAT)
- #42857 Can't select a fixture in FreeStyler's fixture editor
- #44814 cygwin's bsdtar.exe needs a better ntdll.NtQueryEaFile stub
- #46822 Edit control in ADL search dialog gets initially not drawn in DC++ 0.868, regression
- #47375 Multiple applications crash on unimplemented function msvcr120.dll.?_Schedule@_StructuredTaskCollection@details@Concurrency@@QEAAXPEAV_UnrealizedChore@23@@Z (Photoshop C 2018, CLIP Studio Paint)
- #48487 MSYS based Git 2.25 installer reports 'could not decode hex <hexstring>' (needs support for CryptStringToBinaryW CRYPT_STRING_HEX)
- #48600 Bloomberg Terminal needs unimplemented function dbghelp.dll.SymSrvGetFileIndexInfo
- #49285 PNotesPortable crashes inside WritePrivateProfileStructW
- #50948 taskmgr.exe: wrong memory usage unit (GB => MB)
- #51788 windowscodecs:wmpformat test_decode() fails randomly
- #51842 include/winnt.h:403:50: error: size of unnamed array is negative
- #52457 CNG Encryption Failure (BCryptEncrypt)
- #52534 ListView: multi select never sends LVN_ODSTATECHANGED
- #52545 ACE rights parser should allow octal and decimal formats
- #52686 DateAdd not implemented
- #52831 Kernel32::GetSystemPowerStatus returns invalid data if /sys/class/power_supply/BAT0 is missing
- #52841 Leverless arcade controller SOCD cleaning does not work
- #52972 wineusb.sys: add_usb_device erroneously releases critical section on failure path
- #52975 VTFEdit fails to start: err:module:LdrInitializeThunk "MSVCP80.dll" failed to initialize, aborting
- #53003 XM6 TypeG: some MIDI note-on messages aren't sent to MIDI devices (MIDI running status isn't supported in the MIDI mapper)
- #53005 quartz:systemclock Fails after timeGetTime() wraps
- #53027 Port Royale 4 crashes with wined3d_texture*
- #53032 winedevice.exe segfaults on exit when built with GCC
- #53051 Kvaser software crashes on unimplemented function ntoskrnl.exe.ExNotifyCallback
- #53123 ListView: Ctrl+Shift+LMouse multiselect on LVS_OWNERDATA listviews erroneously sends LVN_ODSTATECHANGED
- #53169 Rich edit control becomes unstable or trips assertion after ITextRange::SetFont is called
- #53170 Rich edit control becomes unstable or trips assertion after changing TextFont properties
- #53234 nsi:nsi - test_ndis_ifinfo() fails randomly on Windows 10 1507
- #53310 Roblox Fails With HttpSendRequest
- #53335 Crash when converting an rich text editor already containing text into a password input
- #53455 shell32:recyclebin - test_query_recyclebin() gets unexpected recyclebin size in Wine
- #53569 postgresql installer 9.3 needs correct string length returned from fso.GetTempName
- #53587 comctl32 GetWindowSubclass crash in Notepad++ (v8.4.3 and 8.4.4 only)
- #53614 KeePassXC crashes on unimplemented function msvcp140.dll.?ReportUnhandledError@_ExceptionHolder@details@Concurrency@@AEAAXXZ
- #53645 AIMP 3 causes memory leaks
- #53706 NtDeviceIoControlFile() is quite slow when called with and invalid handle
- #53714 SQLGetInfo(W) doesn't fill StringLength when InfoValue is NULL
- #53800 CRYPT_GetBuiltinDecoder Unsupported decoder for lpszStructType 1.3.6.1.4.1.311.2.1.4
- #53821 winbase.h: ReOpenFile declaration missing (and not available in any other header)
- #53832 wbemprox: where-clause seems to be case-sensitive
----------------------------------------------------------------
Changes since 7.0.1:
Akihiro Sagawa (2):
midimap: Handle MIDI running status.
mciqtz32: Fix thread handle leak if a second play.
Alex Henrie (3):
ntoskrnl: Add ExNotifyCallback stub.
ntdll: Don't hard-code the battery and AC adapter names on Linux.
user32: Plug icon handle leak in MDI_AugmentFrameMenu (Coverity).
Alexandre Julliard (5):
shell32: Don't return an uninitialized pointer on error in enum_trash_items().
urlmon/tests: Fix race condition in abort test.
mountmgr: Don't crash if connecting to dbus fails.
gdiplus: Get the compositing mode directly from the graphics object.
gitlab: Add workaround for more strict git ownership check.
Alistair Leslie-Hughes (8):
d3drm: Support IDirect3D3 when creating device.
ntdll: Check return parameter before use.
ntdll: RtlFirstFreeAce only return FALSE on error.
ntdll/tests: Add RtlFirstFreeAce tests.
dsdmo: Add Echo FX Support.
dsdmo: Add Compressor FX Support.
odbc: SQLGetInfoW allow NULL parameter InfoValue.
crypt32: Only report Unimplemented decoder when not found in external dll.
Angelo Haller (9):
comctl32/tests: Add hold_key and release_key functions.
comctl32/tests: Add multi select tests for ownerdata listviews.
comctl32/tests: Add change sequence for ownerdata listviews.
comctl32/listview: Send one deselect all items notification for LVS_OWNERDATA listviews.
comctl32/listview: Move sending LVN_ODSTATECHANGED notifications to a function.
comctl32/listview: Send LVN_ODSTATECHANGED only for LVS_OWNERDATA listviews.
comctl32/listview: Send LVN_ODSTATECHANGED notification for LVS_OWNERDATA listview on selection changes.
comctl32/listview: Don't send LVN_ODSTATECHANGED for empty ranges.
comctl32/tests: Add more ownerdata listview tests.
Claire Girka (1):
winepulse: Fix memory leak in pulse_create_stream in some error cases.
Daniel Lehman (1):
kernelbase: Pass va_list copy to internal RtlFormatMessage.
David Curtiss (1):
ws2_32: Allow getsockname after AcceptEx.
David Kahurani (2):
win32u: Use allocator mechanism to allocate DC attributes.
ieframe: Fix memory leak in open_dde_url.
Dmitry Timoshkov (2):
comctl32/tests: Add iItem and uChanged to LVN_ITEMCHANGING/LVN_ITEMCHANGED context.
sechost: Support decimal or octal access rights in ConvertStringSecurityDescriptorToSecurityDescriptor.
Eric Pouech (2):
wldap32: Fix compilation in 32-bit.
winedbg: Fix retrieving integral values.
Esme Povirk (1):
wmphoto: Zero user buffer before calling jxrlib Copy.
Fabian Maurer (1):
kernel32: Prevent null pointer dereference in WritePrivateProfileStructW.
Gijs Vermeulen (2):
dbghelp: Add SymSrvGetFileIndexInfo stub.
msvcp140: Add _ExceptionHolder::ReportUnhandledError stub.
Hans Leidekker (4):
wininet: Remove assertion that is no longer valid in Windows 10.
wininet: Always reset the second input buffer in netcon_secure_connect_setup().
bcrypt: Force symmetric key reset if necessary.
wbemprox: WQL string comparisons are case insensitive.
Hugh McMaster (1):
conhost: Set correct face name when the specified font is not available.
Huw D. M. Davies (1):
nsi: Use the correct members for the error and discard counts.
Jeff Smith (2):
d3drm/tests: Clean up some magic values.
d3drm: Fix components of palette built when loading texture from file.
Jinoh Kang (3):
wineusb.sys: Remove erroneous call to LeaveCriticalSection() in add_usb_device.
riched20: Commit and wrap paragraphs after changing text properties.
riched20: Ensure MEPF_COMPLEX is unset when in password input mode.
Kevin Puetz (2):
winecrt0: Remove free_delay_imports.
vbscript: Don't abort when trying to TRACE() functions with many arguments.
Limstash Wong (1):
taskmgr: Fix the unit in memory usage graph on performance tab.
Louis Lenders (1):
msvcr80: Update manifest resource.
Martin Storsjö (2):
include: Add declarations of _alloca and alloca for MSVC mode.
ntdll: Add SEH unwind info in ARM assembly functions/trampolines.
Mihail Ivanchev (1):
include: Add prototype for ReOpenFile().
Nikolay Sivov (2):
vbscript: Implement DateSerial().
vbscript: Implement DateAdd().
Paul Gofman (3):
msxml3: Use node_get_text() in domelem_get_nodeTypedValue() if no type is present.
crypt32: Support CRYPT_STRING_HEX in CryptStringToBinary().
winhttp/tests: Avoid race condition on closing connection in server_thread().
Piotr Caban (4):
msvcr120: Add missing _StructuredTaskCollection destructor spec file entry.
msvcrt: Fix _wputenv_s return value on error.
msvcrt: Fix _putenv_s return value on error.
msvcrt: Fix _wputenv_s invalid argument handling.
Robert Wilhelm (4):
scrrun: Added DateCreated property for IFile.
scrrun: Add test for correct string length returned from GetTempName.
scrrun: Correct string length returned from GetTempName.
scrrun: Avoid memory leak in error case.
Rémi Bernon (2):
winebus.sys: Implement SOCD neutral cleaning for hatswitches.
server: Avoid using pointer value after realloc.
Santino Mazza (3):
riched20/tests: When selection is out of view, the scrollbar should move.
riched20: Ensure that cursor is visible when selecting text.
jscript: Return ParseProcedureText when compile fails.
Sebastian Lackner (1):
ntdll: Improve stub of NtQueryEaFile.
Tim Clem (1):
kernelbase: Don't assume the length of the process image name.
Torge Matthies (8):
msvcr110: Add _StructuredTaskCollection::_StructuredTaskCollection_ctor stub.
msvcr120: Add _StructuredTaskCollection::_StructuredTaskCollection_dtor stub.
msvcr100: Add _StructuredTaskCollection::_Schedule stub.
msvcr110: Add _StructuredTaskCollection::_Schedule_loc stub.
msvcr100: Implement invalid_multiple_scheduling exception.
msvcr100: Factor out the mapping of a context to a scheduler.
msvcr100: Implement _StructuredTaskCollection::_Schedule and _Schedule_loc.
msvcp90: Fix segfault in bad_alloc exception default constructor.
Zebediah Figura (7):
quartz/systemclock: Use timeGetTime() to retrieve the current time.
wined3d: Correctly handle 3D textures in wined3d_view_{load, invalidate}_location().
ntdll: Add a fast path for NtDeviceIoControlFile(INVALID_HANDLE_VALUE).
xslt: Use win32config.h from the correct directory.
ntdll: Calculate the necessary length after calling snprintf() in SystemWineVersionInformation.
msvcrt: Add SEH annotations for sse2_memcpy().
libwine: Avoid comparing the result of pointer arithmetic to zero.
Zhiyi Zhang (14):
shell32: Correct SHOpenFolderAndSelectItems() prototype.
include: Add SHOpenFolderAndSelectItems() declaration and flags.
shell32/tests: Add SHOpenFolderAndSelectItems() tests.
shell32: Implement SHOpenFolderAndSelectItems().
comctl32/tests: Add GetWindowSubclass() tests.
comctl32: Check reference data pointer before using it.
comctl32/tests: Test that changing focus for edit controls doesn't repaint immediately.
comctl32/edit: Don't repaint immediately when getting focus.
winex11.drv: Handle X errors from glXCopyContext().
winex11.drv: Don't compare error event serial if it's zero.
winegstreamer: Always check the return value from mf_media_type_from_wg_format().
gdi32/tests: Add more tests for GetTextMetrics().
win32u: Choose a smaller ppem to avoid exceeding the requested font height.
win32u: Fix a memory leak.
The Wine development release 8.4 is now available.
What's new in this release:
- Initial step of the Wayland graphics driver.
- Cleanups in IME support.
- A number of test fixes.
- Various bug fixes.
The source is available at:
https://dl.winehq.org/wine/source/8.x/wine-8.4.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
You can also get the current source directly from the git
repository. Check https://www.winehq.org/git for details.
Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.
----------------------------------------------------------------
Bugs fixed in 8.4 (total 51):
- #7585 Thief: the dark project hangs on 'esc' keypress in game if X in 24bpp mode
- #47407 Hard Truck 2: King of The Road (GOG) movies aren't played
- #49266 Amazon Games installs but won't start (needs WindowsFormsApplicationBase startup code?)
- #51848 Multiple applications have very poor performance after 4261369e5d8 (Secondhand Lands, SPORE)
- #52912 t2embed:t2embed fails on Windows with the UTF-8 codepage
- #52948 gdi32:font - test_EnumFonts() fails on Arial Bold on Windows in Russian
- #53172 advapi32:registry - test_enum_value() has a pair of rare failures in UTF-8 system locales
- #53182 shell32:shelllink - A save(NULL, TRUE) fails randomly in test_load_save() on Wine
- #53236 d3d9:device - test_wndproc() sometimes gets an unexpected WM_DISPLAYCHANGE in Wine
- #53270 test_WSARecv() fails when using wow64 thunks [Wow64ApcRoutine() overwrites return value set by NtContinue()]
- #53488 The dxgi:dxgi output is too big on debiant
- #53526 kernel32:sync - test_timer_queue() occasionally fails to delete the timer on Windows 10
- #53528 ntdll:info - test_query_kerndebug() fails on Windows 8 to 10 1709
- #53818 foobar2000 v1.6 crashes shortly after startup on Wine 7.19 or higher
- #53974 d3drm:d3drm sometimes crashes after failing to create the IDirect3DRMDevice* interface in Wine
- #53975 d3drm:d3drm sometimes fails to create an immediate mode device in Wine
- #54003 vbscript:run sometimes fails on Windows UTF-8 locales
- #54008 d3d9:device sometimes fails to create a D3D object in Wine, crashes
- #54019 The 64-bit ntdll:wow64 fails on Windows 11
- #54020 The 32-bit ntdll:wow64 fails on Windows 11
- #54052 winhttp:notification times out randomly in Wine
- #54058 user32:input - test_ToAscii() fails in the Hindi UTF-8 locale
- #54078 ntdll:pipe - test_blocking() sometimes fails in Wine when the pipe is not signaled
- #54168 kernel32:console - test_wait() sometimes fails on Windows 8+
- #54298 d3d12:d3d12 - test_desktop_window() fails on Windows 10 1709
- #54299 d3d12:d3d12 - test_create_device() gets an unexpected 0 refcount on Windows 10 1909+
- #54313 HS_hevo_gc 8.8.1.1 fails to launch
- #54379 since wine 8.0 print doesn't work any more
- #54449 nethack crashes
- #54491 regedit/regproc.c - export_key() is unable to return TRUE
- #54495 Motorola Ready For Assistant does not start, needs ext-ms-win-networking-wlanapi-l1-1-0.dll
- #54504 dbghelp:dbghelp, ntdll:wow64 & psapi:psapi_main fail on Windows 11 due to notepad.exe path remapping
- #54505 psapi:psapi_main - The 64-bit test_EnumProcessModules() gets unexpected Notepad case on Windows 11
- #54506 psapi:psapi_main - The 64-bit test_EnumProcessModulesEx() gets pcs-6464 and pcs-6432 failures on Windows 11
- #54507 psapi:psapi_main - The 32-bit test_EnumProcessModulesEx() gets many pcs-3232 failures due to partial copy errors on Windows 11
- #54509 psapi:psapi_main - The 64-bit test_EnumProcessModules() gets unexpected third module on Windows 11
- #54531 jsproxy:jsproxy crashes on Windows 11
- #54539 Starcraft Remastered Game Initialization Failed
- #54553 mmdevapi:propstore - The 32-bit test_setvalue_on_wow64() fails on Windows 10 2004+
- #54563 The gif is displaying wrongly, with weird backgrounds of various colors
- #54593 gdi32:dc - The SetDeviceGammaRamp() tests fails on Windows 10 1909
- #54605 The 32-bit dbghelp:dbghelp cannot run on Windows <= 10 1607 due to IsWow64Process2() call
- #54617 KakaoTalk IM text edit window leaves artifacts when the text overflows and scroll bar appears
- #54621 Wine 8.3 64-bit is missing in the Debian bookworm repo
- #54637 riched20:txtsrv - test_TxGetNaturalSize fails if system GUI font's glyph widths are wider than expected by the test
- #54645 TextPad 9.1 installation fails in Wine 6 from Linux Mint repo
- #54649 windows.perception.stub:perception - Windows 10 1607 does not have ISpatialSurfaceObserverStatics2
- #54657 kernel32:loader - test_import_resolution() gets bad tls data on Windows 7
- #54663 ldp.exe crashes on unimplemented function wldap32.dll.ldap_set_dbg_flags
- #54669 imm32:imm32 - ime_install() fails in some locales on Windows
- #54690 ldp.exe crashes when attempting to connect to an invalid host
----------------------------------------------------------------
Changes since 8.3:
Alex Henrie (5):
wldap32: Add ldap_set_dbg_flags stub.
wldap32: Replace bvfreeU with plain free.
wldap32: Handle null LDAPMessage in ldap_count_entries.
wldap32: Handle null LDAPMessage in ldap_parse_result.
comctl32/treeview: Ignore the lParam to WM_PRINTCLIENT and add tests.
Alexandre Julliard (32):
ntdll/tests: Check the default stack information against the exe header.
ntdll/tests: Remove invalid instruction from KiUserExceptionDispatcher test.
ntdll/tests: Allow zero size return for NtQueryDirectoryObject on Wow64.
wow64: In system calls always return the status from Wow64SystemServiceEx.
wow64: Push a valid return address when calling KiRaiseUserExceptionDispatcher.
wow64: Keep track of APC stack frames, similarly to user callback frames.
wow64: Declare exported functions in winternl.h.
maintainers: Assume maintainership of ARM platforms.
ntdll: Always call Wow64PrepareForException when dispatching an exception.
server: Determine the native thread context flags on the client side.
ntdll: Pass the WoW context to the server on ARM64.
ntdll: Don't touch the top of the 32-bit thread stack.
wow64: Create the WOW64INFO structure.
wow64: Fixup Eip for breakpoint exceptions.
wow64: Don't update the exception address in raise_exception().
wow64: Implement Wow64RaiseException().
make_makefiles: Die when the git command fails.
gitlab: Add workaround for more strict git ownership check.
lcms2: Import upstream release 2.15.
faudio: Import upstream release 23.03.
ldap: Import upstream release 2.5.14.
tiff: Import upstream release 4.5.0.
ntdll: Fix some CPU information tests on ARM64.
ntdll: Implement the SystemProcessorBrandString query.
ntdll: Implement the SystemProcessorFeaturesInformation query.
wineboot: Use the SystemProcessorBrandString query instead of cpuid.
ntdll/tests: Handle another possible status when SystemProcessorFeaturesInformation is not supported.
ntdll/tests: Fix Wow64 tests failures on Windows 11 ARM64.
ntdll/tests: Update some todos that succeed with the new wow64 architecture.
ntdll: Implement NtWow64IsProcessorFeaturePresent().
wow64: Forward NtWow64IsProcessorFeaturePresent() to the CPU backend.
wineboot: Add processor features for supported WoW64 architectures on ARM64.
Alexandros Frantzis (6):
winewayland.drv: Add initial driver stub.
winewayland.drv: Add initial unixlib stub.
winewayland.drv: Perform basic per-process Wayland initialization.
win32u: Allow drivers to set the null user driver.
winewayland.drv: Report basic monitor information.
winewayland.drv: Report all advertised monitor modes to Wine.
Anton Baskanov (1):
ir50_32: Handle 24-bit output media type.
Brendan Shanks (4):
kernel32: Implement GetFirmwareType().
loader: In macOS preloader, move the top-down allocations area down.
loader: In macOS preloader, stop using mincore() to test if a region is empty.
kernelbase: Implement DiscardVirtualMemory().
Connor McAdams (17):
uiautomationcore: Implement IUIAutomation::Create{True,False}Condition.
uiautomationcore: Implement IUIAutomation::CreatePropertyCondition.
uiautomationcore: Implement IUIAutomation::CreateNotCondition.
uiautomationcore: Implement IUIAutomation::CreateOrCondition.
uiautomationcore: Implement IUIAutomation::get_ControlViewCondition.
uiautomationcore: Implement IUIAutomation::get_RawViewCondition.
uiautomationcore: Validate input arguments for IUIAutomationElement::GetCurrentPropertyValueEx.
uiautomationcore: Add support for element array properties in IUIAutomationElement::GetCurrentPropertyValueEx.
uiautomationcore: Implement IUIAutomation::CreateCacheRequest.
uiautomationcore/tests: Add tests for IUIAutomationElement caching methods.
uiautomationcore: Implement IUIAutomationElement::BuildUpdatedCache.
uiautomationcore: Add support for caching property values in UiaGetUpdatedCache.
uiautomationcore: Implement IUIAutomationCacheRequest::AddProperty.
uiautomationcore: Implement IUIAutomationElement::GetCachedPropertyValueEx.
uiautomationcore/tests: Add tests for IUIAutomationElement find methods.
uiautomationcore: Implement IUIAutomationElement::FindAll{BuildCache}.
uiautomationcore: Implement IUIAutomationElement::FindFirst{BuildCache}.
Daniel Tang (3):
wintypes: Stub RoIsApiContractMajorVersionPresent().
wofutil: Stub WofIsExternalFile().
windows.networking: Stub DllGetActivationFactory().
Davide Beatrici (12):
winealsa: Return STATUS_SUCCESS for unused unixlib functions.
winecoreaudio: Return STATUS_SUCCESS for unused unixlib functions.
wineoss: Return STATUS_SUCCESS for unused unixlib functions.
winepulse: Return STATUS_SUCCESS for unused unixlib functions.
mmdevapi: Query MemoryWineUnixFuncs virtual memory and store the resulting handle.
winepulse: Move process_attach and process_detach handling into mmdevapi.
mmdevapi: Use UTF-16 for client name in "test_connect_params" and "create_stream_params" structs.
mmdevapi: Move test_connect handling into mmdevapi.
winealsa: Use GetModuleFileName() instead of hardcoded module filename for registry key.
winecoreaudio: Use GetModuleFileName() instead of hardcoded module filename for registry key.
wineoss: Use GetModuleFileName() instead of hardcoded module filename for registry key.
winepulse: Use GetModuleFileName() instead of hardcoded module filename for registry key.
Derek Lesho (2):
mfplat/tests: Test bytestream closing behavior in IMFMediaSource::Shutdown.
winegstreamer/media_source: Close bytestream in ::Shutdown.
Dmitry Timoshkov (2):
win32u: Give full access rights to the process window station.
win32u: Give full access rights to the thread desktop.
Eric Pouech (10):
dbghelp/tests: Better use global variables.
dbghelp/tests: Preserve last error in process_get_kind().
dbghelp: Use 'wine' as loader on multi-arch configuration.
dbghelp/tests: Add tests for SymRefreshModuleList() on non-live target.
dbghelp: Don't set ELF loader when wine's loader isn't accessible.
dbghelp: Fix vdso.so lookup.
ntdll/tests: Use msinfo32.exe instead of notepad.exe.
ntdll/tests: Use msinfo32.exe instead of notepad.exe.
psapi/tests: Use msinfo32.exe instead of notepad.exe.
dbghelp/tests: Use msinfo32.exe instead of notepad.exe.
Evan Tang (4):
ntdll: Fix inverted TlsIndex check.
kernel32/tests: Add test verifying that tls init functions are called.
ntdll/tests: Move TlsIndex test to kernel32:loader.
kernel32/tests: Fix tls callback tests on Windows 7.
Fan WenJie (3):
opengl32: Fix missing conversion of glUnmapBuffer_params from 32bit to 64bit.
opengl32: Fix missing conversion of glUnmapNamedBuffer_params from 32bit to 64bit.
wow64: Fix missing conversion of ThreadWineNativeThreadName in wow64_NtSetInformationThread.
Florian Will (1):
comdlg32/tests: Fix itemdlg tests on Windows.
François Gouget (18):
advapi32/tests: Fix the RegEnumValueA() tests in UTF-8 locales.
msado15: Fix the spelling of a comment.
winscard: Fix the spelling of a function parameter.
riched20/tests: Fix a typo in a comment.
dbghelp/tests: Let the tests run on Windows 7, 8 and 10 <= 1607.
t2embed/tests: Fix the TTGetEmbeddingType() test in UTF-8 locales.
windows.perception.stub/tests: Skip some tests when ISpatialSurfaceObserverStatics2 is not supported.
vbscript/tests: Fix the testChrError() tests in the mixed locale case.
d3d8/tests: Remove an unused call to IDirect3D8_GetAdapterDisplayMode().
wofutil: Add a trailing linefeed to a FIXME().
dinput/tests: Skip the tests if acquiring the device fails.
advapi32/tests: Improve the resume handle service tests.
advapi32/tests: Better account for starting and stopping services.
advapi32/tests: Separate the EnumServicesStatus() and EnumServicesStatusEx() tests.
advapi32/tests: Better check the EnumServicesStatusExW() output.
advapi32/tests: Take into account service start / stop race conditions.
advapi32/tests: Enumerate the services using the Unicode API.
advapi32/tests: Skip some tests if the EventLog service crashed.
Gabriel Ivăncescu (10):
kernel32: Fix GetNumberFormatA when input length is 0.
kernel32: Fix GetCurrencyFormatA when input length is 0.
mshtml: Hold ref to HTMLDocumentObj when calling external code.
mshtml: Hold ref to inner window when calling external code.
mshtml: Hold ref to outer window when navigating.
mshtml: Check if browser was detached during notifications while navigating.
mshtml: Hold ref to the frame element during readyState notifications.
mshtml: Grab refs to windows upfront before sending pagehide events.
mshtml: Use already available window local variable in refresh task.
jscript: Fix jsstr leak after changing variant type to BSTR.
Georg Lehmann (5):
winevulkan: Deal with per api xml entries.
winevulkan: Only parse extensions for Vulkan.
winevulkan: Skip features that are not part of Vulkan.
winevulkan: Add basic support for extension dependencies.
winevulkan: Update to VK spec version 1.3.242.
Giovanni Mascellani (5):
d3d12/tests: Test that D3D12 swapchains can only be created on direct command queues.
dxgi: Immediately error out when creating a D3D12 swapchain on a non-immediate queue.
dxgi: Always assume that a D3D12 swapchain always uses user images.
dxgi/tests: Test that ResizeBuffers() resets the back buffer index to zero.
dxgi: Reset the back buffer index to zero on ResizeBuffers().
Hans Leidekker (1):
adsldp/tests: Skip all remaining tests when the server is down.
Henri Verbeet (11):
wined3d: Don't bother explicitly terminating the GLSL info log in print_glsl_info_log().
wined3d: Use wined3d_get_line() in shader_glsl_compile().
wined3d: Use wined3d_get_line() in shader_glsl_dump_program_source().
wined3d: Use wined3d_get_line() in shader_arb_compile().
wined3d: Use wined3d_get_line() in shader_spirv_compile_shader().
wined3d: Use wined3d_get_line() in shader_spirv_scan_shader().
d3d11: Get rid of the DXBC tag definitions.
wined3d: Sort the exports.
d3dcompiler: Handle some newer D3D_BLOB_PART values in debug_d3dcompiler_d3d_blob_part().
wined3d: Get rid of the wined3d_shader_byte_code_format enum.
wined3d: Use vkd3d-shader to disassemble shaders.
Hugh McMaster (2):
regedit: Allow export_key() to return TRUE.
regedit: Append '.reg' file extension if necessary.
Huw D. M. Davies (1):
winedump: Fix printf format warning.
Jacek Caban (1):
winedump: Print static lib EC symbols.
Jinoh Kang (4):
riched20/tests: Test for ITextDocument::Freeze and ITextDocument::Unfreeze.
riched20: Don't assume that TxDraw preserves the device context's brush selection.
riched20: Implement ITextDocument::Freeze and ITextDocument::Unfreeze.
riched20/tests: Don't specify DT_WORDBREAK in _check_txgetnaturalsize().
Martin Storsjö (1):
ntdll: Handle aarch64 pointer authentication in unwind info.
Max Figura (20):
wined3d: Move the WINED3D_RS_WRAP12 stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_WRAP11 stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_WRAP10 stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_WRAP9 stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_WRAP8 stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_WRAP7 stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_WRAP6 stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_WRAP5 stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_WRAP4 stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_WRAP3 stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_WRAP2 stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_WRAP1 stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_WRAP0 stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_EXTENTS stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_COLORKEYBLENDENABLE stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_SOFTWAREVERTEXPROCESSING stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_PATCHEDGESTYLE stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_PATCHSEGMENTS stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_DEBUGMONITORTOKEN stub to wined3d_device_apply_stateblock.
wined3d: Move the WINED3D_RS_INDEXEDVERTEXBLENDENABLE stub to wined3d_device_apply_stateblock.
Mohamad Al-Jaf (22):
include: Add windows.perception.spatial.idl file.
include: Add windows.graphics.directx.idl file.
include: Add windows.perception.spatial.surfaces.idl file.
windows.perception.stub: Add stub DLL.
windows.perception.stub: Add ISpatialSurfaceObserverStatics stub interface.
windows.perception.stub: Add ISpatialSurfaceObserverStatics2 stub interface.
windows.perception.stub/tests: Add ISpatialSurfaceObserverStatics2::IsSupported() tests.
windows.perception.stub: Implement ISpatialSurfaceObserverStatics2::IsSupported().
pdh: Implement PdhVbGetDoubleCounterValue().
pdh/tests: Add PdhVbGetDoubleCounterValue() tests.
include: Add windows.graphics.directx.direct3d11.idl file.
include: Add Windows.Foundation.Deferral definition.
include: Add windows.graphics.holographic.idl file.
include: Add IHolographicSpaceStatics2 interface definition.
windows.perception.stub: Add IHolographicSpaceStatics2 stub interface.
windows.perception.stub/tests: Add IHolographicSpaceStatics2 properties tests.
windows.perception.stub: Implement IHolographicSpaceStatics2::get_IsSupported().
windows.perception.stub: Implement IHolographicSpaceStatics2::get_IsAvailable().
include: Add IHolographicSpaceStatics3 interface definition.
windows.perception.stub: Add IHolographicSpaceStatics3 stub interface.
windows.perception.stub/tests: Add IHolographicSpaceStatics3::get_IsConfigured() tests.
windows.perception.stub: Implement IHolographicSpaceStatics3::get_IsConfigured().
Paul Gofman (1):
winex11.drv: Don't allow changing internal pixel format if conflicts with non-internal.
Piotr Caban (4):
gdiplus: Use transparency instead of background color if transparent color flag is set in GIF GCE.
gdi32: Improve EMR_CREATEDIBPATTERNBRUSHPT playback.
wineps: Fix buffer overflow in PSDRV_WriteDIBPatternDict function.
wineps: Fix image bits access in PSDRV_WriteDIBPatternDict.
Rémi Bernon (89):
win32u: Initialize IO_STATUS_BLOCK in load_directory_fonts.
win32u: Initialize IO_STATUS_BLOCK in rawinput add_device.
winex11: Initialize IO_STATUS_BLOCK in X11DRV_GetICMProfile.
maintainers: Assume maintainership of IME support.
imm32/tests: Add broken test results for w10v22H2.
makedep: Rename TESTDLL generated .res to avoid conflicts.
makedep: Support resource files for embedded TESTDLL.
imm32/tests: Test ImmInstallIMEW with an actual IME.
imm32/tests: Redirect IME function to the main module.
imm32/tests: Test ImmGetDescription with the installed IME.
imm32/tests: Test ImmGetIMEFileName with the installed IME.
user32/tests: Skip tests if layout failed to activate.
user32/tests: Add a WM_INPUTLANGCHANGE message test.
win32u: Move window query functions around.
win32u: Send WM_INPUTLANGCHANGE when activating new layout.
imm32: Implement stubs for ImmFreeLayout and ImmLoadIME.
imm32/tests: Test undocumented ImmLoadIME / ImmFreeLayout.
imm32: Rename ImmHkl to struct ime.
imm32: Reorder control flow in ImmConfigureIMEA.
imm32: Reorder control flow in ImmConfigureIMEW.
imm32: Reorder control flow in ImmEnumRegisterWordA.
imm32: Reorder control flow in ImmEnumRegisterWordW.
imm32: Reorder control flow in ImmEscapeA.
imm32: Reorder control flow in ImmEscapeW.
imm32: Reorder control flow in ImmGetConversionListA.
imm32: Reorder control flow in ImmGetConversionListW.
imm32: Reorder control flow in ImmGetProperty.
imm32: Reorder control flow in ImmGetRegisterWordStyleA.
imm32: Reorder control flow in ImmGetRegisterWordStyleW.
imm32: Reorder control flow in ImmRegisterWordA.
imm32: Reorder control flow in ImmRegisterWordW.
imm32: Reorder control flow in ImmUnregisterWordA.
imm32: Reorder control flow in ImmUnregisterWordW.
imm32: Reorder control flow in ImmGetImeMenuItemsA.
imm32: Reorder control flow in ImmGetImeMenuItemsW.
imm32: Avoid casts when calling into A/W IME.
imm32: Fail to load IME on any missing entry.
imm32: Return early if IMM_GetImmHkl fails.
imm32: Move IMM_FreeThreadData helper around.
imm32: Rename input context immKbd to ime.
imm32: Implement ImmLoadIME and ImmFreeLayout.
imm32: Rename some struct ime members.
imm32: Delete unnecessary uSelected struct ime member.
imm32: Use a single ime_is_unicode helper.
win32u: Keep the current user locale when enumerating layouts.
win32u: Keep the current user locale when loading layout.
win32u: Prevent user locale change in NtUserActivateKeyboardLayout.
winex11: Remove now unnecessary user locale change checks.
widl: Use explicit %empty token for empty rules.
widl: Add missing rule end semicolons.
widl: Use noyywrap lexer option.
widl: Use bison-bridge option.
widl: Remove unused temp_name member.
imm32: Rename szImeRegFmt to layouts_formatW.
imm32: Transform "Ime File" value in ImmInstallIMEW.
imm32: Rewrite ImmGetIMEFileName(A|W).
imm32: Rewrite ImmGetDescription(A|W).
imm32: Use CRT allocation functions.
widl: Use a struct list to keep imported files.
widl: Simplify handling of already parsed imports.
widl: Use a struct list for the import stack.
widl: Handle preprocess-only case separately.
widl: Introduce new (open|close)_input_file helpers.
widl: Respect -N flag for imported files preprocessing.
widl: Use open_input_file to open the main input.
imm32/tests: Use LANG_INVARIANT for the installed IME.
imm32/tests: Test ImmIsIME with the installed IME.
imm32/tests: Test ImmGetProperty with the installed IME.
imm32/tests: Test ImmEscape with the installed IME.
imm32/tests: Test ImmEnumRegisterWord with the installed IME.
imm32/tests: Test ImmRegisterWord with the installed IME.
imm32/tests: Test ImmGetRegisterWordStyle with the installed IME.
imm32/tests: Test ImmUnregisterWord with the installed IME.
imm32/tests: Test basic ImmEnumInputContext usage.
include: Add some dinput.h action semantics definitions.
dinput/tests: Test BuildActionMap / SaveActionMap with the HID joystick.
dinput/tests: Test SaveActionMap effect on DIPROP_USERNAME property.
dinput/tests: Test SaveActionMap effect on DIPROP_APPDATA property.
dinput/tests: Test SaveActionMap effect on DIPROP_BUFFERSIZE property.
dinput/tests: Test SaveActionMap effect on DIPROP_RANGE property.
dinput/tests: Test SaveActionMap effect on HID joystick input.
dinput/tests: Remove BuildActionMap / SaveActionMap mouse and keyboard tests.
dinput/tests: Increase timeouts for waits not supposed to fail.
widl: Group <INITIAL,ATTR> tokens together.
widl: Group <INITIAL> tokens together.
widl: Group <ATTR> tokens together.
widl: Introduce a new helper to produce num tokens.
widl: Simplify string literals lexing.
widl: Avoid freeing input_name in pop_import.
Stefan Dösinger (7):
dxgi/tests: Fix UnregisterClass call in test_resize_target_wndproc.
dxgi/tests: Run test_resize_target_wndproc on d3d12 too.
dxgi/tests: Run test_swapchain_window_messages on d3d12.
dxgi: Unlock the wined3d mutex after storing the new target.
dxgi: Catch nested SetFullscreenState invocations.
dxgi/tests: Test nested fullscreen application from different thread.
dxgi/tests: Test nested SetFullscreenState from the same thread.
Sven Baars (12):
kernelbase: Pass the root key to open_key().
kernelbase: Pass the key name to open_key().
kernelbase: Pass the root key to create_key().
kernelbase: Pass the key name to create_key().
kernelbase: Restructure the open_key() loop.
kernelbase: Always try to open the Wow6432Node in open_key().
kernelbase: Factor opening a subkey out of open_key().
kernelbase: Move create_key() below open_key().
kernelbase: Add a fast path to create_key().
kernelbase: Restructure the create_key() loop.
advapi32/tests: Test deleting 32-bit registry keys.
kernelbase: Also call NtOpenKeyEx() on empty key names.
Zebediah Figura (24):
ddraw: Move pitch validation to ddraw_surface_create_wined3d_texture().
ddraw: Separate a need_draw_texture() helper.
ddraw: Restructure ddraw_surface_create_wined3d_texture() to avoid gotos.
ddraw: Move the wined3d_texture_update_desc() call into ddraw_surface_create_wined3d_texture().
ddraw: Move wined3d_resource_desc translation to ddraw_surface_create_wined3d_texture().
win32u: Make NtUserSetWindowPixelFormat() into a proper export.
win32u: Introduce a win32u_get_window_pixel_format() helper.
winex11: Retrieve the pixel format from win32u for normal windows in wglGetPixelFormat().
wineandroid: Retrieve the pixel format from win32u for normal windows in wglGetPixelFormat().
winemac: Retrieve the pixel format from win32u for normal windows in wglGetPixelFormat().
wined3d: Do not set the pixel format if wglGetPixelFormat() returns zero and we already set the internal pixel format.
win32u: Allow separately storing the internal pixel format set by WGL_WINE_pixel_format_passthrough.
winex11: Separately store the internal pixel format set by WGL_WINE_pixel_format_passthrough.
winemac: Separately store the internal pixel format set by WGL_WINE_pixel_format_passthrough.
wineandroid: Separately store the internal pixel format set by WGL_WINE_pixel_format_passthrough.
dxgi: Call wined3d_swapchain_state_set_fullscreen in d3d12_swapchain_init.
ddraw: Rename "is_complex_root" to "is_root".
ddraw: Remove some outdated comments from ddraw_surface7_SetSurfaceDesc().
ddraw: Move sysmem_fallback setting to ddraw_surface_create_wined3d_texture().
ddraw: Factor out more common initialization into ddraw_surface_create_wined3d_texture().
ddraw: Move sub-resource surface initialization to ddraw_surface_create_wined3d_texture().
ddraw: Move the rest of the surface desc population to ddraw_surface_create() from device_parent_texture_sub_resource_created().
ddraw: Do not return a wined3d_texture from ddraw_surface_create_wined3d_texture().
ddraw: Rename ddraw_surface_create_wined3d_texture() to ddraw_texture_init().
Zhiyi Zhang (4):
gitlab: Make FVWM respect position hints.
user32/tests: Do not modify cursor position when simulating clicks.
light.msstyles: Add nonclient metrics.
user32/tests: Test winstation and desktop access rights.