Wine Announcement

The Wine development release 8.15 is now available.

What's new in this release:
  - Support for TEXT print processor.
  - Cycle Collection support in MSHTML.
  - Cross-process memory notifications in Wow64.
  - Various bug fixes.

The source is available at:

Binary packages for various distributions will be available from:

You will find documentation on

You can also get the current source directly from the git
repository. Check 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.15 (total 19):

 - #43822  TrackMania Nations Forever (Steam) car music doesn't play
 - #45273  Chessbase 11 cannot draw arrows
 - #54064  ntdll:threadpool - test_tp_io() sometimes fails & crashes in Wine (GitLab CI)
 - #54718  msvcr90:msvcr90 - test__get_current_locale() sometimes gets an unexpected refcount on w10pro64
 - #54756  Multiple games crash on unimplemented concrt140.dll.??0_Cancellation_beacon@details@Concurrency@@QEAA@XZ (Forza Horizon 4, The Legend of Sisyphus (Andromeda Software Development))
 - #55259  TranscendPang has corrupted graphics in-game
 - #55286  msvcrt:file - The 64-bit test_invalid_stdin_child() sometimes gets a bad stdin handle on Windows 10
 - #55287  msvcrt:file - The 32-bit test_pipes() fails in the new WoW mode
 - #55333  ws2_32:sock - test_connect_events() sometimes fails in Wine
 - #55341  Colin McRae Rally 2.0 black screen
 - #55351  gdiplus:graphicspath - test_flatten2() fails on Windows 7 - 11
 - #55402  CMD '!var!' not working in 'if' statement
 - #55414  Ultimate Spider-Man: Widescreen Fix shifts HUD too much to the right
 - #55443  Wine crashes when an image is dragged onto notepad.exe and games
 - #55450  Softerra LDAP Browser needs LDAP_OPT_AUTO_RECONNECT
 - #55457  Robot Battle 1.4 crashes on startup after commit 08dc691d
 - #55471  nGlide wrapper produces black screen in games using the D3D backend
 - #55475  Respondus LockDown Browser crashes on unimplemented function KERNEL32.dll.DiscardVirtualMemory
 - #55500  Launching new processes in Virtual Desktops is slow and stutters the system


Changes since 8.14:

Akihiro Sagawa (2):
      cmd: Use towlower()/towupper() for WCHARs.
      cmd: DIR command outputs free space for the path.

Alex Henrie (12):
      windowscodecs: Use CRT allocation functions.
      shell32: Use CRT allocation functions.
      xaudio2_7: Use CRT allocation functions.
      activeds: Use CRT allocation functions.
      mshtml: Define skip_prefix without using a magic number.
      cryptui: Use CRT allocation functions.
      mciavi32: Use CRT allocation functions.
      mlang: Use CRT allocation functions.
      mmdevapi: Use CRT allocation functions.
      mpr: Fix double free in WNetGetResourceInformationA.
      dmusic: Use CRT allocation functions.
      wldap32: Report success when turning off LDAP_OPT_(ENCRYPT|ROOTDSE_CACHE|SIGN).

Alexandre Julliard (22):
      winex11: Work around a false positive gcc warning.
      ntdll: Also store syscall id and names following the syscall dispatcher pointer.
      wow64: Reimplement syscall resolution using the syscall dispatcher name table.
      ntdll: Implement the cross-process work list functions.
      wow64: Create the cross-process work list.
      ntdll: Implement RtlOpenCrossProcessEmulatorWorkConnection().
      wow64: Send cross-process notifications.
      wow64: Implement Wow64ProcessPendingCrossProcessItems().
      ntdll/tests: Add tests for cross-process notifications.
      winebuild: Ignore syscalls that point to an alias.
      wow64: Also send notifications for failed memory management calls.
      kernel32/tests: Remove some workarounds for old Windows versions.
      kernel32/tests: Fix alignment issues on 64-bit.
      kernel32/tests: Make the generated dlls relocatable.
      kernel32/tests: Remove tests for the exact value of the stack pointer.
      ntdll/tests: Fix alignment issues on 64-bit.
      ntdll/tests: Allow more invalid length values on Windows.
      ntdll/tests: Work around a Windows pointer truncation bug in CPU info.
      oleaut32/tests: Fix a pointer truncation issue on 64-bit.
      winmm/tests: Fix a pointer truncation issue on 64-bit.
      scrrun: Fix pointer hashing on 64-bit.
      gdi32: Fix buffer size parameter in GetFontFileData for 64-bit.

Alexis Murzeau (1):
      wpcap: Handle negative count for pcap_dispatch and pcap_loop.

Alistair Leslie-Hughes (9):
      opcservices: Remove DECLSPEC_HIDDEN usage.
      avifil32: Remove DECLSPEC_HIDDEN usage.
      evr: Remove DECLSPEC_HIDDEN usage.
      hhctrl.ocx: Remove DECLSPEC_HIDDEN usage.
      dxdiagn: Remove DECLSPEC_HIDDEN usage.
      netcfgx: Remove DECLSPEC_HIDDEN usage.
      schedsvc: Remove DECLSPEC_HIDDEN usage.
      comctl32: Remove DECLSPEC_HIDDEN usage.
      msvcrt: Remove DECLSPEC_HIDDEN usage.

Anton Baskanov (1):
      winex11.drv: Mark drawable as dirty when setting pixel format.

Bartosz Kosiorek (2):
      gdiplus: Improve performance by switching loops and fix size.
      gdiplus: Add support for GdipPathIterNextPathType.

Biswapriyo Nath (8):
      include: Add KnownFolders runtimeclass in
      include: Add ApplicationData runtimeclass in
      include: Add IRandomAccessStream generic types in
      uiautomationcore: Fix typo with TreeScope_Subtree name.
      include: Add AudioProcessing enum in
      include: Add Windows.Media.Capture.MediaCategory enumeration.
      include: Add Windows.Media.Render.AudioRenderCategory enumeration.
      include: Add Windows.Media.Effects.AudioEffect runtimeclass.

Brendan Shanks (3):
      kerberos: Ensure unixlib function tables and enum stay in sync.
      mountmgr.sys: Ensure unixlib function tables and enum stay in sync.
      winebus.sys: Ensure unixlib function tables and enum stay in sync.

Daniel Lehman (1):
      include: Add [_w]getenv_s.

Davide Beatrici (14):
      winepulse: Fix crash when requesting exclusive mode with an unsupported format.
      wineoss: Update device cache in get_device_guid().
      winepulse: Open/create driver registry key in get_device_guid().
      winealsa: Export get_device_guid().
      winecoreaudio: Export get_device_guid().
      wineoss: Export get_device_guid().
      winepulse: Export get_device_guid().
      mmdevapi: Import get_device_guid() from driver.
      winepulse: Move GetEndpointIDs into mmdevapi.
      winealsa: Remove GetEndpointIDs.
      winecoreaudio: Remove GetEndpointIDs.
      wineoss: Remove GetEndpointIDs.
      mmdevapi: Simplify load_driver_devices() by combining loops and removing unneeded allocation(s).
      mmdevapi: Move name string duplication in MMDevice_Create() from caller.

Dmitry Sokolov (1):
      cmd: Fixed var substring in 'enableDelayedExpansion' mode.

Dmitry Timoshkov (1):
      ntdll: Implement NtCreateToken().

Eric Pouech (12):
      dbghelp: Fix sign extension issues on 32bit compilation.
      ntdll/tests: Add test for Win10 OutputDebugStringW evolution.
      ntdll/tests: Introduce enumeration to handle stages in test_debugger().
      ntdll/tests: Add tests for debuggee and new Win10 unicode debug strings.
      kernelbase: Emit DBG_PRINTEXCEPTION_WIDE_C from OutputDebugStringW.
      kernelbase: Implement WaitForDebugEventEx().
      kernel32/tests: Fix spurious failures in console:test_wait() test.
      kernel32/tests: Only access ProcessGroupId field when present.
      kernel32/tests: Add tests for group and console flags in CreateProcess.
      server: Separate console and new group flag (CreateProcess).
      kernel32/tests: Extend to new process group tests for CreateProcess.
      kernelbase: Correctly handle new process group flag in CreateProcess.

Esme Povirk (8):
      user32/tests: Test cross-platform use of scroll functions.
      user32/tests: Use winetest context in ok_sequence.
      user32: Remove some todo's for working tests.
      user32/tests: Share code between ok_sequence and dump_sequence.
      user32/tests: Distinguish between extra and missing messages.
      user32/tests: Always generate a description for WM_NCCALCSIZE.
      mscoree/tests: Catch expected exception in loadpaths.exe.
      user32/tests: Mark an occasional Windows behavior as broken.

Etaash Mathamsetty (4):
      ntdll: Allow NULL timeout in NtCreateNamedPipeFile.
      ntdll: Add semi-stub for NtOpenKeyTransactedEx.
      kernelbase: Add GetPackagePathByFullName stub.
      wevtapi: Add stub for EvtCreateBookmark.

Gabriel Ivăncescu (37):
      mshtml: Traverse variants using a helper function.
      mshtml: Use destructor in the vtbl for PerformanceTiming.
      mshtml: Implement Cycle Collection for HTMLPerformance.
      mshtml: Implement Cycle Collection for HTMLPerformanceNavigation.
      mshtml: Implement Cycle Collection for objects that don't require traversal.
      mshtml: Implement Cycle Collection for HTMLDOMAttribute.
      mshtml: Implement Cycle Collection for HTMLAttributeCollection.
      mshtml: Implement Cycle Collection for HTMLCSSStyleDeclaration.
      mshtml: Implement Cycle Collection for HTMLStyleSheet.
      mshtml: Implement Cycle Collection for HTMLStyleSheetsCollection.
      mshtml: Implement Cycle Collection for HTMLStyleSheetRulesCollection.
      mshtml: Implement Cycle Collection for HTMLStyleSheetRule.
      mshtml: Use actual name when traversing variant.
      mshtml: Implement Cycle Collection for HTMLDOMChildrenCollection.
      mshtml: Implement Cycle Collection for HTMLElementCollection.
      mshtml: Implement Cycle Collection for HTMLRectCollection.
      mshtml: Implement Cycle Collection for HTMLRect.
      mshtml: Implement Cycle Collection for DOMTokenList.
      mshtml: Implement Cycle Collection for MutationObserver.
      mshtml: Implement Cycle Collection for HTMLDOMImplementation.
      mshtml: Implement Cycle Collection for MediaQueryList.
      mshtml: Implement Cycle Collection for HTMLTextRange.
      mshtml: Implement Cycle Collection for HTMLDOMRange.
      mshtml: Implement Cycle Collection for HTMLSelectionObject.
      mshtml: Implement Cycle Collection for HTMLEventObj.
      mshtml: Implement Cycle Collection for DOM Events.
      winex11: Avoid querying GPU properties in get_host_primary_monitor_rect.
      mshtml: Actually traverse the object-specific edges.
      mshtml: Separate the HTMLLocation from the outer window.
      mshtml: Implement Cycle Collection for HTMLLocation.
      mshtml: Implement Cycle Collection for outer windows.
      mshtml: Get rid of NULL checks for the dispex vtbl.
      mshtml: Implement Cycle Collection for inner windows.
      mshtml: Move HTMLPerformanceNavigation related fields to the window.
      mshtml: Move PerformanceTiming related fields to the window.
      mshtml: Implement Cycle Collection for HTMLPerformanceTiming.
      mshtml: Implement Cycle Collection for XMLHttpRequest.

Jeff Smith (11):
      gdiplus/tests: Simplify ICONINFO initialization.
      gdiplus/tests: Create helper function for testing image properties.
      gdiplus/tests: Add test for cursor with GdipCreateBitmapFromHICON.
      gdiplus/tests: Add test for mask-only icon with GdipCreateBitmapFromHICON.
      gdiplus: Fix GdipCreateBitmapFromICON return status with mask-only icon.
      gdiplus/tests: Add test for 32 bpp icon with GdipCreateBitmapFromHICON.
      gdiplus/tests: Add test for non-square icon with GdipCreateBitmapFromHICON.
      gdiplus/tests: Add test for bitmap locked data from GdipCreateBitmapFromHICON.
      gdiplus: Fix GdipCreateBitmapFromHICON bitmap data.
      shlwapi/tests: Fix SHFormatDateTime test during DST.
      shlwapi: Fix SHFormatDateTime implementation during DST.

Lorenzo Ferrillo (1):
      secur32: Increment iteration index after load_package error.

Louis Lenders (1):
      wldp: Add WldpGetLockdownPolicy stub.

Marcus Meissner (1):
      cryptui: LoadStringW gets characters as size, not bytes.

Matteo Bruni (1):
      d3dcompiler/tests: Avoid interpolation filters in test_samplers().

Mohamad Al-Jaf (5):
      include: Add dxcore_interface.h file.
      include: Add dxcore.h file.
      dxcore: Add stub DLL.
      dxcore: Add DXCoreCreateAdapterFactory() stub.
      apisetschema: Add ext-ms-win-dxcore-l1-1-0.

Nikolay Sivov (1):
      wldp: Add WldpIsDynamicCodePolicyEnabled() stub.

Paul Gofman (3):
      user32/tests: Test more flags for MessageBox.
      user32/msgbox: Implement MB_TOPMOST.
      dinput: Unregister raw input on foreground loss.

Piotr Caban (15):
      msvcr70: Don't set SSE2 control register in _control87.
      wmic: Use fwprintf to output error messages.
      wmic: Fix output when redirected to pipe.
      msvcr90/tests: Restore thread locale settings in _getptd tests to avoid side effects.
      msvcr90/tests: Reorder locale refcount tests to workaround leak in _create_locale.
      msvcrt/tests: Make registry handle inheritable in test_invalid_stdin tests.
      ntdll: Don't overwrite last byte of RuntimeInfo if odd number of bytes is used.
      localspl: Store fallback print processor in AddPrinterDriver.
      localspl: Try fallback print processor if datatype is not supported.
      winprint: Implement TEXT print processor.
      msvcr110: Add Context::IsCurrentTaskCollectionCanceling implementation.
      msvcr110: Add _Cancellation_beacon class implementation.
      msvcr120/tests: Remove workaround for not implemented _StructuredTaskCollection::ctor().
      msvcr120/tests: Add _Cancellation_beacon tests.
      msvcr120/tests: Add Context::IsCurrentTaskCollectionCanceling tests.

Rémi Bernon (35):
      include: Add Windows.Management.Deployment.DeploymentResult runtimeclass definition.
      include: Add Windows.Management.Deployment.PackageUserInformation runtimeclass definition.
      include: Add Windows.Management.Deployment.PackageManager runtimeclass definition.
      include: Add Windows.Storage.Streams.RandomAccessStreamReference runtimeclass definition.
      include: Add Windows.ApplicationModel.AppDisplayInfo runtimeclass definition.
      include: Add Windows.ApplicationModel.PackageStatus runtimeclass definition.
      widl: Guard against re-import of the main input file.
      include: Add Windows.ApplicationModel.Core.AppListEntry runtimeclass definition.
      include: Add Windows.ApplicationModel.IPackage3 interface definition.
      winegstreamer: Don't append videoconvert for video/x-wmv output.
      include: Add MF_BYTESTREAM_EFFECTIVE_URL GUID declaration.
      mf/tests: Add some network scheme resolver tests.
      mf/scheme_handler: Split file scheme handler to scheme_handler.c.
      mf/scheme_handler: Implement http(s):// scheme handler using urlmon.
      mf/session: Use local variables to access transform node streams.
      mf/session: Use a helper to deliver transform node requested samples.
      mf/session: Drain transform node input streams individually.
      mf/session: Drain remaining requests in transform_node_deliver_samples.
      mf/session: Use helpers to push and pop samples for transform streams.
      mf/session: Push transform input samples directly to ProcessInput.
      mf/session: Request more samples from upstream when necessary.
      mf/session: Increase the request count when requests are already queued.
      include: Prefix winetest global counters with winetest_.
      include: Rename winetest thread data struct and getter.
      include: Prefix winetest color constants with winetest_.
      include: Make general winetest helpers static inline.
      include: Initialize winetest global counters to 0.
      include: Rename winetest_printf to winetest_print_location.
      include: Pass a temporary buffer to winetest_elapsed.
      include: Introduce winetest wrappers for vprintf and GetTickCount.
      include: Avoid using strcmp directly in wine/test.h.
      dinput: Get rid of duplicated winetest helpers.
      win32u: Init vsc2vk in NtUserGetKeyNameText only if necessary.
      win32u: Init vsc2vk in NtUserMapVirtualKeyEx only if necessary.
      win32u: Init vsc2char in NtUserMapVirtualKeyEx only if necessary.

Torge Matthies (1):
      crypt32: Fix CMS SignedData encoding.

Wonjun Jung (3):
      wbemprox: Add Win32_SoundDevice query test for Caption property.
      wbemprox: Add Caption property in Win32_SoundDevice.
      wbemprox: Add NetConnectionID, NetEnabled properties in Win32_NetworkAdapter.

Zebediah Figura (13):
      wined3d: Move struct wined3d_texture_gl to wined3d_gl.h.
      wined3d: Move struct fbo_entry to wined3d_gl.h.
      wined3d: Move struct wined3d_sampler_gl to wined3d_gl.h.
      wined3d: Move struct wined3d_buffer_gl to wined3d_gl.h.
      wined3d: Move struct wined3d_rendertarget_view_gl to wined3d_gl.h.
      wined3d: Move struct wined3d_shader_resource_view_gl to wined3d_gl.h.
      wined3d: Move struct wined3d_unordered_access_view_gl to wined3d_gl.h.
      wined3d: Move struct wined3d_swapchain_gl to wined3d_gl.h.
      wined3d: Move the remaining wined3d_gl_info functions to wined3d_gl.h.
      wined3d: Move struct wined3d_format_gl to wined3d_gl.h.
      wined3d: Move the remaining GL-specific definitions to wined3d_gl.h.
      wined3d: Move the wined3d_gl.h include to individual files.
      server: Signal AFD_POLL_BIT_WRITE at the same time as AFD_POLL_BIT_CONNECT.