Wine Announcement

The Wine development release 1.9.22 is now available.

What's new in this release (see below for details):
  - macOS clipboard support adapted to the new design.
  - Initial implementation of bitmap rendering in Direct2D.
  - More WebServices implementation.
  - A few more steps towards HID support.
  - 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 1.9.22 (total 25):

  11910  Multiple games need msvcirt.dll.??0istrstream@@QAE@PADH@Z (Tron 2.0, NOLF2, Schizm 2)
  16925  Star Trek: Borg does not run, needs msvcrt20.dll.??0ostrstream@@QAE@PADHH@Z
  20569  Winamp's next page in the shoutcast radio/tv list doesn't respond
  22671  Gestan crashes due to unimplemented msvcirt.dll.??0istrstream@@QAE@PAD@Z
  24519  Fractal Time!: cannot select an area in the generated image to zoom in
  26994  Microsoft reader crashes due to unimpl msvcirt.dll.?rdbuf@ostrstream@@QBEPAVstrstreambuf@@XZ
  27553  Reservoir Dogs: no videos and black menu right after starting
  29174 Lineage II installer crashes
  29412  Right click on system tray icon not work
  31338  Max Payne 2: The Fall of Max Payne (Steam) shows white screen and nothing else
  32672  Rainbow Six: Only the sky is rendered
  35025  Max Payne 2 Demo: checkboxes in options dialog have missing window styles
  35281  KCleaner hangs up in system tray
  35452  Warhammer 40,000: Dawn of War II (Steam) crashes on startup, reporting 'Failed to verify content catalog integrity'
  35630  New ReactOS shell crashes on unimplemented function shell32.dll.723 a.k.a. SHCreateSessionKey
  36205  TrySim v5.0 demo doesn't exit cleanly (crashes/hangs on exit)
  36690  Rockman 7FC has issues with Shade Man Easter Egg
  37410  Might & Magic Heroes IV crashes on startup
  39364  LFS.exe (Live for Speed) crash on copy/paste (Ctrl+C) operation on chat history
  41449  Power DVD 15 (Cyberlink) needs unimplemented function SHELL32.dll.SHRemoveLocalizedName
  41492  Failure to compile: redefinition of typedef ‘EVENT_FILTER_DESCRIPTOR’
  41565  WMI error in object Win32_ComputerSystemProduct, property UUID
  41570  Xenia emulator needs unimplemented function api-ms-win-core-rtlsupport-l1-1.RtlLookupFunctionEntry called in 64-bit code
  41572  Windows API crash (GetTimeZoneInformationForYear)
  41575  Copy/Cut and paste do not work as of wine 1.9.21


Changes since 1.9.21:

Alexandre Julliard (1):
      rpcrt4: Remove noisy fixme.

Alistair Leslie-Hughes (2):
      comtrl32/treeview: Display state value as hex.
      comdlg32/tests: Test when a directory is passed to OpenFileName Dialog.

Andrew Eikum (4):
      quartz: Clarify debug strings.
      d2d1: Implement d2d_transformed_geometry_FillContainsPoint().
      d2d1: Implement d2d_path_geometry_FillContainsPoint().
      d2d1/tests: Add FillContainsPoint() tests.

Andrey Gusev (8):
      user32: Add support for WS_EX_RIGHT style.
      wpc: Fix TRACE for WindowsParentalControls_CreateInstance.
      po: Update Ukrainian translation.
      api-ms-win-core-psapi-obsolete-l1-1-0: Add dll.
      ext-ms-win-gdi-dc-create-l1-1-1: Add dll.
      ext-ms-win-ntuser-message-l1-1-1: Add dll.
      ext-ms-win-rtcore-ntuser-dpi-l1-1-0: Add dll.
      ext-ms-win-ntuser-uicontext-ext-l1-1-0: Add dll.

Aric Stewart (6):
      include: Correct NTSTATUS declaration for hidsdi.h.
      hidclass.sys: Use IoSetCompletionRoutine.
      hidclass.sys: Watch return for STATUS_PENDING not IRP status.
      winebus.sys: Handle device reports for hidraw devices.
      hid: Implement HidD_SetOutputReport.
      winebus.sys: Implement IOCTL_HID_SET_OUTPUT_REPORT for hidraw.

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

Austin English (3):
      shell32: Add SHRemoveLocalizedName stub.
      shell32: Add SHCreateSessionKey stub.
      api-ms-win-core-rtlsupport-l1-1-0: Add missing forwards.

Bruno Jesus (1):
      comdlg32: Avoid crash when a path is passed into Open File Dialog.

Carlo Bramini (2):
      comdlg32: Uses SetDlgItemInt() to simplify the code.
      msi: Remove useless code.

Christoph von Wittich (1):
      rpcrt4: Implement RpcBindingServerFromClient and populate NetworkAddr for each transport.

Detlef Riekenberg (1):
      winspool: Add our driver for all usable Printer environments.

Donat Enikeev (2):
      crypt32/tests: Add tests for Cert(Un)registerSystemStore.
      crypt32: Cert(Un)RegisterSystemStore semi-stubs.

Frédéric Delanoy (1):
      po: Update French translation.

Hadrien Boizard (1):
      winex11.drv: Use EqualRect() instead of memcmp() to compare RECTs.

Hans Leidekker (13):
      advapi32: Avoid printing control characters in traces.
      davclnt: Return a fake handle from DavRegisterAuthCallback.
      include: Avoid redefinition of PEVENT_FILTER_DESCRIPTOR.
      netapi32: Implement DavGetUNCFromHTTPPath.
      wbemprox: Use the WS_ prefix to avoid conflicts with Unix headers.
      wbemprox: Return the hardware UUID for Win32_ComputerSystemProduct.UUID on macOS.
      msi: Accept descriptors without component.
      webservices: Implement WsReadBytes.
      webservices: Implement WsReadCharsUtf8.
      webservices: Implement WsReadChars.
      webservices: Add a stub implementation of WS_TYPE_ATTRIBUTE_FIELD_MAPPING in the reader.
      webservices: Explicitly pass the offset to read_type_struct_field.
      webservices: Implement WsCall.

Henri Verbeet (1):
      wined3d: Get rid of WINED3DFMT_FLAG_GETDC.

Hugh McMaster (7):
      regedit/tests: Replace the hard-coded subkey path with a define.
      regedit/tests: Open the registry key once in each test function.
      regedit/tests: Handle different data types with one verify_reg() function.
      regedit/tests: Add line break and complexity tests.
      reg/tests: Add line break and complexity tests for 'reg import'.
      regedit: Do not close the registy key handle when a line break is encountered.
      regedit: Close the registry key handle in the read function instead of the parser.

Huw D. M. Davies (4):
      comctl32: Make the position variables signed to avoid wrapping in the HDF_RIGHT case.
      comctl32: Add support for the sort arrows.
      winemac: Update the keyboard layout data immediately after changing the input source.
      ntdll: Zero-init the buffer for non-linux versions of SystemProcessorPerformanceInformation.

Iván Matellanes (10):
      msvcirt: Don't return negative values in in_avail and out_waiting.
      msvcirt: Add a partial implementation of class ostrstream.
      msvcirt: Implement ostrstream constructors.
      msvcirt/tests: Add tests of ostrstream::pcount.
      msvcirt: Add a partial implementation of class istrstream.
      msvcirt: Implement istrstream constructors.
      msvcirt: Add a partial implementation of class strstream.
      msvcirt: Implement strstream constructors.
      msvcirt: Add a partial implementation of class stdiostream.
      msvcirt: Implement stdiostream constructors.

Jacek Caban (13):
      wintrust: Don't close key if RegOpenKeyExW failed.
      ntdll/tests: Added more registry symlink tests.
      ntdll: Return NULL key on NtCreateKey failure.
      advapi32: Pass options argument to NtOpenFileEx.
      advapi32: Initialize retkey value in open_key.
      ws2_32: Added FreeAddrInfoExW stub.
      kernel32: Improved GetUserPreferredUILanguages stub.
      taskschd: Added ITriggerCollection::Create implementation.
      taskschd: Added IDailyTrigger::DaysInterval property implementation.
      xmllite: Return success when setting XmlReaderProperty_MultiLanguage property.
      xmllite: Return success when setting XmlReaderProperty_MaxElementDepth property.
      ntdll: Cache error information for cacheable handles with no fd.
      server: Allow caching device file handles.

Józef Kucia (17):
      wined3d: Let buffer_direct_upload() invalidate STATE_INDEXBUFFER if needed.
      wined3d: Clean up buffer_internal_preload().
      wined3d: Rename buffer_internal_preload() to wined3d_buffer_load().
      wined3d: Rename buffer_get_sysmem() to wined3d_buffer_load_sysmem().
      wined3d: Explicitly track locations for buffers.
      wined3d: Introduce wined3d_buffer_prepapre_location().
      wined3d: Introduce wined3d_buffer_load_location().
      wined3d: Do not assume that WINED3D_LOCATION_SYSMEM is always valid for double buffered buffers.
      wined3d: Move buffer_get_memory() under wined3d_buffer_load_sysmem().
      wined3d: Implement wined3d_buffer_prepare_location() for WINED3D_LOCATION_BUFFER.
      wined3d: Introduce wined3d_buffer_get_memory().
      wined3d: Prefer current locations to WINED3D_LOCATION_SYSMEM in wined3d_buffer_copy().
      wined3d: Replace wined3d_buffer_load_sysmem() calls with wined3d_buffer_load_location().
      wined3d: Introduce buffer_conversion_upload() helper function.
      wined3d: Simplify remove_vbos().
      wined3d: Fix index offset for immediate mode draws.
      wined3d: Use buffer_bind() in buffer_conversion_upload().

Ken Thomases (18):
      server: Make disconnecting a named pipe immediately close the client's connection and allow the server to initiate a new connection.
      kernel32/tests: Test that ConnectNamedPipe() works immediately after DisconnectNamedPipe() without waiting for the client to close.
      winemac: Allocate clipboard data as GMEM_FIXED.
      winemac: Convert old-Mac-style line breaks (CR) to Windows-style CRLF when importing UTF-16.
      winemac: Remove support for owner-displayed clipboard formats.
      winemac: Remove support for converting among standard clipboard formats.
      winemac: Don't export/import CF_BITMAP or CF_DIBV5 to/from a Mac-native data type.
      winemac: Don't export/import CF_TEXT or CF_OEMTEXT to/from Mac-native data types.
      winemac: Clamp the number of colors to <= 256 in bitmap_info_size().
      winemac: Use GetDIBits to retrieve the bitmap header when exporting a bitmap.
      winemac: Remove no-longer-called clipboard entry points.
      winemac: Simplify format_for_type() and callers since there's at most one format for a given Mac pasteboard type.
      winemac: Reimplement query_pasteboard_data() using the user32 clipboard API.
      winemac: Change macdrv_copy_pasteboard_formats() to return a C array instead of a CFArray.
      winemac: Run a single clipboard manager thread per window station, inside the explorer process.
      winemac: Implement the UpdateClipboard entry point to have the clipboard manager update its status.
      winemac: Detect loss of ownership of the Mac pasteboard and update the clipboard manager status.
      winemac: Use min() rather than MIN(), which is not reliably defined.

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

Marcus Meissner (2):
      explorer: Check icon for NULL (Coverity).
      riched20: Swap check for NULL ptr and first usage (Coverity).

Michael Stefaniuc (2):
      mshtml/tests: Use EqualRect() to compare RECTs.
      mshtml: Use EqualRect() to compare RECTs.

Nikolay Sivov (10):
      po: Update Russian translation.
      d2d1: Initial implementation of bitmap render target.
      uxtheme: Remove stub message for implemented functions.
      quartz: Remove stub messages for implemented methods.
      advapi32: Remove stub message from implemented function.
      wincodecs: Remove stub message for implemented methods.
      d3drm: Remove stub messages for implemented methods TRACEs.
      d2d1: Support setting and getting back start and end point for linear gradient brush.
      d2d1: Store gradient stop collection pointer for linear gradient brush.
      po: Update Russian translation.

Pierre Schweitzer (1):
      mpr: Implement connected resources enumeration.

Piotr Caban (1):
      gdiplus: Fix GdipCreateLineBrushFromRectWithAngle implementation.

Roman Pišl (2):
      process: Make PROCESS_QUERY_LIMITED_INFORMATION sufficient for QueryFullProcessImageName().
      user32: Fix buffer overflow in EDIT_EM_ReplaceSel().

Sebastian Lackner (11):
      ntoskrnl.exe: Defer deallocation of in_buff in dispatch_ioctl.
      ntoskrnl.exe: Add support for METHOD_IN_DIRECT/METHOD_OUT_DIRECT ioctls.
      ntoskrnl.exe: Use MmInitializeMdl in IoAllocateMdl.
      ntoskrnl.exe: Explicitly set MappedSystemVa for MDLs.
      hidclass.sys: Use MmGetSystemAddressForMdlSafe to access MDL data.
      hidclass.sys: Update reportBuffer pointer after reading packet from ringbuffer.
      hidclass.sys: Fix memory leak in call_minidriver.
      hidclass.sys: Fix memory leak in hid_device_thread.
      hidclass.sys: Avoid magic constants in ringbuffer implementation.
      hidclass.sys: Do not return failure when trying to set same ringbuffer size.
      hidclass.sys: Only return new reports when reading data from ringbuffer.

Vincent Povirk (2):
      gdiplus: Reimplement GdipDrawPolygon based on GdipDrawPath.
      gdiplus: Implement GdipIsOutlineVisiblePathPoint.

Alexandre Julliard