Wine Announcement

The Wine development release 7.17 is now available.

What's new in this release:
  - High Unicode planes support in DirectWrite.
  - Some work towards Wow64 support in the Vulkan driver.
  - 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 7.17 (total 18):

 - #11999  Endless Online game window appears as white texture
 - #27243  Wiggles: All renderers are unsupported
 - #34744  Earth 2150 fails to play .mp2 music (MPEG-1 Audio Decoder Filter needed, CLSID '{4a2286e0-7bef-11ce-9bd9-0000e202599c}')
 - #37019  Multiple games fail to start due to D3D7 devices reporting unsupported HWTRANSFORMANDLIGHT capability (Summoner, Battle Realms: Zen Edition)
 - #48986  Riot Vanguard (Riot Games) 'vgk.sys' crashes on unimplemented function ntoskrnl.exe.KeAreAllApcsDisabled
 - #51939  Riot Vanguard (Riot Games) v1.0.x.x 'vgk.sys' crashes on unimplemented function ntoskrnl.exe.IoCreateFileEx
 - #52449  Liar-soft Visual Novel's not displaying video (audio plays fine)
 - #52457  CNG Encryption Failure (BCryptEncrypt)
 - #52709  Visual Studio Community 2022 installer crashes when trying to open it
 - #53032  winedevice.exe segfaults on exit when built with GCC
 - #53337  Ice Cream Calculator: unusually slow scrolling
 - #53427  BioShock needs D3DX10PreprocessShaderFromMemory implementation
 - #53486  foobar2000.exe with foo_out_upnp breaks sending audio stream to another upnp renderer after a short period of time
 - #53544  msys2 block device fstat function depends on NtQueryVolumeInformationFile FileFsFullSizeInformation
 - #53547  msys2 installer fails to check disk space: "harddisk_query_volume Unsupported volume query 3"
 - #53560  Wizard101 fails to load in 7.15
 - #53581  Construction Set Extender crashes
 - #53601  UI rendering broken for multiple applications (7-Zip, WinRAR, foobar2000, built-in apps) in Wine 7.16 at a non-default DPI


Changes since 7.16:

Alexandre Julliard (32):
      urlmon/tests: Run tests against the gitlab server to avoid redirects.
      kernelbase: Fix error value for PE files without resource.
      include: Simplify handling of va_list in debug printf functions.
      include: Add va_list version of the debug printf functions.
      gitlab: Rename build-all job to build-linux.
      gitlab: Run CI scripts as non-root user.
      include: Add a va_list version of the wine_dbg_log function.
      include: Always use the standard varargs macros.
      kernel32/tests: Don't assume that notifications are instantaneous.
      ntdll/tests: Fix some race conditions.
      shell32: Fix sharing modes when loading/saving link files.
      unicode: Add data for high Unicode planes to the scripts table.
      unicode: Add data for high Unicode planes to the linebreak table.
      unicode: Add data for high Unicode planes to the bidi direction table.
      unicode: Add data for high Unicode planes to the Arabic shaping table.
      kernel32/tests: Don't test console flags that are modified by WINETEST_COLOR=1.
      user32/tests: Remove checks that rely on the absolute position of a top-level window.
      makedep: Make the handling of install rules more generic.
      makefiles: Add install-test target to install winetest.exe.
      winetest: Add helper functions for temp file handling.
      winetest: Add extra quiet mode that only outputs data for failed tests.
      user32/tests: Fix some assumption about absolute window positions.
      version/tests: Mark a test that fails on Wow64 as todo.
      urlmon/tests: Fix race condition in abort test.
      winetest: Report success if the report has been submitted successfully.
      gitlab: Run tests on Debian after the daily commit round.
      gitlab: Always reset the git tree after a build.
      gitlab: Fetch the full git tree with all tags.
      ntdll/tests: Remove workarounds for old Windows versions.
      ntdll: Add a helper function to allocate process parameters.
      ntdll: Use a different alignment for initial process parameters.
      shell32: Don't return an uninitialized pointer on error in enum_trash_items().

Alexandros Frantzis (1):
      msvfw32: Use window name to determine if window is created using MCIWndCreate.

Alistair Leslie-Hughes (1):
      winepulse: Use the predicate to terminate the connect cond_wait loop.

Andrey Gusev (2):
      d3dx10: Implement D3DX10PreprocessShaderFromMemory().
      user32: Implement DefRawInputProc.

Bernhard Kölbl (5): Remove some flaky refcount checks. Add missing async_void_Release implementation.
      include/ Add missing interfaces to SpeechSynthesizerOptions runtimeclass. Add basic query tests for SpeechSynthesizerOptions. Skip SpeechRecognitionListConstraint tests on Win10 1709 x32 and below.

Brendan Shanks (1):
      wow64: Don't re-enter cpu_simulate() from exception filter.

Chris Denton (1):
      bcrypt: Add basic support for pseudo-handles.

Connor McAdams (7):
      combase: Omit thread ID from the stub manager ipid for MTA objects.
      include: Add more definitions to uiautomationcoreapi.h.
      include: Add IRawElementProviderHwndOverride definition.
      uiautomationcore: Retrieve HWND from HUIANODE provider.
      uiautomationcore: Partially implement UiaGetRuntimeId.
      uiautomationcore: Add support for UIA_RuntimeIdPropertyId.
      uiautomationcore: Implement UiaHUiaNodeFromVariant.

Davide Beatrici (7):
      mmdevapi: Integrate wineoss's additions in unixlib.h.
      wineoss: Drop "oss_" prefix in unixlib enum, apply it to the functions instead.
      wineoss: Adapt "test_connect_params" struct to mmdevapi's.
      wineoss: Adapt "create_stream_params" struct to mmdevapi's.
      wineoss: Adapt "get_frequency_params" struct to mmdevapi's.
      wineoss: Adapt "get_position_params" struct to mmdevapi's.
      wineoss: Switch to mmdevapi's unixlib.h.

Eric Pouech (8):
      msvcrt: Correctly support space generation in pointers.
      msvcrt: Improve support for template in methods.
      msvcrt: Fix white space output for typecast operator.
      msvcrt: Undecorate function signature as template argument.
      msvcrt: Use enum to clarify post-processing actions.
      msvcrt: Fix order of extended qualifiers and qualifiers.
      include: Enable ANSI support in console for WINETEST_COLOR.
      msvfw32: Test window creation with filename.

François Gouget (14):
      mshtml/tests: Fix a spelling error in an ok() message.
      dbghelp: Fix a couple of spelling errors in a comment.
      mscvpdb: Fix a spelling error in a comment.
      winspool.drv/tests: Fix the spelling of a variable name.
      winealsa.drv: Make functions static where possible.
      crypt32: Remove WINAPI on static functions where not needed.
      winex11.drv: Make get_unix_file_name() static.
      dinput: Remove WINAPI on static functions where not needed.
      dinput/tests: Remove WINAPI on static functions where not needed. Remove WINAPI on static functions where not needed.
      winex11.drv: Use #ifdef to check config.h macros.
      mshtml: Add trailing linefeeds to a couple of FIXME() messages.
      tests: Allow marking unreliable tests as flaky.
      msvcrt: Fix the spelling of a comment.

Gabriel Ivăncescu (5):
      mshtml: Implement props for Storage by forwarding to the underlying storage.
      mshtml: Implement deleting props for Storage.
      mshtml: Do not enumerate hidden builtin props.
      mshtml: Implement GetMemberName for custom props.
      mshtml: Implement props enumeration for Storage.

Georg Lehmann (2):
      winevulkan: Fixup 64bit enum aliases later to avoid using not yet defined values.
      winevulkan: Update to VK spec version 1.3.226.

Gijs Vermeulen (1):
      msvcp140: Add _ExceptionHolder::ReportUnhandledError stub.

Hans Leidekker (1):
      bcrypt: Force symmetric key reset if necessary.

Henri Verbeet (1):
      include: Avoid _t-suffixes.

Jacek Caban (10):
      user32: Call winproc_init before dpiaware_init.
      winevulkan: Use vk_unix_call in loader.c.
      winevulkan: Use __wine_unix_call for checking Vulkan functions availability.
      winevulkan: Get rid of unix_funcs.
      winevulkan: Separate PE and Unix VkDevice structs.
      winevulkan: Separate PE and Unix VkQueue structs.
      winevulkan: Separate PE and Unix VkInstance structs.
      winevulkan: Separate PE and Unix VkPhysicalDevice strucrts.
      winevulkan: Wrap VkCommandPool on PE side.
      winevulkan: Separate PE and Unix VkCommandBuffer structs.

Joel Holdsworth (4):
      kernel32/tests: GetDiskFreeSpaceA/W test targetted at a real drive.
      kernel32/tests: Added tests for GetDiskFreeSpaceA/W with volume GUID paths.
      ntdll: Implemented NtQueryVolumeInformationFile FileFsFullSizeInformation.
      mountmgr.sys: Implemented FileFsSizeInformation and FileFsFullSizeInformation volume queries.

Julian Rüger (1):
      po: Update German translation.

Kevin Puetz (1):
      winecrt0: Remove free_delay_imports.

Lauri Kenttä (2):
      readme: Update Finnish translation.
      po: Update Finnish translation.

Lorenzo Ferrillo (1):
      comctl32: Support passing bitmap and icon resource ID as a string when creating static control.

Matteo Bruni (2):
      d3dx10/tests: Add a test for D3DX10PreprocessShaderFromMemory().
      windowscodecs/tests: Clean up after running test expected to fail.

Nikolay Sivov (29):
      evr/filter: Add IMediaEventSink stub.
      evr/filter: Add IMFTopologyServiceLookup stub.
      evr/filter: Implement media type testing for QueryAccept().
      evr/filter: Implement pin's connect/disconnect.
      bcrypt/tests: Use CRT allocation functions.
      mfsrcsnk/wave: Initialize buffer pointer in ProcessSample() (Coverity).
      evr/filter: Initialize interface pointer in GetService() (Coverity).
      win32u/hook: Fix a leak on earlier return (Coverity).
      mshtml/tests: Fix a typo in test message (Coverity).
      dwrite: Skip variation selectors in MapCharacters().
      dwrite: Add NNBSP (202F) to Mongolian fallback range.
      dwrite: Handle variation selectors 17-256 in MapCharacters().
      wbemdisp: Use wcsdup() instead of internal helper.
      msvcrt: Use size_t for the size in wcsdup().
      msvcrt: Remove mention of obsolete libwine function.
      prntvpt: Use CRT allocation functions.
      wmiutils: Use CRT allocation functions.
      dwrite: Fix spans length reported by AnalyzeScript() for characters above BMP.
      evr/filter: Notify mixer and presenter on state changes.
      dwrite: Handle higher planes when setting DWRITE_SCRIPT_SHAPES_NO_VISUAL.
      dwrite/bidi: Prepare for characters above BMP.
      dwrite: Handle higher planes characters in line breaking logic.
      evr/filter: Initial implementation of sample rendering.
      crypt32/tests: Use CRT allocation functions.
      dssenh: Use CRT allocation functions.
      dwrite/tests: Add some tests for glyph justification values.
      dwrite: Set initial justification value for default shaper.
      msidb: Use CRT allocation functions.
      ping: Use CRT allocation functions.

Piotr Caban (6):
      d3dx10: Factor out image format conversion function.
      d3dx10: Use WIC functions to obtain info about DDS image.
      d3dx10: Add support for texture cubes in D3DX10CreateTexture functions.
      d3dx10: Don't check frame count in load_texture_data.
      d3dx10: Add support for loading MipLevels data in load_texture_data.
      d3dx10/tests: Improve cube textures data testing.

Robert Wilhelm (2):
      scrrun: Test whether IFolder_get_Path() returns an absolute path.
      scrrun: Store full path in folder object.

Rémi Bernon (42):
      winemac.drv: Rename display modes cache variables.
      winemac.drv: Invalidate mode cache when enum flags changes.
      winemac.drv: Remove unnecessary macdrv_EnumDisplaySettingsEx declaration.
      winemac.drv: Check for non-primary adapter earlier in macdrv_ChangeDisplaySettingsEx.
      winemac.drv: Support getting non-primary adapter current display mode.
      winemac.drv: Support enumerating non-primary adapters display modes.
      wmvcore/tests: Use a constant for test.wmv duration.
      wmvcore/tests: Test sync reader output settings read / write.
      wmvcore/tests: Test async reader output settings read / write.
      wmvcore/tests: Test that the callback thread is always the same.
      wmvcore/tests: Test async reader compressed sample monotonic pts.
      wmvcore/tests: Test async reader DedicatedDeliveryThread setting.
      mf: Use a dedicated interface for sample allocator ready callbacks.
      mf: Delay media session command processing when presentation is ending.
      mf: Use the SESSION_FLAG_PENDING_COMMAND to delay further commands.
      mf: Notify quality manager of topology change in session_set_topology.
      win32u: Sort adapter display modes after reading from the registry.
      win32u: Support interlaced and stretched display modes.
      win32u: Move full display mode lookup out of graphics drivers.
      winex11.drv: Remove unnecessary display mode flags checks.
      winemac.drv: Remove unnecessary display mode flags checks.
      win32u: Move display placement logic out of graphics drivers.
      mf/tests: Move and split some helper code around.
      mf/tests: Keep a presentation descriptor in the test source.
      mf/tests: Allocate test callbacks dynamically and check refcounts.
      mf/tests: Add helpers to wait and check media session events.
      mf/tests: Test some IMFMediaSession_SetTopology error cases.
      mf/tests: Test that IMFTopoLoader_Load doesn't set output nodes media types.
      mf/tests: Test that IMFTopoLoader_Load sets transform nodes media types.
      mf/tests: Test that IMFMediaSession_SetTopology sets output nodes media types.
      include: Declare AudioResamplerMediaObject and MP3DecMediaObject class ids in mfidl.idl.
      include: Remove unnecessary semicolons from wmcodecdsp.idl.
      include: Add WMV encoder / decoder DMO class ids to wmcodecdsp.idl.
      include: Add more WMV media subtypes to wmcodecdsp.idl.
      winegstreamer: Rename async reader stream_thread to callback_thread.
      winegstreamer: Avoid leaking async ops on release or multiple close.
      winegstreamer: Leave WM reader CS on invalid output format.
      winegstreamer: Leave async reader callback_cs on calloc error.
      winegstreamer: Move open_stream / close_stream helpers around.
      winegstreamer: Release callback and context in async_reader_close.
      winegstreamer: Avoid waiting for callback thread on allocation failure.
      winegstreamer: Query IWMReaderCallbackAdvanced interface in Open.

Santino Mazza (3):
      advapi32/tests: Add tests for RegLoadAppKey.
      ntdll: Create NtLoadKeyEx syscall stub.
      ntdll: Move NtLoadKey implementation to NtLoadKeyEx.

Stefan Dösinger (5):
      wined3d: Tell vkd3d_shader about dual source blending.
      ddraw/tests: Avoid picking a large mode on Win10 in test_coop_level_mode_set_enum_cb.
      ddraw/tests: Avoid picking a large mode on Win10 in find_different_mode_callback.
      include/test.h: Don't use strcasecmp.
      include/test.h: Don't use \e.

Zebediah Figura (8):
      include: Add list_move_after() and list_move_before().
      msvcrt: Add SEH annotations for sse2_memcpy().
      rpcrt4: Make Ndr64AsyncClientCall() SEH-compatible.
      rpcrt4: Add SEH annotations to Ndr64AsyncClientCall().
      rpcrt4: Make NdrClientCall3() SEH-compatible.
      rpcrt4: Add SEH annotations to NdrClientCall3().
      rpcrt4: Make NdrClientCall2() SEH-compatible.
      rpcrt4: Add SEH annotations to NdrClientCall2().

Zhiyi Zhang (6):
      uxtheme/tests: Add theme tests.
      comctl32/tests: Add themed scrollbar background tests.
      uxtheme: Use the brush from WM_CTLCOLORSCROLLBAR to paint SB_CTL scrollbar tracks if present.
      uxtheme: Do not draw parent background even if scrollbar arrows and thumb are transparent.
      comctl32/datetime: Do not paint parent background when painting arrows.
      win32u: Only cache font glyph metrics from GGO_METRICS.

Ziqing Hui (9):
      d3dx10/tests: Add tests for D3DX10CreateEffectFromMemory.
      d3dx10/tests: Add tests for D3DX10CreateEffectFromFile.
      d3dx10/tests: Add tests for D3DX10CreateEffectFromResource.
      d3dx10: Introduce create_effect().
      d3dx10: Support effect creation for compiled shader.
      d3dx10: Return E_FAIL in D3DX10CreateEffectFromFile for NULL file name.
      d3dx10/tests: Test block compressed texture data which has more than one block line.
      d3d10/tests: Test NULL device for D3D10CreateEffectFromMemory and D3D10CreateEffectPoolFromMemory.
      d3d10: Handle invalid arguments for effect creation.