Wine Announcement

The Wine development release 2.16 is now available.

What's new in this release (see below for details):
  - Support for pasting metafiles in RichEdit.
  - Better support for grayscale PNG images.
  - Support for safety features in library loading.
  - Better handling of transforms in GdiPlus.
  - Rendering improvements in DirectWrite.
  - 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.16 (total 19):

  26046  comctl32/monthcal tests show some invalid reads under valgrind
  28741  Odd coordinate in hit test causes uninitialized value references in MONTHCAL_CalculateDayOfWeek()?
  35282  Multiple applications/installers need 'reg.exe' 'import' operation implementation (Muvee Reveal 8.0.x)
  35935  Enterprise Architect fails to draw basic shapes when using gdiplus
  37982  Illustrator CS6: alternate color selection does not display colours
  40025  Winrar installer fails to start
  42256  PhotoFiltre 6 and 7 don't erase the mouse selection when dragging it
  42891  Unigine Superposition needs unimplemented function KERNEL32.dll.AddDllDirectory
  43293  strange behavior- Eudora scrambles email addresses
  43328  dotnet 4.5 applications crash in factory_get_cached_fontface
  43389  valgrind shows a few invalid reads in dlls/wsdapi/tests/xml.c
  43391  valgrind shows several definite leaks in programs/regedit/tests/regedit.c
  43392  valgrind shows a couple invalid reads in programs/regedit/tests/regedit.c
  43423  Multiple applications and games need 'ProgramData' environment variable set (SteelSeries Engine SDK based games, World of Warships 0.6.9+)
  43510  Monster Girl Quest: crashes while playing
  43536  WIC can't encode to GUID_WICPixelFormat32bppPBGRA PNG
  43603  clipboard PIXMAP regression after upgrading from 1.8.x to 2.x
  43617  [Crash] Application crash when running C:\GOG Games\Baldur's Gate\BGMain2.exe
  43632  Drop down menu for DLL override doesn't work


Changes since 2.15:

Alex Henrie (1):
      include: Allow programs to take the address of byte-swapping functions.

Alexandre Julliard (32):
      winex11: If importing an X11 clipboard format fails, try other candidate formats for the target.
      gdi32/tests: Add a test case for DIB color painting.
      gdi32: Always dither brush when painting to a 1-bpp device.
      gdi32/tests: Run DIB tests also against a monochrome DDB.
      gdi32: Pass the brush origin explicitly to the brush backend functions.
      gdi32: Use the correct brush origin when the blit operation requires an intermediate bitmap.
      gdi32: Do not dither non-extended wide pens.
      kernel32: Implement safe dll search mode.
      kernel32: Implement SetDefaultDllDirectories.
      kernel32: Add support for LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE flag.
      include: Add libloaderapi.h.
      oleaut32: Don't copy uninitialized data.
      shell32: Avoid zeroing a buffer that will get overwritten.
      propsys: Don't use the format string size as buffer size.
      crypt32/tests: Increase buffer size to avoid gcc warnings.
      kernel32: Implement AddDllDirectory and RemoveDllDirectory.
      kernel32: Add helper functions for building the load path.
      kernel32: Implement LOAD_LIBRARY_SEARCH_* flags.
      kernel32/tests: Add tests for the LOAD_LIBRARY_SEARCH_* flags.
      kernel32/tests: Fix a dll reference leak.
      kernel32: Implement safe search mode for SearchPath.
      kernel32/tests: Add tests for SetSearchPathMode.
      rsaenh: Avoid potential buffer overflows in registry key name.
      wintrust: Increase buffer size to silence a gcc warning.
      crypt32: Increase buffer size to silence a gcc warning.
      kernel32/tests: Use function pointers to avoid gcc warnings for invalid parameter tests.
      ntdll: Store the PEB lock pointer in the PEB.
      fusion/tests: Correctly test non-string properties.
      fusion/tests: Simplify directory recursion and avoid redundant buffers.
      kernel32: Silence buffer overflow gcc warnings.
      user32: Consistently print the HDC value in DCE traces.
      user32: Use the correct top-level window when activating through a mouse click.

Alistair Leslie-Hughes (7):
      sxs: Use standard wine_dbgstr_longlong.
      fusion: Use standard wine_dbgstr_longlong.
      quartz: Use standard wine_dbgstr_longlong.
      include: Add IWMPEvents/2/3/4 and supporting interfaces.
      wmp/tests: Add tests for IConnectionPointContainer.
      ntdll: Use standard wine_dbgstr_longlong.
      wininet: Use standard wine_dbgstr_longlong.

Andrew Eikum (3):
      gdiplus: Fix copy-paste typo.
      gdiplus: Don't call PlayEnhMetaFileRecord for records handled by gdiplus.
      gdi32: Update metafile world transform immediately in winnt mode.

Andrey Gusev (3):
      api-ms-win-eventing-legacy-l1-1-0: Add dll.
      avrt: Add AvQuerySystemResponsiveness stub.
      api-ms-win-core-kernel32-legacy-l1-1-1: Update spec file.

Anton Romanov (1):
      windowscodecs: PNGEncoder: Return 32bppRGBA pixel format by default.

Aurimas Fišeras (1):
      po: Update Lithuanian translation.

Austin English (2):
      advapi32: Only show OpenTraceA/W FIXME once.
      advapi32: Only show NotifyServiceStatusChangeW FIXME once.

Changhui Liu (2):
      gdiplus/tests: Add test for hdc with window origin point changed.
      gdiplus/tests: Add drawing tests for GdipFillRegion with gdi transform.

Dmitry Timoshkov (6):
      gdiplus/tests: Add a test for loading PNG grayscale images.
      user32/tests: Test DialogBoxParam using a dialog template with invalid control class.
      user32: DialogBoxParam should return -1 when dialog control creation fails.
      gdiplus: Force conversion of 8 bpp grayscale PNG images to 32 bpp BGRA.
      gdiplus/tests: Add a test for image flags to PNG grayscale image tests.
      gdiplus: Set correct color space flags for grayscale images.

Fabian Maurer (10):
      user32/combo: Set listbox popup height correctly and add tests.
      winecfg: Use proper size for combobox controls.
      comctl32/tests: Use proper size for combobox controls.
      comdlg32: Use proper size for combobox controls.
      cryptui: Use proper size for combobox controls.
      dinput: Use proper size for combobox controls.
      joy.cpl: Use proper size for combobox controls.
      serialui: Use proper size for combobox controls.
      wineps.drv: Use proper size for combobox controls.
      wineconsole: Use proper size for combobox controls.

Hans Leidekker (2):
      webservices: Create a new HTTP request for each message.
      webservices: Set cache control headers.

Hugh McMaster (15):
      reg/tests: Pass MultiByteToWideChar() the buffer size in characters.
      reg/tests: Free the WCHAR memory buffer if CreateFile() fails.
      regedit/tests: Add Unicode import tests and remove the WCHAR support check.
      regedit/tests: Delete the test registry key before starting each test.
      regedit/tests: Add Unicode tests for importing registry data with inter-mixed comments.
      regedit/tests: Add Unicode tests for importing registry data with whitespace.
      regedit/tests: Add Unicode tests for registry key creation and deletion.
      regedit/tests: Add Unicode tests for value deletion.
      regedit/tests: Add Unicode tests for importing invalid registry data.
      regedit/tests: Add some mixed key creation and deletion tests.
      regedit: Close any open registry keys before starting the key deletion process.
      reg/tests: Add some mixed key creation and deletion tests.
      reg: Close any open registry keys before starting the key deletion process.
      regedit: Null-terminate incomplete REG_EXPAND_SZ and REG_MULTI_SZ Unicode data.
      reg: Null-terminate incomplete REG_EXPAND_SZ and REG_MULTI_SZ Unicode data.

Huw D. M. Davies (11):
      riched20: Move the editor initialization out of CreateTextHost().
      riched20: Retrieve the default paragraph alignment from the text host.
      riched20: Initialize ME_TextEditor members in ME_MakeEditor().
      riched20: Don't create a special richedit ole instance for the RTF parser.
      riched20: Add support for EM_PASTESPECIAL.
      riched20: Use the implementation of EM_PASTESPECIAL for WM_PASTE.
      riched20: Use the implementation of EM_PASTESPECIAL for EM_CANPASTE.
      riched20: Add support for pasting EMFs.
      gdi32: Cache the device caps from the reference dc, since the dc may become invalid.
      wineps: Fall back to the null driver for common device caps.
      riched20: Remove the separate implementation of IOleWindow as IOleInPlaceSite inherits from IOleWindow.

Jacek Caban (7):
      jscript: Added support for VT_R4 VARIANT types.
      mshtml: Return documentMode as VT_R4.
      mshtml: Don't allow changing document mode after script insertion or when it's already set.
      mshtml: Added delayed DispatchEx init support and use it to expose IHTMLDOMNode3 from document node.
      mshtml.idl: Added IHTMLDocument8 declaration.
      mshtml: Added IHTMLDocument6::getElementById implementation.
      mshtml: Properly expose IHTMLDocument6 interface to scripts.

Józef Kucia (6):
      wined3d: Avoid potential NULL pointer dereference (Coverity).
      d3d10core/tests: Remove needless assignment.
      d3d11/tests: Remove needless assignment.
      d3d11/tests: Add 10_1 to default feature levels list.
      d3d11: Simplify d3d10_query_GetData().
      msvcrt: Fix precision handling for string arguments.

Lauri Kenttä (1):
      po: Update Finnish translation.

Marcus Meissner (1):
      kernel32/tests: Fixed size to GetTempPathW.

Miklós Máté (1):
      winex11: Improve the desktop resolution list.

Nikolay Sivov (21):
      po: Update Russian translation.
      dwrite: Use more readable names for spacing attributes.
      dwrite: Set drawing effect for trimming sign.
      dwrite: Split initial cluster computation by stage.
      dwrite: Use safer method to set per-factory system collection reference.
      dwrite: Use safer method to set per-factory EUDC collection reference.
      dwrite/tests: Some tests for system font set.
      gdiplus: Use defined constants for wrap modes.
      dwrite/tests: A test to draw trimming sign with drawing effect.
      d2d1: Pass inline object effect through rendering context.
      dwrite: Don't use drawing effect for trimming signs.
      dwrite: Set leading text alignment for default trimming sign.
      dwrite: Remove unused call.
      dwrite: Improve empty contours handling in GetGlyphRunOutline().
      wsdapi: Fix use-after-free when checking for unique prefix (Valgrind).
      wsdapi/tests: Use constants for test strings when possible.
      comctl32/monthcal: Initialize day field before setting final hit test result (Valgrind).
      comctl32/monthcal: Make sure set today date is valid before using it (Valgrind).
      comctl32/monthcal: Make sure set focus date is valid before using it (Valgrind).
      dwrite: Fix proportional spacing method.
      d2d1: Fix rounding when setting scissor rectangle.

Paul Gofman (10):
      d3d9/tests: Add tests for setting vertex shader constants in SWVP and MVP modes.
      d3d9/tests: Add tests for SW shaders creation in SWVP and MVP modes.
      d3d9/tests: Add test for SW shader in MVP mode.
      d3dx9: Factor out set_constants_device() function.
      d3dx9: Get rid of constants modification bitmasks.
      d3dx9: Do not support preshader instructions which output multiple registers.
      d3dx9: Dump bytecode if parameter evaluator creation failed.
      d3dx9: Use bitmask instead of BOOL array for light_updated.
      d3dx9/tests: Add test for effect with unsupported shader.
      d3dx9: Do not fail effect creation if a shader cannot be created.

Stefan Dösinger (3):
      wined3d: Avoid writing queue->head in the CS thread.
      wined3d: Do not call queue_is_empty in wined3d_cs_mt_finish.
      ws2_32: Also check the FQDN when injecting the local IP.

Vincent Povirk (15):
      wmphoto: Add stub dll.
      wmphoto: Register WMP encoder and decoder classes.
      shell32: Change default ProgramData folder and set ProfileList key.
      kernel32: Set the ProgramData environment variable.
      gdiplus: Check for invalid coordinate space in GdipTransformPoints.
      gdiplus: Replace DPtoLP with an internal coordinate space constant.
      gdiplus: Test that clip region doesn't account for gdi32 transform changes.
      gdiplus: Transform clipping region to gdi device coordinates.
      gdiplus: Test that GdipGetRegionHRgn includes gdi32 transform.
      gdiplus: Account for gdi transform in SOFTWARE_GdipFillRegion.
      gdiplus: Account for gdi transform in brush_fill_pixels.
      gdiplus: Use SOFTWARE_GdipDrawPath with alpha hdc's.
      gdiplus: Account for gdi32 transform in GdipDrawImage.
      gdiplus: Send paths to gdi32 in device coordinates.
      gdiplus: Account for gdi32 transform in SOFTWARE_GdipDrawThinPath.

Alexandre Julliard