The Wine development release 1.9.18 is now available.

What's new in this release (see below for details):
  - Support for multiple kernel drivers in a single process.
  - More WebServices reader support.
  - Various improvements in joystick support.
  - Some more work towards the Direct3D command stream.
  - GDI performance improvements.
  - Improved IME window handling.
  - Compatibility fixes in the clipboard support.
  - Various bug fixes.

The source is available from the following locations:

  http://dl.winehq.org/wine/source/1.9/wine-1.9.18.tar.bz2
  http://mirrors.ibiblio.org/wine/source/1.9/wine-1.9.18.tar.bz2

Binary packages for various distributions will be available from:

  http://www.winehq.org/download

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

You can also get the current source directly from the git
repository. Check http://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 1.9.18 (total 26):

  22461  Microsoft Office 2000 Server Extensions Configuration Wizard 'CFGWIZ.EXE' needs msvcirt.dll?cout@@3Vostream_withassign@@A
  25105  Loading a 3d model with a test program fails
  25352  Videos play upside down in multiple games (Fable: The Lost Chapters, Mob Ties Tokyo, Star Wars Republic Commando, SAS: Secure Tomorrow, Hatsune Miku: Project DIVA)
  32936  SmartMusic 2012/2014 crashes on startup (Core Audio adapter 'PKEY_DeviceInterface_FriendlyName' property not supported)
  34056  Multiple applications have a problem with typing Chinese/Japanese with IME (Nabeta Jisho for Japanese, YY and Netease POPO for Chinese)
  35404  Spartan demo: no label on main menu icons
  35892  sdb2xml (.NET 2.0 app) crashes on unimplemented function apphelp.dll.SdbGetAppPatchDir
  39672  Folder names not clickable
  40106  ntdll:info regression
  40580  TASCAM US-16x08 soundcard controller crashes
  40686  win7's ehshell.exe needs KERNEL32.dll.EncodeSystemPointer
  40716  osu! - slightly low-pitched sound when using the ALSA sound driver
  40741  Wings of Vi - black screen on launch
  40953  Necropolis crashes at start (needs native xinput1_3.dll)
  40968  Multiple Games require dxgi_output_FindClosestMatchingMode implementation(Need For Speed: The Run, Magic Duels)
  40997  Fallout 4 needs DXGI_FORMAT_BC7_UNORM_SRGB
  41007  Regression in minimum sound latency / HelBuflen value
  41094  comctl32/treeview: TVS_FULLROWSELECT style does not work
  41105  Tropico 5 (DX11) starts with only a mouse pointer on a black screen
  41117  Insufficient check for sysinfo function breaks build on hurd and kfreebsd
  41118  We Happy Few (UE4) crashes with "D3DRHI->GetFactory()->CreateSwapChain(DXGIDevice,&SwapChainDesc,SwapChain.GetInitReference())"
  41165  MiTeC System Information X needs unimplemented function wlanapi.dll.WlanCloseHandle
  41182  Don't export QT_QPA_PLATFORM
  41189  No Man's Sky fails to start due to a regression in ntdll
  41228  Rendering is messed up on WineD3D8 for Windows
  41246  Office 2010 apps show "Configuring" dialog on first run when installed in new prefix

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

Changes since 1.9.17:

Akihiro Sagawa (6):
      po: Update Japanese translation.
      winex11: Return more reliable value from X11DRV_MsgWaitForMultipleObjects.
      winex11: Fix log message in process_events().
      winex11: Use proper return type for process_events().
      user32: Create and destroy the default IME window implicitly.
      imm32/tests: Add more default IME window tests with message-only window.

Alexandre Julliard (23):
      server: Add separate requests for opening and closing the clipboard.
      server: Add a separate request to set the clipboard viewer.
      user32: Get rid of the CLIPBOARDINFO structure.
      server: Add a request to return clipboard information.
      user32: Don't allow SetClipboardData if the clipboard is not open.
      user32: Don't disallow delayed rendering even when not the clipboard owner.
      winex11: Don't disallow replacing unowned formats.
      winex11: Don't try to free custom GDI formats at all.
      user32/tests: Add a few more clipboard tests.
      server: Cleanup clipboard information upon window destruction.
      user32/tests: Add some tests for inter-process clipboard viewer notifications.
      user32: Notify the clipboard viewer on close even if we are not the owner.
      server: Add some validation of clipboard window handles.
      server: Implement Add/RemoveClipboardFormatListener.
      user32: Fix InSendMessage return value.
      server: Notify all listeners when the contents of the clipboard have changed.
      server: Add a helper function to validate a window handle.
      server: Avoid some compiler warnings when EWOULDBLOCK == EAGAIN.
      rpcss: Make rpcss a proper service.
      ole32: Cope with receiving WM_RENDERALLFORMATS even when the clipboard is empty.
      server: Add a release_clipboard request, and notify the owner and viewer on release.
      server: Don't release the clipboard owner window when the owner thread terminates.
      user32/tests: Add some tests for synthesized clipboard formats.

Alistair Leslie-Hughes (1):
      inetcomm/tests: Add Attachment tests.

Andrew Eikum (6):
      mshtml: Don't crash creating a URI if we have no document.
      mmdevapi/tests: Fix failure on Vista.
      winhttp: Indicate that WinHttpCrackUrl should return string pointers.
      winhttp: Also pass hostname to jsproxy.
      qcap: Use HRESULT correctly.
      quartz: Implement IClassFactory::LockServer.

André Hentschel (1):
      ntdll: Bump Win 10 version to 14393.

Aric Stewart (3):
      hidclass.sys: Handle IRP_MN_REMOVE_DEVICE.
      include: Fix definition of DRIVER_EXTENSION.
      ntoskrnl.exe: Stub IoInvalidateDeviceRelations.

Austin English (3):
      ntdll: Forward DecodeSystemPointer/EncodeSystemPointer to DecodePointer/EncodePointer.
      apphelp: Add SdbGetAppPatchDir stub.
      msports: Add stub dll.

Bernhard Übelacker (1):
      mlang/tests: Test IMultiLanguage_GetCharsetInfo with malformed charsets.

Bruno Jesus (25):
      dinput: Return the correct error when CreateEffect is not supported.
      dinput: Dump the DIOBJECTDATAFORMAT flags.
      dinput: Get the controller type from the device instance for Linux drivers.
      ntdll: Use a helper to allocate threadpool workers.
      dinput: Dump the force feedback effect before upload.
      dinput: Be more precise when returning effect upload errors.
      dinput: Do not read/write past the struct for old DX versions.
      dinput: Restore effect ID on error due to kernel < 3.14 bug.
      dinput/tests: Use EnumEffects and test a supported effect.
      dinput: Dump the condition effect correctly for 2 array items.
      dinput: Fix calculation of too small periods for periodic effect.
      dinput: Fix infinite effect length handling.
      dinput: Simplify cartesian and fix polar direction calculations.
      dinput: Don't give up if we can't translate the effect envelope.
      msacm32: Add the 16-bit DLL version on acmGetVersion.
      dinput: Simplify condition effect translation.
      dinput: Fix saturation range on condition effects.
      msacm32: Handle invalid use of reserved parameter in acmStreamPrepareHeader.
      msacm32: Handle invalid source length in acmStreamPrepareHeader.
      msacm32: Use a helper to validate stream pointers.
      xinput1_3: Better trace all functions.
      xinput1_3: Better handle input parameters.
      xinput1_3: Stub XInputGetStateEx.
      xinput1_3: Implement XInputGetState using XInputGetStateEx.
      xinput1_3/tests: Cope with XInputGetStateEx not being present by name.

Colin Finck (2):
      include: Add a prototype for RpcBindingServerFromClient.
      rpcrt4: Add a test for RpcBindingServerFromClient (todo_wine).

Daniel Lehman (1):
      ntdll: Set Rip in for longjmp in RtlRestoreContext.

Dmitry Timoshkov (1):
      gdiplus: Reimplement metafile loading using gdi32 instead of IPicture.

Hans Leidekker (16):
      include: Add missing Web Services declarations.
      webservices: Flush the writer first in WsWriteXmlBuffer.
      webservices: Fix the condition to determine when to skip writing a namespace attribute.
      webservices: Add support for writing WS_STRING and WS_XML_STRING values.
      webservices: Ignore unimplemented struct options in the writer.
      webservices: Allow structures to be passed by value in WsWriteType.
      webservices: Add support for optional and nillable fields in the writer.
      webservices/tests: Add a test for WsWriteText.
      webservices: Store standard headers in an XML buffer.
      webservices: Implement WsAddCustomHeader.
      webservices: Implement WsRemoveCustomHeader.
      webservices: Add a stub implementation of WsAbortServiceProxy.
      webservices: Ignore unimplemented struct options in the reader.
      webservices: Implement WsReadEnvelopeStart.
      webservices: Implement WsReadEnvelopeEnd.
      webservices: Implement WsReadBody.

Henri Verbeet (30):
      wined3d: Send resource preloads through the command stream.
      wined3d: Use wined3d_format_calculate_pitch() in wined3d_surface_upload_data().
      ddraw: Rename "wineD3DPalette" to "wined3d_palette".
      ddraw: Rename "wineD3DVertexBuffer" to "wined3d_buffer".
      ddraw: Rename "wineD3DVertexDeclaration" to "wined3d_declaration".
      wined3d: Use wined3d_resource_map() in d3d_vertex_buffer7_Lock().
      ddraw: Use wined3d_resource_unmap() in d3d_vertex_buffer7_Unlock().
      d3d8: Use wined3d_resource_map() in d3d8_vertexbuffer_Lock().
      d3d8: Use wined3d_resource_unmap() in d3d8_vertexbuffer_Unlock().
      d3d8: Use wined3d_resource_map() in d3d8_indexbuffer_Lock().
      d3d8: Use wined3d_resource_unmap() in d3d8_indexbuffer_Unlock().
      d3d9: Use wined3d_resource_map() in d3d9_vertexbuffer_Lock().
      d3d9: Use wined3d_resource_unmap() in d3d9_vertexbuffer_Unlock().
      d3d9: Use wined3d_resource_map() in d3d9_indexbuffer_Lock().
      d3d9: Use wined3d_resource_unmap() in d3d9_indexbuffer_Unlock().
      d3d11: Use wined3d_resource_map() in d3d10_buffer_Map().
      d3d11: Use wined3d_resource_unmap() in d3d10_buffer_Unmap().
      wined3d: Use resource mapping functions in process_vertices_strided().
      ddraw: Use resource mapping functions in d3d_device7_DrawPrimitive().
      ddraw: Use resource mapping functions in d3d_device7_DrawIndexedPrimitive().
      ddraw: Use resource mapping functions in d3d_device7_DrawPrimitiveStrided().
      ddraw: Use resource mapping functions in d3d_device7_DrawIndexedPrimitiveStrided().
      ddraw: Use resource mapping functions in d3d_device7_DrawIndexedPrimitiveVB().
      d3d8: Use resource mapping functions in d3d8_device_DrawPrimitiveUP().
      d3d8: Use resource mapping functions in d3d8_device_DrawIndexedPrimitiveUP().
      d3d9: Use resource mapping functions in d3d9_device_DrawPrimitiveUP().
      d3d9: Use resource mapping functions in d3d9_device_DrawIndexedPrimitiveUP().
      wined3d: Send resource maps through the command stream.
      wined3d: Send resource unmaps through the command stream.
      wined3d: Sanitise resource map flags in wined3d_resource_map().

Hugh McMaster (6):
      reg/tests: Remove embedded BOM tests and add other tests for 'reg import'.
      regedit: Process registry input from stdin.
      reg/tests: Fix copy/paste error in 'import' tests.
      regedit: Remove two 'continue' statements from the end of two 'while' loops.
      regedit: Do not set s_eol to NULL when it will be re-assigned immediately.
      reg/tests: Exclude the null terminating character from MultiByteToWideChar conversion.

Huw D. M. Davies (26):
      d3dx10/tests: Dynamically load d3d10 and skip if it's not present.
      user32: Scale the edge thickness of check boxes drawn with DrawFrameControl().
      user32: Scale the check mark drawn with DrawFrameControl().
      user32: The offset between the button and the text is half the digit width.
      user32: Scale the button size with screen resolution.
      gdi32: Eliminate a masking operation by generating a larger colour table.
      gdi32: Handle the case of a partial source byte separately.
      gdi32: Unroll the start- and end-of-line loops.
      ucrtbase: Add __stdio_common_vswscanf().
      ucrtbase: Add __stdio_common_vfscanf().
      gdi32: Move the outer loop into separate functions for each direction.
      gdi32: Explicitly write out the rops for copy_rect_32().
      gdi32: Explicitly write out the rops for mask_rect_32().
      gdi32: Split out the various offset cases for copy_rect_1() into separate functions.
      gdi32: Explicitly write out the rops for copy_rect_1().
      uxtheme: Use 'ptr' instead of 'wstr' for [out] pointers.
      oleaut32/tests: Don't draw on the desktop window.
      oleaut32/tests: Remove test for broken NT 4.0 behaviour.
      crypt32/tests: Win 10 accepts carriage returns within a base64 four character block.
      comctl32/tests: Move the cursor off the parent window to avoid mouse messages.
      comctl32/tests: Restore the cursor position after moving it.
      user32: EC_USEFONTINFO behaviour depends on whether the font's charset is CJK or not.
      rpcrt4/tests: Remove an unnecessary and confusing message.
      rpcrt4/tests: Mark Win 8.1 behaviour of UuidCreateSequential() as broken.
      ole32: Mask out the flag bit.
      ole32/tests: Update tests to the new channel hook info structure.

Jacek Caban (25):
      wpc: Added stub wpc dll.
      wpc: Added basic tests.
      wpc: Register WindowsParentalControls class.
      wpc: Added class factory stub implementation.
      wpc: Added IWindowsParentalControls stub implementation.
      kernel32: Fixed handling LOCALE_NAME_USER_DEFAULT in GetLocaleInfoEx.
      user32: Introduced ThreadDetach driver entry point.
      winemac.drv: Added ThreadDetach entry point and use it instead of DllMain.
      rpcrt4/tests: Don't load GetUserNameEx dynamically.
      winex11.drv: Added ThreadDetach entry point and use it instead of DllMain.
      rbtree.h: Store parent entry pointer in each entry.
      rbtree.h: Use parent pointer instead of stack in wine_rb_postorder.
      rbtree.h: Rewrite wine_rb_remove to use parent pointers instead of stack.
      rbtree.h: Rewrite wine_rb_put to use parent pointers instead of stack.
      rbtree.h: Get rid of no longer needed wine_rb_stack.
      rbtree.h: Store compare function instead of wine_rb_functions in wine_rb_tree.
      ntoskrnl.exe: Use static initializer for device_drivers.
      winemenubuilder: Use static initalizer for mimeProgidTree and nativeMimeTypes.
      winedevice: Use static initializer for wine_drivers.
      winhttp: Don't perform buffer size tests for components that don't pass buffer in WinHttpCrackUrl.
      d3d10: Removed no loner needed wine_rb_init error handling.
      d3d11: Removed no longer needed wine_rb_init error handling.
      wined3d: Removed no longer needed wine_rb_init error handling.
      d3dcompiler_43: Removed no longer needed wine_rb_init error handling.
      rbtree.h: Pass compare function instead of wine_rb_functions to wine_rb_init.

Józef Kucia (21):
      d3d11: Compare semantic names ignoring case.
      d3d11/tests: Modify existing test to cover case-insensitive input elements matching.
      d3d10core/tests: Modify existing test to cover case-insensitive input elements matching.
      d3d8/tests: Skip test_reset() when device is initially lost.
      d3d8/tests: Add test for regression in IDirect3DDevice8_Reset().
      d3d9/tests: Restore display rotation in test_get_adapter_displaymode_ex().
      d3d9/tests: Add test for IDirect3DDevice9Ex_ResetEx().
      d3d9: Allow passing "mode" to IDirect3DDevice9Ex_ResetEx() iff "Windowed" is FALSE.
      d3d9: Forbid display mode and back buffer mismatch in IDirect3DDevice9Ex_ResetEx().
      dxgi/tests: Extend test for creating swapchain.
      dxgi/tests: Add test for switching display mode to inexact resolution.
      dxgi: Introduce helper functions for converting wined3d_display_mode.
      wined3d: Introduce wined3d_find_closest_matching_adapter_mode().
      dxgi: Implement dxgi_output_FindClosestMatchingMode().
      dxgi/tests: Add test for IDXGIOutput_FindClosestMatchingMode().
      wined3d: Optionally use closest matching mode in wined3d_swapchain_set_fullscreen().
      dxgi: Enable WINED3D_SWAPCHAIN_USE_CLOSEST_MATCHING_MODE.
      wined3d: Optionally use closest matching mode in wined3d_swapchain_resize_target().
      d3d8/tests: Prefer higher resolutions in test_reset().
      dxgi: Update swapchain fullscreen state when state change is successful.
      dxgi: Release target output when releasing swapchain.

Ken Thomases (2):
      winemac: Trace when a window's per-pixel-alpha setting changes.
      winemac: Set windows to transparent until they have content to draw, to reduce flicker.

Keno Fischer (2):
      ntdll: Tolerate null handle in DeregisterWait.
      kernel32/tests: Improve tests for pUnregisterWait(0).

Kimmo Myllyvirta (4):
      wined3d: Add support for WINED3DFMT_BC7_UNORM format.
      wined3d: Add support for WINED3DFMT_BC6H_UF16/SF16 formats.
      d3d11: Add tests for WINED3DFMT_BC7_UNORM format.
      d3d11: Add tests for WINED3DFMT_BC6H_UF16/SF16 formats.

Marcus Meissner (1):
      winemenubuilder: Avoid double free (Coverity).

Max Qian (8):
      api-ms-win-core-job-l1-1-0: Add dll.
      api-ms-win-core-job-l2-1-0: Add dll.
      api-ms-win-core-namespace-l1-1-0: Add dll.
      api-ms-win-core-normalization-l1-1-0: Add dll.
      api-ms-win-core-string-obsolete-l1-1-0: Add dll.
      api-ms-win-core-toolhelp-l1-1-0: Add dll.
      api-ms-win-eventlog-legacy-l1-1-0: Add dll.
      api-ms-win-shell-shellfolders-l1-1-0: Add dll.

Michael Gilbert (1):
      ntdll: Add missing stdint.h include for kfreebsd architectures.

Michael Müller (2):
      d3d11: Fix calculation of array size for 1D textures.
      d3d11: Correctly print unhandled bind flags in wined3d_usage_from_d3d11.

Michael Stefaniuc (2):
      dmusic: Avoid using the COM method implementations directly.
      dmime: Avoid using the COM method implementations directly.

Nikolay Sivov (29):
      comctl32/treeview: Fill full row for TVS_FULLROWSELECT style.
      include: Added some of newer Common Controls definitions.
      dinput: Explicitly check for -1 as open() failure code.
      hidclass: Fix handle leak on error path (Coverity).
      oleaut32: Keep most of typeinfo attributes in TYPEATTR structure.
      include: Fix facility id for d3d10 HRESULTs.
      mscoree: Return pointer to interface, not implementation.
      oleaut32: Support querying for ITypeComp from ITypeInfo.
      oleaut32: Fix AddFuncDesc() to ignore scodes array length when NULL array pointer is passed.
      oleaut32: Added PSTypeComp to DllGetClassObject.
      oleaut32: Implement ITypeComp::Bind() proxy/stub.
      oleaut32: Implement IClassFactory::QueryInterface() for StdFont object.
      urlmon: Added proxy/stubs for IBindHost.
      dwrite: Fail stream creation on file mapping failure.
      dwrite/tests: Remove unnecessary font face creation.
      shell32: Use interface pointer instead of implementation one.
      winegstreamer: Remove some casts that are not needed.
      msdaps: Added AddRefAccessor() proxy/stub.
      oleaut32: Added proxy/stub for BindType.
      include: Updated CAL_* info defines.
      kernel32: Map from CAL_* constants to LOCALE_*.
      amstream: Remove some casts.
      msctf/tests: Return interface pointers instead of pointers to impl structure.
      netcfgx: Return pointer to interface.
      msimtf: Return interface pointers.
      dxgi: Use texture pointer instead of resource pointer for DXGI surface.
      d3dx10/tests: Basic tests for async loaders.
      wined3d: Add texture flag to indicate GetDC() capability.
      quartz: Remove some interface pointer casts.

Patrick Rudolph (1):
      wined3d: Handle WINED3DFMT_FLAG_BROKEN_PITCH in wined3d_format_calculate_size().

Piotr Caban (8):
      ntdll: Remove no longer accessible TEB frames in RtlRestoreContext.
      include: Add msvcrt/fpieee.h header.
      msvcrt: Add _fpieee_flt stub.
      msvcrt: Support fdiv m64fp in i386 _fpieee_flt.
      msvcr90: Add _fpieee_flt tests.
      winemac.drv: Fix setting Cocoa focus when window is shown by other thread.
      ntdll: Don't incorrectly overwrite orig_context in call_stack_handlers.
      user32: Fix DefWindowProc behavior on WM_NCRBUTTONDOWN message.

Ruslan Kabatsayev (1):
      wined3d: Initialise p_wglGetPixelFormat when USE_WIN32_OPENGL is defined.

Sebastian Lackner (29):
      ws2_32/tests: Add basic tests for async messages.
      ws2_32: Do not spawn a separate thread for each async task.
      ntdll/tests: Use longer waits to reduce risk of random failures on the testbot.
      ntdll: Allow to release threadpool objects while waiting for group.
      ntdll/tests: Add tests for releasing threadpool objects during TpReleaseCleanupGroupMembers.
      ntdll: Call group cancel callback with the correct arguments.
      ntdll: Group cancel callbacks should be executed after waiting for pending callbacks.
      ntdll: Do not call group cancel callback for finished simple callbacks.
      services: Remove synchronization for CloseThreadpoolCleanupGroupMembers.
      shell32: Use the correct memory allocation function in RecycleBin_GetDisplayNameOf.
      ntoskrnl.exe: Implement ZwLoadDriver and ZwUnloadDriver based on services API.
      winedevice: Add support for loading/unloading drivers asynchronously.
      kernel32/tests: Add a missing linebreak to an ok() message.
      winedevice: Avoid memory leak when driver cannot be unloaded.
      shell32: Remove some unused static inline functions.
      shell32: Remove __SHFreeAndNil macro.
      services/tests: Add test for passing arguments to a service.
      advapi32: Unify service startup and control handling.
      services: Do not create environment block before first service startup.
      services: Add a separate winedevice service for each kernel driver.
      services: Load kernel drivers with same load order group into a single process.
      webservices: Fix handling of duplicate headers in WsAddCustomHeader.
      webservices: Fix handling of duplicate headers in WsRemoveCustomHeader.
      webservices: Fix invalid memory access in remove_header.
      wintrust/tests: Fix test for pfnAddSgnr2Chain.
      schedsvc: Avoid deadlock when scheduler service starts rpcss.
      ntoskrnl.exe: Use the same timeout for service startup like in other wine modules.
      ntdll: Simplify RtlFormatCurrentUserKeyPath using GetCurrentThreadEffectiveToken.
      user32: Do not create IME window for HWND_MESSAGE windows.

Stefan Dösinger (8):
      ddraw/tests: Move IDirect3DViewport::TransformVertices tests to ddraw1.c.
      ddraw: Copy extra vertex data in viewport::TransformVertices.
      ddraw: Fix offscreen flag handling in TransformVertices.
      ddraw: Validate the input data in TransformVertices.
      ddraw/tests: Extend TransformVertices invalid data tests.
      ddraw/tests: Make the vec parameter of compare_vec4 const.
      ddraw/tests: Test matrices in TransformVertices.
      ddraw/tests: Port test_transform_vertices to ddraw2 and ddraw4.

Vincent Povirk (1):
      gdiplus: Copy remap tables when cloning an ImageAttributes.

--
Alexandre Julliard
julliard@winehq.org
