Wine Announcement

The Wine development release 3.16 is now available.

What's new in this release (see below for details):
  - Initial implementation of OPC Services.
  - Support for rendering buttons from an ImageList.
  - Better support for CSS properties in MSHTML.
  - Namespace fixes in XML Writer.
  - Various bug fixes.

The source is available from the following locations:

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 3.16 (total 43):

  19801  cygwin can't run a batch file from inside a shell script without explicit cmd /c
  22255  Total Commander: Deleting the 1st or 2nd character in an edit box deletes all of them
  22440  Total Commander: The panels showing Brief are not resized vertically when the application window is resized vertically
  24623  Windows Live Essentials 2011 installer doesn't show any options on the first screen (support for BCM_GETIDEALSIZE needed, ideal width and height for a specified button)
  30856  Atmel Studio 6 fails to start with Visual Studio 2010 Isolated Shell, reporting 'Cannot find one or more components. Please reinstall the application.'
  36142  Symantec Norton 360 installer fails ('rpcss' needs to be a proper Windows service)
  37175  Call of Duty 2: Video playback is not working
  38339  Can't change resolution in Call of Duty 4
  38432  Xeon 1.0 (Xbox emulator) fails to load (PE image prelinked into DOS reserved area and default process heap range, no relocation possible)
  40062  Media Player Classic Home Cinema does not show bitmaps in buttons, needs BCM_SETIMAGELIST
  40064  Atmel Studio 7: 'DDAConfigCA' tool (part of Visual Studio 2015 Isolated Shell) crashes on unimplemented function api-ms-win-crt-runtime-l1-1-0.d._configure_wide_argv
  40445  WinSCP main window lacks icons (unimplemented BCM_SETIMAGELIST?) and indentation for hosts
  40598  Warframe 'launcher.exe' reports 'update failed' ('InternetCrackUrlW' must resize buffer when URL canonicalization fails due to insufficient buffer)
  40704  foobar2000 v1.3.10 crashes on alt-F (file menu shortcut)
  42577  Far manager: needs virtdisk.dll.GetStorageDependencyInformation
  42710  Wechat can not send file to friend
  42880  Ragnarok Online doe not clear the loading screen.
  43488  Bluestacks crashes in ITextService::TxGetVScroll()
  45246  Free Manga Downloader(all): no text on some boxes.
  45372  Resident Evil 7 requires mfplat.dll.MFCreateMFByteStreamOnStream to be implemented
  45430  Improve diagnostics of 'D3DxxCreateDevice' failures for warp driver type (D3D10_DRIVER_TYPE_WARP or D3D_DRIVER_TYPE_WARP)
  45617  Just Dance 2017: Unimplemented function mfplat.dll.MFCreateSample
  45622  Overwatch crashes when trying to save highlights (needs mfplat.MFTRegisterLocal implementation)
  45715  Just Dance 2017: Unimplemented function mfplat.dll.MFCreateMemoryBuffer
  45722  cmd for loop doesn't work with tokens and delims
  45727  Quik 7: Regression with button bitmaps after 3.6 release - No any bitmap on the buttons in a messages window
  45729  cmd's REM evaluates |
  45731  cmd for loops sensitive to whitespace
  45735  Neo Manager (formerly known as Alphasmart Manager) not installed, cannot read out via USB
  45738  Unable to compile on macOS after "winhttp: Use winsock sockets"
  45743  Firefox 61.x crashes on startup due to missing pipe server object type information (Chromium Windows sandbox handle duplication service)
  45747  GPU-GPU depth stencil blit is slow (FF XIV)
  45753  Office 2010 reruns setup on starting any app
  45770  WMP9 crashes with unimplemented function pidgen.dll.PIDGenSimpW
  45771  Parts of page(s) content missing when printing (seen in Framemaker 8)
  45784  Bethesda Launcher Updater crashes on unimplemented function msvcp110.xtime_get
  45785  Bethesda Launcher Updater crashes on unimplemented function msvcp110._Xtime_diff_to_millis2
  45786  GTA downgrader (.NET program latest.exe) crashes: "Can't find matching timezone information" ("America/Sao_Paulo")
  45788  Mouse pointer is off from the visible cursor by huge margin in steam, when winecfg DPI is different from Xorg
  45798  NVIDIA GeForce Experience 3.x installer fails due to missing support for 'WinHttpSetOption( ..., WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT, ...)'
  45800  Symantec Eraser Control Driver 'eeCtrl64.sys' (Norton 360) crashes on unimplemented function ntoskrnl.exe.ExReleaseResourceLite
  45802  ReactOS logoff procedure needs 'mpr.WNetClearConnections' to disconnect user session network share connections
  45821  Metasploit Console won't start due to missing registry value HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath


Changes since 3.15:

Alex Henrie (6):
      ws2_32/tests: Mark the IPX-not-supported error code test as todo.
      opengl/tests: Don't run Pbuffer tests if no Pbuffer can be created.
      shell32/tests: Mark a shell dispatch test as todo on x64 and ARM.
      msvcrt: Don't report an underflow for ldexp(0, x) or _scalb(0, x).
      wine.inf: Add TCP/IP DataBasePath value.
      ntdll/tests: Handle case where process doesn't have its own DEP policy.

Alexandre Julliard (7):
      gdi32: Don't return screen resolution on printer devices.
      shell32: Assume that system directory always contains a drive letter.
      shell32: Avoid infinite loop in _SHExpandEnvironmentStrings.
      shell32: Re-add support for expanding ALLUSERSPROFILE for backward compatibility.
      user32: Ignore application-specified DPI awareness when DPI scaling is disabled.
      server: Remove unnecessary structure names.
      winex11: Make pixel format traces more compact.

Alistair Leslie-Hughes (10):
      include: Add MmIsAddressValid to header.
      mfplat: Add MFTRegisterLocal stub.
      mfplat: Add MFTUnregisterLocal stub.
      mfplat: Implement MFCreateMFByteStreamOnStream.
      mfplat: Implement MFCreateMemoryBuffer.
      mfplat: Correct spec for MFTRegisterLocal.
      ddraw: Accept the d3d1 and d3d2 versions of D3DFINDDEVICERESULT in ddraw_find_device().
      mfplat: Forward IMFMediaType to IMFAttributes.
      mfplat: Forward IMFStreamDescriptor to IMFAttributes.
      mfplat: Implement MFCreateSample.

Andrew Wesie (1):
      wined3d: Use raw blit for supported depth-stencil blits.

André Hentschel (8):
      ntdll: Bump Win 10 version to 17134.
      api-ms-win-core-comm-l1-1-0: Add dll.
      api-ms-win-core-stringloader-l1-1-1: Add dll.
      api-ms-win-security-cryptoapi-l1-1-0: Add dll.
      advapi32/tests: Allow ERROR_ACCESS_DENIED for newer Win10.
      kernel32/tests: Allow ERROR_ACCESS_DENIED for newer Win10.
      oleaut32/tests: Adjust test to a fixed Windows bug.
      crypt32: Print Crypt(Un)protectMemory FIXME only once.

Aric Stewart (2):
      winebus.sys: Improve unloading the winebus driver.
      winebus.sys: Implement IRP_MN_QUERY_DEVICE_RELATIONS.

Bernhard Übelacker (1):
      wintab32: Correct ordinal in comment to the same as in the spec file.

Brock York (2):
      kernel32/tests: Test ReplaceFileW on open exe.
      kernel32/tests: Improve ReplaceFileW error checking.

Dmitry Timoshkov (10):
      ntoskrnl.exe: Add a stub for MmCreateSection.
      fltmgr.sys: Add stubs for FltAcquirePushLockExclusive, FltDeletePushLock and FltReleasePushLock.
      ntoskrnl: Fix cross-compilation of the driver tests.
      ntoskrnl: Add a test for a failing to load driver.
      wininet: Remove unused parameter from create_netconn().
      msi/tests: Add some tests for remote MSI summary info APIs.
      msi: Handle the remote case in MsiSummaryInfoSetProperty.
      msi: Handle the remote case in MsiSummaryInfoGetPropertyCount.
      msi: Handle the remote case in MsiSummaryInfoGetProperty.
      msi/tests: Add more tests for remote MsiSummaryInfoGetProperty.

François Gouget (2):
      ole32/tests: Fix spelling of a variable name.
      cmd: A spelling fix in a comment.

Gabriel Ivăncescu (10):
      shell32/autocomplete: Revamp pwzsRegKeyPath handling so it can deal with arbitrary sizes and make it more robust.
      shell32/autocomplete: Fix handling of Backspace and Delete.
      comctl32/listbox: Update the size in SetColumnWidth before calling UpdatePage.
      user32/listbox: Update the size in SetColumnWidth before calling UpdatePage.
      shell32/autocomplete: Fix a vulnerability by avoiding the use of snprintf.
      shell32/autocomplete: Handle heap_alloc failure.
      shell32/autocomplete: Reduce the strlen calls because they are redundant.
      shell32/autocomplete: Don't call ShowWindow unless auto-suggest listbox is enabled.
      shell32/autocomplete: Get rid of control and filled BOOLs and simplify the code.
      shell32/autocomplete: Dynamically allocate hwndText so it can handle arbitrary sizes.

Gijs Vermeulen (6):
      msvcp110: Export xtime_get.
      msvcp110: Export _Xtime_diff_to_millis2.
      msvcr100: Add Concurrency::wait stub.
      ntoskrnl: Add ExReleaseResourceLite stub.
      include: Add virtdisk.h.
      virtdisk/tests: Add GetStorageDependencyInformation tests.

Hans Leidekker (3):
      secur32/tests: Connect to instead of
      userenv: Fix setting the ALLUSERSPROFILE environment variable.

Henri Verbeet (12):
      wined3d: Get rid of the "attribute_size" field in struct wined3d_format.
      wined3d: Add component info for R10G10B10X2_SNORM and R10G10B10X2_UINT.
      wined3d: Introduce WINED3DFMT_FLAG_NORMALISED.
      wined3d: Derive format component counts from the component info.
      ddraw/tests: Rewrite FindDevice().
      ddraw: Ignore the colour model in d3d3_FindDevice().
      ddraw: Find the correct GUIDs for each D3D version in FindDevice().
      d2d1: Simplify the WIC render target implementation.
      wined3d: Move ARB_vertex_array_bgra handling to init_format_vertex_info().
      wined3d: Handle lack of ARB_half_float_vertex in format_vertex_info[].
      wined3d: Use a table for colour fixups in apply_format_fixups().
      wined3d: Introduce WINED3DFMT_FLAG_VERTEX_ATTRIBUTE.

Huw D. M. Davies (1):
      ntoskrnl: Allow space for the '\0'.

Jacek Caban (15):
      server: Support ObjectTypeInformation in pipe objects.
      winhttp: Improve WINHTTP_OPTION_CONNECT_RETRIES stub.
      xmllite: Prefer builtin version.
      mshtml: Added IHTMLCSSStyleDeclaration::backgroundClip property implementation.
      mshtml: Added IHTMLCSSStyleDeclaration::opacity property implementation.
      mshtml: Added IHTMLCSSStyleDeclaration::zoom property implementation.
      mshtml: Add IHTMLCSSStyleDeclaration2 stub implementation.
      mshtml: Added IHTMLCSSStyleDeclaration::cssFloat property implementation.
      mshtml: Added IHTMLCSSStyleDeclaration::put_cssStyle implementation.
      mshtml: Added IHTMLCSSStyleDeclaration::get_cssText implementation.
      mshtml: Added IHTMLCSSStyleDeclaration::removeProperty implementation.
      mshtml: Added IHTMLCSSStyleDeclaration::styleFloat property implementation.
      mshtml: Use dispex_compat_mode in update_filter.
      mshtml: Expose IHTMLCSSStyleDeclaration interface to scripts.
      mshtml: Expose CSS properties names from style object via IHTMLCSSStyleDeclaration dispids.

Jactry Zeng (3):
      ole32: Partially implement OleCreateStaticFromData() for OLERENDER_FORMAT.
      riched20: Handle NULL in ITextServices::{TxGetHScroll, TxGetVScroll}.
      ntoskrnl: Add FsRtlIsNameInExpression stub.

Jason Edmeades (3):
      cmd: Handle whitespace in 'for' argument items.
      cmd: Handle "for" loop handling of tokens, where * does not follow a number.
      cmd: Handle unechoed rem commands inside a (..) section.

Josh DuBois (1):
      ntdll: Use root of c: drive as fallback cwd during startup.

Józef Kucia (20):
      dxgi: Fix dxgi_output_QueryInterface().
      d3d11: Normalize D3D11_BLEND_DESC.
      d3d11: Pass normalized D3D11_DEPTH_STENCIL_DESC to wine_rb_put().
      wined3d: Allow wined3d_device_update_sub_resource() only on GPU accessible resources.
      wined3d: Fix initial data for non-GPU buffers.
      d3d11/tests: Add test for staging buffers.
      wined3d: Try to avoid allocating sysmem for GPU buffers with initial data.
      wined3d: Add support for A8_UNORM render targets.
      winevulkan: Check if instance extensions are supported.
      vulkan-1/tests: Add test for unsupported instance extensions.
      winevulkan: Check if device extensions are supported.
      vulkan-1/tests: Add test for unsupported device extensions.
      winevulkan: Trace VkApplicationInfo in wine_vkCreateInstance().
      winevulkan: Enable vkGetDeviceProcAddr() quirk for idTech engine.
      iphlpapi: Fix FILE leak in get_ipv6_addr_scope_table() (Coverity).
      d3d11/tests: Test D3D11_BLEND_DESC normalization.
      d3d10core/tests: Test D3D10_BLEND_DESC normalization.
      wined3d: Add support for 1D UAVs in shaders.
      wined3d: Use >= for shader model checks in feature_level_from_caps().
      wined3d: Set WINED3DFMT_FLAG_COMPRESSED based on format block info.

Louis Lenders (2):
      pidgen: Add stub for PIDGenSimpW.
      advapi32: Add stub for TraceSetInformation.

Michael Müller (3):
      wininet: Resize buffer when call to InternetCanonicalizeUrlW fails in InternetCrackUrlW.
      virtdisk: Add GetStorageDependencyInformation stub.
      ntdll: Add stub for ApiSetQueryApiSetPresence.

Michael Stefaniuc (6):
      winspool.drv: Use the ARRAY_SIZE() macro.
      dplayx: Use the ARRAY_SIZE() macro.
      riched20: Use the ARRAY_SIZE() macro.
      wbemprox: Use the ARRAY_SIZE() macro.
      webservices: Use the ARRAY_SIZE() macro.
      ws2_32: Use the ARRAY_SIZE() macro.

Nikolay Sivov (54):
      opcservices/tests: Add some tests.
      opcservices: Add IOpcPartUri stub.
      opcservices: Add IOpcPart stub.
      comctl32/listbox: Fix debug channel name.
      shlwapi: Don't reuse a function for different methods.
      shlwapi: Fix Stat() method for file streams.
      dxgi: Implement Map()/Unmap().
      opcservices: Store part properties on creation.
      opcservices: Add IOpcRelationshipSet stub.
      opcservices: Add IOpcRelationship stub.
      opcservices: Implement IOpcPart::GetRelationshipSet().
      opcservices: Partially implement file-based stream.
      opcservices: Remove unnecessary trace message.
      opcservices: Keep parts in a set.
      opcservices: Keep relationships in a set.
      opcservices: Keep relationship id.
      opcservices: Keep target uri and mode for relationships.
      opcservices: Keep relationship type string.
      opcservices: Partially implement CreatePackageRootUri().
      opcservices: Forward IOpcPartUri methods to urlmon implementation.
      xmllite/reader: Fix compiler warning.
      opcservices: Implement GetSourceUri().
      opcservices: Implement writing stub compressed package.
      opcservices: Implement GetCompressionOptions().
      opcservices: Implement GetRelationship().
      opcservices: Implement RelationshipExists().
      opcservices: Implement relationships parts uri support.
      opcservices: Fix argument handling in CreatePackageRootUri().
      opcservices: Fix a typo.
      shlwapi/tests: Add some tests for memory stream.
      xmllite/tests: Add more writer tests.
      xmllite/writer: Validate local name and prefix in WriteElementString().
      xmllite/writer: Validate local name and prefix in WriteStartElement().
      xmllite/writer: Add support for namespace definitions in WriteElementString().
      xmllite/writer: Improve namespaces handling in WriteStartElement().
      opcservices: Output content types URI.
      xmllite/tests: Add another test for WriteAttributeString().
      xmllite/writer: Improve namespace support in WriteAttributeString().
      opcservices: Partially implement content stream for package parts.
      d2d1: Properly aggregate render target implementations.
      opcservices/tests: Fix uninitialized variable access (Valgrind).
      opcservices: Fix uri path leak (Valgrind).
      opcservices: Fix underlying uri object leak (Valgrind).
      opcservices/tests: Fix some leaks in tests (Valgrind).
      opcservices: Implement IOpcPartEnumerator.
      opcservices: Implement IOpcRelationshipEnumerator.
      include: Add ID2D1DrawingStateBlock1 definition.
      d2d1: Return bitmap options.
      xmllite/writer: Free finished element data (Valgrind).
      xmllite/writer: Fix formatted output for closing tags.
      xmllite/writer: Fix formatted output with interleaving text nodes.
      xmllite/writer: Use internal function to create writer output implicitly.
      xmllite/writer: Simplify setting default output encoding.
      d2d1: Update to ID2D1DrawingStateBlock1.

Pierre Schweitzer (2):
      mpr: Implement WNetClearConnections().
      mpr: Properly handle device-less connections.

Piotr Caban (1):
      vcruntime140: Add __uncaught_exceptions implementation.

Qian Hong (1):
      kernel32: Fallback to default comspec when %COMSPEC% is not set.

Rodrigo Saboya (1):
      wine.inf: Updates E. South America Standard Time DST data.

Roger Zoellner (1):
      ntdll: Relax checks for valid affinity mask in NtSetInformationThread().

Thomas Faller (1):
      cmd: Don't print an empty line if no command was executed.

Zebediah Figura (3):
      msi/tests: Remove some workarounds in test_publish_assemblies().
      msi: Skip publishing a local assembly with no corresponding file.
      msi: Add exception handling around all custom action RPC calls.

Zhiyi Zhang (7):
      comctl32/tests: Add tests for button state.
      comctl32/button: Use get_draw_state() helper.
      comctl32/button: Support displaying both image and text.
      comctl32/button: Avoid push button content covering frames.
      comctl32/button: Support imagelist rendering.
      comctl32/button: Support text margin rendering.
      comctl32/button: Support BCM_GETIDEALSIZE message.

Alexandre Julliard