The Wine development release 7.15 is now available.

What's new in this release:
  - Command lists in Direct2D.
  - RSA encryption.
  - Initial Wow64 thunking in WIN32U.
  - Optional support for colors in test output.
  - Various bug fixes.

The source is available at:

  https://dl.winehq.org/wine/source/7.x/wine-7.15.tar.xz

Binary packages for various distributions will be available from:

  https://www.winehq.org/download

You will find documentation on https://www.winehq.org/documentation

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.15 (total 22):

 - #40444  Find doesn't jump to a found item in WinSCP when editing a file
 - #47057  Call of Cthulhu fails to completely load levels and trigger cutscenes
 - #49461  Gridrunner Revolution: sound effects stop working after a while
 - #49678  Lost Chronicles of Zerzura hangs on startup
 - #49692  Multiple applications need a Media Foundation media source implementation
 - #50131  Remothered: Tormented Fathers crashes on video loading
 - #50546  Persona 4 Golden requires notification message XACTNOTIFICATIONTYPE_WAVEBANKPREPARED to play sounds.
 - #50593  Sforzando Sample Player don't draw text, needs font fallback support
 - #52448  Multiple visual novels display videos inside separate ActiveMovie window (Hoshi Ori Yume Mirai)
 - #52534  ListView: multi select never sends LVN_ODSTATECHANGED
 - #52601  The Settlers V: crashes when starting
 - #52610  Memory corruption in PE build, when using FIXME in krnl386.exe __wine_vxd_open() function
 - #52933  windows.media.speech:speech: The IAsyncInfo_Close() tests fail on Windows
 - #52957  Invisible pop-ups text in SeaMonkey 2.53.12
 - #53123  ListView: Ctrl+Shift+LMouse multiselect on LVS_OWNERDATA listviews erroneously sends LVN_ODSTATECHANGED
 - #53196  foobar2000: Crashes randomly when opening items in menu bar while playing audio
 - #53275  emule crashes with ntdll_set_exception_jmp_buf error
 - #53364  Mouse does not move scroll bar in multiple applications (Framemaker 8, Audacity, Visio 2003)
 - #53366  Can't compile AES-CCM support prior to GNUTLS version 3.4.0
 - #53483  CFB implementation partially missing
 - #53487  Keyboard input doesn't work for a multiple games (Witcher 3, Just Cause 4, Unravel Two)
 - #53495  "HP" text does not render in Vestaria Saga Non-Visual Battles

----------------------------------------------------------------

Changes since 7.14:

Akihiro Sagawa (13):
      winmm/tests: Add tests for visibility of video window.
      mciqtz32: Don't hide video window when stopping.
      winmm/tests: Add tests for window style of video window.
      winmm/tests: Add tests for dimensions of video window.
      winmm/tests: Add tests for destination of video window.
      mciqtz32: Correct video window behavior by creating default window.
      mciqtz32: Fix MCI_DGV_WHERE_WINDOW behavior.
      mciqtz32: Reset the video size when changing video destination.
      mciqtz32: Hide the default video window when switching to another one.
      mciqtz32: Show the default video window when switching from another one.
      ieframe/tests: Add more IPropertyStorage read/write tests.
      ieframe/tests: Add a test for IPropertySetStorage::Open with STGM_WRITE.
      ieframe: Allow STGM_WRITE in IPropertyStorage::Open.

Alexandre Julliard (4):
      faudio: Import upstream release 22.08.
      mpg123: Import upstream release 1.30.2.
      tiff: Import upstream release 4.4.0.
      gitlab: Disable building image in forks.

Alistair Leslie-Hughes (9):
      xactengine3_7: Add helper function to add entries.
      xactengine3_7: Map SoundBank interfaces.
      xactengine3_7: Map IXACT3Cue interfaces.
      xactengine3_7: Map IXACT3Wave interfaces.
      xactengine3_7: Record context for each notications.
      xactengine3_7: Implement callback for supported messages.
      xactengine3_7: Return error on invalid notification value.
      sapi: Add AudioInput registry key.
      include: Add coclass SpMMAudioEnum.

Angelo Haller (6):
      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.

Arkadiusz Hiler (1):
      winebus.sys/sdl: Use the 8 absolute axes supported by DIJOYSTATE2.

Brendan Shanks (4):
      ntdll: Use correct mcontext struct on macOS under Wow64.
      wow64: Copy floating point and extended registers in copy_context_64to32.
      ntdll: Fix floating point and extended registers not being restored under Wow64.
      wow64cpu: Use -norelay for BTCpuSimulate.

Connor McAdams (2):
      include: Add UI Automation Event ID definitions.
      include: Add UI Automation COM client interface definitions.

David Gow (2):
      quartz: Open files with FILE_SHARE_DELETE in FileSource.
      quartz: Test: Files opened with FileSource can be deleted.

Dmitry Timoshkov (2):
      ntdll/tests: Fix compilation with PSDK.
      ntdll/tests: Add a bunch of tests for creating kernel objects with the names containing '\0'.

Eric Pouech (3):
      shlwapi/tests: Use wide strings literals.
      urlmon/tests: Don't use read as a global variable.
      test.h: WINETEST_COLOR=auto only outputs colors to a TTY.

Gabriel Ivăncescu (10):
      mshtml: Implement window.matchMedia() with MediaQueryList stub.
      mshtml: Implement MediaQueryList's media prop.
      mshtml: Implement MediaQueryList's matches prop.
      mshtml: Semi-implement non-string primitive data for postMessage.
      mshtml: Implement targetOrigin for postMessage.
      mshtml: Forward Document's Invoke to InvokeEx.
      mshtml: Implement window.location setter with a hook.
      mshtml: Implement window.setTimeout with a hook.
      mshtml: Implement document.location with a hook.
      mshtml: Return DISP_E_MEMBERNOTFOUND when not finding member by DISPID.

Georg Lehmann (1):
      winevulkan: Update to VK spec version 1.3.224.

Hans Leidekker (3):
      bcrypt: Add AES CFB chaining mode support.
      bcrypt: Add compatibility defines for AES CFB8.
      nsiproxy.sys: Support media connect state on Linux.

Jacek Caban (37):
      user32: Forward more scroll bar messages to win32u.
      win32u: Introduce NtUserGetWindowSysSubMenu.
      user32: Store MDI client info on client heap.
      user32: Use win32u to get and set MDI client info.
      user32: Use GetClientRect in EDIT_WM_ContextMenu.
      win32u: Introduce NtUserGetChildRect.
      user32: Remove USER_CheckNotLock.
      win32u: Move register_desktop_class implementation from user32.
      user32: Always use 64-bit cbWndExtra for edit control.
      win32u: Move builtin classes registration from user32.
      win32u: Store DPI awareness in ntuser_thread_info.
      win32u: Store wmchar_data in ntuser_thread_info.
      win32u: Move msg_source and recursion_count to ntuser_thread_info.
      win32u: Store receive_flags in ntuser_thread_info.
      user32: Don't include ntuser_private.h.
      win32u: Use platform-independent layout for DC_ATTR.
      win32u: Support wow64 in NtAllocateVirtualMemory calls.
      win32u: Use platform-independent layout for ntuser_thread_info.
      win32u: Store thread info in 64-bit TEB on wow64.
      win32u: Use NtUserMessageCall for NtUserSpyGetMsgName.
      ntdll: Introduce RtlSetLastWin32Error for unixlibs that additionally sets 32-bit error on wow64.
      include: Use RtlSetLastWin32Error in server.h.
      win32u: Use RtlSetLastWin32Error.
      winex11: Use RtlSetLastWin32Error.
      wineandroid: Use RtlSetLastWin32Error.
      winemac: Use RtlSetLastWin32Error.
      wow64win: Set last error in 32-bit TEB in wow64 thunks.
      wow64: Directly use CPU area in Wow64KiUserCallbackDispatcher for I386_CONTEXT.
      wow64: Preserve TEB exception frame in Wow64KiUserCallbackDispatcher.
      wow64win: Add initial user callbacks support.
      win32u: Use NtUserCallMessage for passing packed winproc result.
      wow64win: Implement more user thunks.
      wow64win: Implement more user callbacks.
      wow64win: Handle bitmaps and pens in wow64_NtGdiExtGetObjectW.
      wow64win: Always set output bits pointer in wow64_NtGdiCreateDIBSection.
      wow64win: Fix error handling in wow64_NtUserGetMessage.
      wow64win: Fix NULL msg handling in wow64_NtUserPeekMessage.

Nikolay Sivov (40):
      d2d1/tests: Use test context for command list test.
      d2d1: Add a command list object stub.
      d2d1: Allow setting command list as a target.
      include: Fix ID2D1CommandSink definition.
      d2d1/commandlist: Implement basic state recording commands.
      d2d1/commandlist: Implement clipping commands recording.
      d2d1/commandlist: Implement Clear() command.
      d2d1/commandlist: Implement DrawLine() command.
      d2d1/commandlist: Implement DrawGeometry() command.
      d2d1/commandlist: Implement DrawRectangle() command.
      d2d1/commandlist: Implement FillGeometry() command.
      d2d1/commandlist: Implement FillRectangle() command.
      d2d1/commandlist: Implement SetTextRenderingParams() command.
      d2d1/commandlist: Handle recording in RestoreDrawingState().
      d2d1/commandlist: Implement DrawGlyphRun() command.
      d2d1/commandlist: Implement DrawBitmap() command.
      d2d1/commandlist: Implement FillMesh() command.
      d2d1: Add a helper for DrawGlyphRun().
      d2d1/commandlist: Update text rendering params on DrawGlyphRun().
      dwrite: Fix stretch value validation in CreateTextFormat().
      include: Add newer D2D command sink interface definitions.
      d2d1: Implement setting primitive blend mode.
      d2d1/commandlist: Fix primitive blend playback.
      d2d1: Remove warning message for glyph run description.
      dwrite: Add ff00-ffef range to the fallback configuration.
      d2d1: Add parameter validation to FillOpacityMask().
      d2d1/commandlist: Implement FillOpacityMask() command.
      dwrite/fallback: Consider character size for returned mapped length.
      dwrite/fallback: Make sure all consecutively mapped characters belong to the same mapping.
      include: Fix ID2D1CommandSink::DrawImage() prototype.
      d2d1/commandlist: Implement DrawImage() command.
      d2d1/commandlist: Implement layer commands.
      dwrite/tests: Add a helper to create analyzer instance.
      dwrite/fallback: Add mappings for some CJK ranges.
      mfplat: Add some attributes related to transcoding.
      dwrite/fallback: Fill in some more fallback ranges for various scripts.
      dwrite/fallback: Add Georgian and Armenian ranges.
      mf: Add archive sink creation exported functions.
      mfreadwrite/writer: Create archive sink automatically when writer is created from url/bytestream.
      mfreadwrite/writer: Create output stream if it wasn't provided.

Olivier F. R. Dierick (1):
      secur32: Define AES-CCM ciphers missing from GNUTLS before 3.4.0.

Paul Gofman (4):
      winhttp: Avoid invalid memory access in netconn_resolve().
      ntdll: Also initialize icmp_over_dgram in sock_read().
      ntdll: Remove redundant assignment in fixup_icmp_over_dgram().
      d3d11: Validate layout description in d3d_input_layout_create().

Rafał Harabień (1):
      include: Allow printing test failure messages in bright red.

Robert Wilhelm (1):
      wshom: Use signed type for ExitCode in IWshShell3::Run().

Rémi Bernon (46):
      mf/tests: Add required SAR media type attributes tests.
      mf: Return MF_E_NO_MORE_TYPE from AudioRenderer GetMediaTypeByIndex.
      winegstreamer: Set the MF_MT_AUDIO_AVG_BYTES_PER_SECOND attribute.
      mf: Implement SAR media type required attributes checks.
      mf: Increase min_buffer_size to MF_MT_AUDIO_AVG_BYTES_PER_SECOND.
      winegstreamer: Use the correct name for WMADecMediaObject DMO.
      winex11.drv: Use a local desired_rect variable when placing displays.
      winex11.drv: Use DM_POSITION field bit to mark placed displays.
      winex11.drv: Update devmode dmPosition instead of new_rect.
      winex11.drv: Use DEVMODEW instead of x11drv_display_setting.
      winex11.drv: Iterate display settings using dmDriverExtra.
      winex11.drv: Constify set_current_mode DEVMODEW parameter.
      wmvcore/tests: Add more IWMReader_(Open|Start|Stop|Close) async checks.
      winegstreamer: Move IWMReaderCallbackAdvanced *callback_advanced to a local variable.
      winegstreamer: Leave the stream CS while waiting for a sample.
      winegstreamer: Make IWMReader state transitions asynchronous.
      gitlab: Move build steps to the build-all script.
      gitlab: Build every commit in a merge request.
      mf/tests: Rotate test videos 90° to better show vertical flips.
      mf/tests: Add video processor conversion tests.
      mf/tests: Add topology loader tests with video formats.
      winegstreamer: Better implement Video Processor MFT.
      mf: Use the MFT_CATEGORY_VIDEO_PROCESSOR category for converters.
      mf: Propagate missing attributes to downstream media types.
      win32u: Ignore DM_POSITION mode fields for available modes.
      winemac.drv: Split best display mode lookup to a separate helper.
      wineandroid.drv: Return early on EnumDisplaySettingsEx error.
      win32u: Split EnumDisplaySettingsEx into CurrentDisplaySettings entry.
      wineandroid.drv: Add missing DM_DISPLAYORIENTATION | DM_POSITION flags.
      winemac.drv: Avoid setting DM_POSITION on enumerated modes.
      server: Avoid reallocating rawinput device array with zero size.
      win32u: Avoid reallocating rawinput device array with zero size.
      win32u: Send the total number of registered devices to the server.
      win32u: Avoid invalid access when registered device alloc failed. (Coverity).
      wmvcore/tests: Add some IWMOutputMediaProps_SetMediaType tests.
      winegstreamer: Implement IWMOutputMediaProps_SetMediaType.
      qasf: Implement ASF Reader filter pin_query_accept.
      qasf: Implement ASF Reader filter pin_get_media_type.
      qasf: Implement ASF Reader filter pin DecideBufferSize.
      winegstreamer: Use a wg_audio_format switch rather than array indexes.
      winegstreamer: Use a wg_video_format switch rather than array indexes.
      qasf: Wait for IWMReader_Open to complete in ASF Reader Load.
      qasf: Implement ASF Reader filter init_stream and cleanup_stream.
      qasf: Start/stop the WM reader in asf_reader_init/cleanup_stream.
      qasf: Configure WMReader stream format in asf_reader_init_stream.
      qasf: Configure WMReader stream selection in asf_reader_init_stream.

Santino Mazza (4):
      ncrypt/tests: Test for NCryptEncrypt with RSA and PKCS1 padding.
      bcrypt/tests: Test for BCryptEncrypt with RSA keys.
      bcrypt: Initial RSA encryption implementation.
      ncrypt: Initial implementation for NCryptEncrypt.

Shaun Ren (10):
      webservices: Handle in/out parameters properly in WsCall.
      webservices: Write the correct headers when a request message is addressed.
      webservices: Implement error strings.
      webservices: Support faults in error.
      webservices: Add support for reading WS_FAULT values.
      webservices: Detect when a message contains a fault in read_envelope_start.
      webservices: Fill in type description for WS_FAULT_TYPE if necessary in WsReadBody.
      webservices/tests: Add a fault reading test for WsReadBody.
      webservices: Address the request message in WsCall.
      webservices: Add support for receiving fault messages.

Stefan Dösinger (2):
      ddraw: Don't account video memory for sysmem surfaces' draw textures.
      ddraw/tests: Add some video memory accounting tests.

Tim Clem (3):
      ntdll: Fix leak of mach_thread_self port.
      ntdll: Fix leak of mach_host_self port.
      kernelbase: Don't assume the length of the process image name.

Zebediah Figura (14):
      wined3d: Factor out mode_matches_filter().
      wined3d: Build a list of wined3d_display_mode structures in wined3d_output_get_mode[_count]().
      d3d9: Cache the output mode list.
      d3d8: Cache the output mode list.
      dxgi: Build the device list only once in dxgi_output_get_display_mode_list().
      wined3d: Build the device list only once in wined3d_output_find_closest_matching_mode().
      include: Print "succeeded inside todo block" messages in colour.
      include: Print "test marked todo" messages in colour.
      include: Print "test skipped" messages in colour.
      include: Print "test succeeded" messages in colour.
      winhttp/tests: Add some more tests for newline handling in custom header parsing.
      winhttp: Allow custom headers to be separated by any sequence of \r and \n.
      winhttp: Pass a length to parse_header().
      winhttp: Don't make a copy of the string in add_request_headers().

Zhiyi Zhang (4):
      include: Add IMediaParams definitions.
      dsdmo: Add IMediaParams stub interface.
      winegstreamer: Always check the return value from mf_media_type_from_wg_format().
      winegstreamer: Trace mf_media_type_from_wg_format_{audio|video}().
