Wine Announcement

The Wine development release 2.17 is now available.

What's new in this release (see below for details):
  - Better support for grayscale mode in DirectWrite.
  - Per-application StartupWMClass in desktop files.
  - Virtual memory compatibility improvements.
  - Palette handling improvements in WindowsCodecs.
  - Reply messages improvements in WebServices.
  - 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 2.17 (total 20):

  12185  Before You Know It crashes
  19177  Gorky-17 does not start in Direct3D HAL (SW Renderer is OK)
  29958  UIRibbon Framework not implemented: 926749fa-2615-4987-8845-c33e65f2b957
  38622  gdiplus should return PixelFormat32bppARGB instead of PixelFormat8bppIndexed for a grayscale PNG file
  39885  Cannot allocate more than 32gb of memory
  41370  TTM_GETCURRENTTOOL returns always FALSE when send from TTN_NEEDTEXT handler.
  41827  Wrong specular rendering with some applications
  42427  Steam application claims no internet connection
  43046  Multiple apps need api-ms-win-crt-stdio-l1-1-0.dll.__stdio_common_vfprintf_s (Civilization VI, Mafia 3, SketchBook)
  43197  5Plus: Print dialog crashes with illegal floating point operation
  43290  MyLifeOrganized crashes when mousing over tabs
  43319  Steam Store/Uplay/Epic Games Launcher no longer display text in Windows 7 mode (libcef applications)
  43476  Skyrim hardware detection spinlocks with CSMT enabled
  43519  Path of Exile: Corrupt/flickering UI textures after ~1 minute of gameplay
  43577  unit test: DBGrid inplace editor dropdown does not work and worked on version 2.0.2
  43586  Dead Space: no shadows in game
  43649  dbgeng stub DebugCreateEx causes jadesentinel crash in JADE thin client
  43658  Text in Deletion Confirmation MsgBox has wrong background colour
  43668  Terris Universal Remote UFB 234 - update database does not work
  43685  Many games fail to start, or run without audio


Changes since 2.16:

Alex Henrie (7):
      msvcrt: Note that __stdio_common functions are for ucrtbase.
      ucrtbase: Add __stdio_common_vfprintf_s.
      ucrtbase: Add __stdio_common_vfwprintf_s.
      include: Add multimon.h.
      shell32/tests: Add tests for FolderItems_Item and FolderItems_get_Count.
      shell32: Implement FolderItems_Item.
      shell32: Implement FolderItems_get_Count.

Alexandre Julliard (29):
      ntdll: Add helper functions for getting and setting page protection bytes.
      ntdll: Add a helper function for setting bits in page protection bytes.
      ntdll: Add a helper function for applying page protection bytes with mprotect.
      ntdll: Pass the allocation size to the alloc_virtual_heap function.
      ntdll: Allocate the per-page protection byte separately from the view.
      ntdll: Remove the view parameter from the page protection helpers.
      ntdll: Allocate views out of a memory block instead of using a heap.
      ntdll: Don't do partial writes in virtual_uninterrupted_write_memory.
      ntdll: Use the find_view_range helper function to check for overlapping views.
      rbtree.h: Add a wine_rb_prev iteration helper function.
      ntdll: Store memory views in a binary tree instead of a list.
      server: Enforce valid flags for file mappings.
      ntdll: Disallow changing PAGE_NOCACHE flag for individual pages.
      ntdll: Remove the no longer used VPROT_NOEXEC flag.
      ntdll: Store the SEC_* section flags directly in the view protection.
      ntdll: Ignore attempts to commit pages in an already committed anonymous mapping.
      kernel32/tests: Retrieve the page size only once.
      kernel32/tests: Fix mapping protection tests to succeed on recent Windows versions.
      kernel32/tests: Also run mapping tests against an anonymous mapping.
      kernel32/tests: Also run mapping tests against an executable image.
      ntdll: Avoid accessing builtin views outside of the critical section.
      ntdll: Trace views once they are properly initialized.
      ntdll: Fix access rights checks for mapping objects.
      ntdll: Verify page protection against the mapping protections in VirtualAlloc and VirtualProtect.
      ntdll: Pass the mapping file access instead of the protection bits to the server.
      ntdll: Get rid of the VPROT_VALLOC flag.
      ntdll: Also release memory past the last view in remove_reserved_area.
      ntdll: Don't use the mapping handle to detect file mappings.
      kernel32/tests: Avoid some delays in the process test.

Alistair Leslie-Hughes (6):
      include: Added IMFMediaEventQueue interface.
      include: Add interfaces IMFMediaTypeHandler, IMFStreamDescriptor.
      mfplat: Added MFCreateEventQueue stub.
      include: Add IMFSinkWriterEx interface.
      mfplat: Implement MFCreateStreamDescriptor.
      mfplat: Implement MFCreateEventQueue.

Andrey Gusev (1):
      unicows: Fix CreateDialogParamW spec file entry.

Daniel Lehman (3):
      wininet: Fix proxy bypass with wildcard if domain length matches with server.
      msvcrt: Use exception base to create copy constructor pointer.
      msvcrt: Protect onexit table with critical section.

Dmitry Timoshkov (11):
      windowscodecs: Implement IWICBitmapDecoder::CopyPalette in PNG decoder.
      windowscodecs: Fix IWICBitmapEncoder::SetPalette for a not initialized case in PNG encoder.
      windowscodecs/tests: Make create_decoder() return an error code in PNG tests.
      windowscodecs/tests: Add more tests for loading PNG images in various color formats.
      windowscodecs: Implement IWICBitmapFrameEncode::SetPalette in JPEG encoder.
      windowscodecs: Fix IWICBitmapEncoder::SetPalette for a not initialized case in JPEG encoder.
      windowscodecs: Fix IWICBitmapEncoder::SetPalette for a not initialized case in BMP encoder.
      windowscodecs: Implement IWICBitmapFrameEncode::SetPalette in BMP encoder.
      windowscodecs: Implement IWICBitmapDecoder::CopyPalette in TIFF decoder.
      windowscodecs: Implement IWICBitmapFrameEncode::SetPalette in the TIFF encoder.
      windowscodecs: Fix IWICBitmapEncoder::SetPalette for a not initialized case in TIFF encoder.

Fabian Maurer (11):
      shell32: Draw text on message boxes without background.
      winecfg: Remove processorArchitecture from manifest.
      user32: Add stub for CalcMenuBar.
      api-ms-win-core-heap-l2-1-0: Add dll.
      api-ms-win-core-localization-obsolete-l1-3-0: Add dll.
      api-ms-win-core-shlwapi-obsolete-l1-2-0: Add dll.
      api-ms-win-core-synch-l1-2-1: Add dll.
      mfidl.idl: Add interfaces IMFClockStateSink, IMFGetService.
      dxva2api.idl: Add interface IDirectXVideoMemoryConfiguration.
      evr: Add interface definitions for EVR filter.
      comctl32/tests: Dump failed message sequence correctly.

François Gouget (7):
      dsquery: Case fixes.
      ieproxy: Case fixes.
      mshtml: A spelling fix in a WARN() message.
      mshtml: Make HTMLDocumentNode_init_dispex_info() static.
      dwrite: Factory_release_cached_fontface() is unused so remove it.
      webservices: Alloc_utf16_text() is unused, so remove it.
      gdiplus: Add a trailing linefeed to an ERR() message.

Hans Leidekker (13):
      webservices: Store headers in WsReadEnvelopeStart.
      webservices: Implement WsSendReplyMessage.
      webservices: Return HRESULT from insert_string.
      webservices: Store the action header as WS_XML_STRING.
      webservices: Add a mechanism to use the builtin static dictionary in the writer.
      webservices: Also use the dictionary for writing UTF-8 text values.
      webservices: Build a session dictionary for strings not present in the static dictionary.
      webservices: Add support for multiple message descriptions in WsReceiveMessage.
      webservices: Parse the MessageID header.
      webservices: Include a RelatesTo header in reply messages.
      winhttp: Trace errors from send and recv.
      winhttp: Allocate a credential handle for each session.

Hugh McMaster (3):
      reg/tests: Delete the test registry key before starting each test.
      reg/tests: Add basic tests for the export operation.
      setupapi: Recursively remove any subkeys before calling NtDeleteKey().

Huw D. M. Davies (4):
      riched20: Remove an unused parameter.
      riched20: Correctly release the STGMEDIUM.
      riched20: Don't special case the non-stretching case.
      riched20: Don't scale the picture size with dpi.

Jacek Caban (12):
      mshtml: Added IHTMLDocument7::get_characterSet implementation and use it in get_charset.
      mshtml: Added IHTMLDocument7::get_defaultView implementation and use it for get_parentWindow implementation.
      mshtml: Forward common function from IHTMLDocument7 to IHTMLDocument2.
      mshtml: Added implementation of IHTMLDocument7 event handler properties for supported events.
      mshtml: Expose IHTMLDocument7 interface to scripts.
      mshtml: Added IHTMLDocument7::head property implementation.
      mshtml: Added IHTMLDocument7::getElementsByClassName implementation.
      mshtml: Forward IHTMLElement6::get_nodeName to IHTMLDOMNode implementation.
      mshtml: Forward IHTMLElement6::get_tagName to IHTMLElement implementation.
      mshtml: Forward attributes functions from IHTMLElement6 to older interfaces.
      mshtml: Expose IHTMLElement6 to scripts.
      mshtml: Fixed getElementsByTagName for comment elements.

Jonathan Doron (2):
      ntdll: Apply owner and group regardless of the SE_OWNER_DEFAULTED or SE_GROUP_DEFAULTED flags.
      kernel32/tests: Test suspended process states.

Józef Kucia (1):
      d3d11/tests: Add test for conservative depth output.

Marcin Mikołajczak (1):
      po: Update Polish translation.

Martin Storsjo (1):
      msvcrt: Implement setjmp/longjmp on aarch64.

Matteo Bruni (13):
      d3d9/tests: Add a test for "NULL" FourCC format.
      wined3d: Return the up-to-date locations from blitters.
      wined3d: Don't take the upload path for blits to formats requiring conversion.
      wined3d: Restore support for d3d9 extension formats.
      wined3d: Get rid of most of the redundant query flushes.
      d3d9/tests: Trace the current test in test_signed_formats().
      d3d8/tests: Trace the current test in test_signed_formats().
      wined3d: Copy the module handle to a local variable in wined3d_cs_run().
      wined3d: Disable YUV formats when not supported.
      wined3d: Disable the ARBfp blitter on core profile.
      opengl32/tests: Fix typo in ok() condition.
      opengl32: Support a couple new typedefs in the XML.
      opengl32: Update to OpenGL 4.6.

Michael Müller (2):
      wined3d: Recognize conservative depth output registers.
      wined3d: Add conservative depth output information to GLSL pixel shaders.

Nikolay Sivov (22):
      dwrite: Handle 8bpp gray bitmaps for bitmap target.
      dwrite: Validate buffer size passed to CreateAlphaTexture() against analysis texture type.
      dwrite: Use 8bpp bitmaps in grayscale mode.
      d2d1: Use 8bpp text bitmaps for grayscale mode.
      dbgeng: Added DebugCreateEx() stub.
      dwrite: Fix 8bpp bitmap copy.
      msxml3/httpreq: Support HEAD request.
      dwrite: Support DWRITE_TRIMMING_GRANULARITY_WORD mode.
      comctl32/tooltips: Return full toolinfo from TTM_GETCURRENTTOOL.
      comctl32/tooltips: Set current tool before sending TTN_NEEDTEXT.
      comctl32/tooltips: Calm down trace messages.
      qcap: Remove redundant filter state check.
      usp10/tests: Remove special itemization failure test that doesn't happen.
      usp10/tests: Move initialization to a separate function, add another ScriptShape() test.
      usp10/tests: Remove workarounds that are no longer useful.
      shell32: Implement Application() property for Folder and FolderItems.
      dwrite/tests: Added a helper to initialize test text source.
      d2d1: Use better bezier segment bounds approximation when updating figure bounds.
      d2d1: Implement GetBounds() for path geometries.
      d3d9: Ask for texture GetDC() capability GET_DC based on texture format instead of initial swapchain buffer format.
      shell32/tests: Remove workarounds that are no longer relevant.
      shell32: Implement Application property for FolderItem.

Paul Gofman (3):
      d3dx9/tests: Add test for null shaders in effect.
      d3dx9: Return E_FAIL from ValidateTechnique() for techniques with unsupported shaders.
      d3dx9: Fix zero object_id handling in d3dx9_base_effect_get_pass_desc().

Rafał Mużyło (1):
      itss: Fix handling non-ASCII content paths.

Sebastian Lackner (1):
      kernel32: Add stub for GetProcessWorkingSetSizeEx.

Stefan Dösinger (1):
      ntdll: Make RtlDeregisterWaitEx(handle, INVALID_HANDLE_VALUE) thread safe.

Vincent Povirk (9):
      gdiplus: Account for gdi32 transform in SOFTWARE_GdipDrawPath.
      gdiplus: Account for gdi32 transforms in text functions.
      gdiplus: Account for gdi32 transform in GdipSetClipHrgn.
      windowscodecs: Generate a palette for color-keyed grayscale PNG's.
      winex11: Convert process name to lowercase for WM name hint.
      winemenubuilder: Set StartupWMClass for shortcuts to exe files.
      loader/wine.inf: Put 32-bit .ds fakedlls in windows/twain_32.
      sane.ds: Add support for word list options.
      shell32: Stub SHOpenWithDialog.

Zebediah Figura (9):
      msi: Remove ACTION_PerformUIAction().
      msi: Simplify message type processing.
      msi: More fully implement the ExecuteAction action.
      msi: Implement the INSTALL top-level action.
      msi: Perform the given action, or INSTALL, from MsiInstallProduct().
      msi/tests: Some cleanup for external UI tests.
      msi/tests: Add external UI tests for top-level actions.
      ieframe: Parse multiple command-line arguments.
      dsquery: Register CommonQuery coclass.

Alexandre Julliard