The Wine development release 3.15 is now available.
What's new in this release (see below for details): - Support for DPI scaling on Android. - HID device support in Raw Input. - Many more new icons in Shell32. - WinHTTP converted to use Windows Sockets. - Syntax fixes in the command line interpreter. - Various bug fixes.
The source is available from the following locations:
https://dl.winehq.org/wine/source/3.x/wine-3.15.tar.xz http://mirrors.ibiblio.org/wine/source/3.x/wine-3.15.tar.xz
Binary packages for various distributions will be available from:
https://www.winehq.org/download
You will find documentation on https://www.winehq.org/documentation
You can also get the current source directly from the git repository. Check https://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 3.15 (total 44):
5610 psexec from pstools doesn't work (needs mpr.WNetAddConnection2W implementation) 19182 Allow to completely disable MIME-type and application integration 22333 Total Commander: Application freezes when the current directory field is editable, and you right-click a regular file and click Properties 28037 cmd: sharing violation when using redirections 30185 SuperPower 2 demo crashes on launch 30487 Add icons for 'My Network Places', 'My favorites' 31744 Multiple GFWL (Games For Windows Live) 3.5 games crash on startup due to incomplete Windows LiveID install (Street Fighter X Tekken) 36884 Drakensang: The Dark Eye demo crashes on startup (needs d3dx9_36.dll.D3DXCreateTeapot implementation) 37525 Bionic Commando: No shadows mapping 37636 u-center from u-blox crashes when attempting to add a log to screen 37834 RtlSetCurrentDirectory_U prepends "UNC" for network paths; the resulting path is invalid 38565 Total Commander fails to redraw long list with Source: Filename setting 39754 Multisample resolve is not implemented for typeless resources (EVE Online, Hearthstone, Just Cause 2, Outcast Second Contact, VRChat) 39906 ODB++ Viewer fails to install due to improper bat file handling (quoting or delimiting problem) 41376 Firefox Ver 49 will not run on Wine 1.8 41652 Uplay cannot connect/login to Server 41914 incorrect execute path within nested if (else) statement 42870 CurrentBuild registry value is missing 42998 HeidiSQL requires IDispenserManager implementation. 43036 SetNamedPipeHandleState returns ERROR_ACCESS_DENIED when setting PIPE_NOWAIT 43911 Invisible menus in Rise of Nations Extended Edition 44356 Neverwinter: some ingame objects don't render properly 44369 cmd's %0 path variables (e.g. %~dp0) wrong inside subroutine call 44653 Everquest Titanium (Project 1999): Significant performance regression from 3.1 to 3.2 44879 Multiple games crash on unimplemented function api-ms-win-core-timezone-l1-1-0.dll.GetDynamicTimeZoneInformationEffectiveYears (Universe Sandbox 2, Phoenix Point, Trailmakers) 45084 winebus blocks startup for several seconds when HID devices are detected via udev 45317 updating wine mono does not change version in uninstaller.exe 45365 Multiple .NET XNA 3.x/4.x games using Microsoft.Xna.Framework.Media classes crash due to IWMPCore3::newMedia stub 45366 A.R.E.S. Extinction Agenda 1.x (.NET 2.0, XNA 3.1 game) crashes during intro ('quartz' BasicAudio_put_Volume must return E_NOTIMPL if audio renderer filter not present) 45468 Phase Shift: tails on sustain notes not visible unless GLSL is disabled 45475 XM6 Type G: Can't type a specific symbol key on Japanese keyboard. 45478 World of Warcraft: graphical artifacts since 8.0 (BfA) 45506 Waves Central: Plugins don't install anymore 45568 League of Legends 8.12+ fails to start a game (anticheat engine, validation of loaded DLLs) 45646 chromium 64-bit sandbox >=win8 needs NtCreateLowBoxToken 45654 CreateNamedPipeW fails when pipe name starts with \??\ 45655 Acronis Storage Filter Management Driver 'fltsrv.sys' crashes on unimplemented function 'ntoskrnl.exe.DbgQueryDebugFilterState' in trace mode 45660 SuperPower 2 demo fails to install 45663 Multiple 64-bit MSI installers fail with 'err:msiexec:custom_action_server Failed to create custom action server pipe' (MS .NET Framework 4.x, Python 2.7, PSIM 11) 45671 Wine build: can't write value of type 12 yet 45681 SDL2 Game Controller API not working anymore with Wine 3.14 45689 Quik 7: Combobox is not populated properly 45694 WinHttpOpenRequest: unsafe characters are not escaped 45726 Firefox 61.x crashes on unimplemented function KERNEL32.dll.GetApplicationRestartSettings
----------------------------------------------------------------
Changes since 3.14:
Alex Henrie (107): shell32: Add Internet icon. shell32: Add network icon. shell32: Switch the "My Network Places" icon to the network icon. shell32: Add "Computers Near Me" icon. shell32: Add recent documents icon. shell32: Add settings icon. shell32: Remove alpha channel from 4-bit and 8-bit Internet icons. shell32: Remove alpha channel from 4-bit and 8-bit network icons. shell32: Add search icon. shell32: Add help icon. shell32: Add run icon. shell32: Add sleep icon. shell32: Add eject icon. shell32: Add shutdown icon. shell32: Add "trash full" icon. shell32: Add modem folder icon. shell32: Add application folder icon. shell32: Add printer folder icon. shell32: Add font folder icon. shell32: Scale SVG properly to create 48x48 sleep icons. shell32: Scale SVG properly to create 48x48 shutdown icons. shell32: Add start menu icon. shell32: Add optical disc icon. shell32: Add music CD icon. shell32: Add tree icon. shell32: Add remote folder icon. shell32: Add favorites icon. shell32: Add logoff icon. shell32: Add folder search icon. shell32: Add update icon. shell32: Add rights icon. shell32: Add shutdown confirmation icon. shell32: Add blank icons. shell32: Add unknown drive icon. shell32: Add files icon. shell32: Add file search icon. shell32: Add system search icon. shell32: Add options icon. shell32: Add XP printer folder icon. shell32: Add "add printer" icon. shell32: Add remote printer icon. shell32: Add "print to file" icon. shell32: Add "trash folder" icon. shell32: Add "trash mixed" icon. shell32: Add file overwrite icon. shell32: Add folder overwrite icon. shell32: Add rename icon. shell32: Add folder rename icon. shell32: Add install icon. shell32: Add config file icon. shell32: Add text file icon. shell32: Add batch file icon. shell32: Add library file icon. shell32: Add system font icon. shell32: Add TrueType font icon. shell32: Add PostScript font icon. shell32: Add second run icon. shell32: Add copy icon. shell32: Add backup icon. shell32: Add disk check icon. shell32: Add defragment icon. shell32: Add treeview icon. shell32: Add network folder icon. shell32: Add checklist folder icon. shell32: Add network connections icon. shell32: Add web folder icons. shell32: Add visual settings icon. shell32: Add remote connection icon. shell32: Add window-on-monitor and desktop-on-monitor icons. shell32: Add demo window icons. shell32: Add one-click-open and two-click-open icons. shell32: Add remaining recycle bin icons. shell32: Rename icon 48 from "rights" to "security". shell32: Add users icon and passwords icon. shell32: Add fax machine icons. shell32: Add "restricted" icon. shell32: Add remaining folder icons. shell32: Add "power off" icon. shell32: Rename icon 12 from "cdrom" to "optical drive". shell32: Add remaining optical disc icons. shell32: Add documents icon. shell32: Add video file icon. shell32: Add audio file icon. shell32: Rename floppy.svg to disk_drive.svg. shell32: Add card reader icon. shell32: Add zip drive icon. shell32: Add download icons. shell32: Add removable disk icons. shell32: Add MSN icon. shell32: Add delete icon. shell32: Add move icon. shell32: Add upload icon. shell32: Add print icon. shell32: Add play icon. shell32: Add image file icon. shell32: Add multimedia file icon. shell32: Add users icon. shell32: Add remaining Internet icons. shell32: Add remaining printer icons. shell32: Add remaining help icons. shell32: Add XP install icon. shell32: Add remaining search icons. shell32: Add Jaz drive icon. shell32: Rename icon 137 from "options" to "control panel XP". shell32: Add remaining control panel icons. shell32: Add remaining small icons. schedsvc/tests: Check the entire entry list to find the new job.
Alexandre Julliard (36): shell32: Move image resources to a resources subdirectory. user32/tests: Add tests for desktop size and DPI scaling. user32/tests: Add tests for window rectangles and DPI scaling. gdi32: Fall back to GetSystemMetrics() for the screen size. gdi32: Fall back to GetSystemMetrics() for the virtual desktop size. winex11: Use fallback implementation for screen dimensions in GetDeviceCaps(). wineandroid: Use fallback implementation for screen dimensions in GetDeviceCaps(). wineandroid: Remove no longer needed GetDeviceCaps() driver entry point. wineandroid: Simplify the EnumDisplayMonitors driver entry point. winex11: Simplify the EnumDisplayMonitors driver entry point. winex11: Use the stored coordinates to convert back from X11 to window rectangle. wineandroid: Handle sizing and mouse events in physical coordinates. wineandroid: Add support for scaling window contents based on DPI. user32: Scale initial window dimensions in CreateWindow() based on DPI awareness. user32: Scale window dimensions in SetWindowPos() based on DPI awareness. user32: Scale window dimensions in DeferWindowPos() based on DPI awareness. user32: Scale monitor rectangles based on DPI awareness. shell32: Fix some resources ids. user32: Scale coordinates in WIN_GetRectangles() based on DPI awareness. user32: Scale coordinates in MapWindowPoints() based on DPI awareness. user32: Scale coordinates in Get/SetWindowPlacement() based on DPI awareness. server: Map region to the window DPI in redraw_region(). user32: Switch to the window DPI awareness for non-client painting. user32: Switch to the window DPI awareness in SetParent(). user32: Switch to the window DPI awareness in ShowWindow(). user32: Switch to the window DPI awareness to process WM_GETMINMAXINFO. user32: Switch to the window DPI awareness in update_window_state(). server: Scale coordinates in get_window_children_from_point based on DPI awareness. user32: Scale coordinates in Get/SetCursorPos() based on DPI awareness. user32: Scale coordinates in ClipCursor() based on DPI awareness. user32: Support the MOUSEEVENTF_VIRTUALDESK flag in SendInput(). user32: Map mouse events to physical coordinates in SendInput. user32: Process hardware messages in physical coordinates. server: Use screen coordinates in the update_window_zorder request. user32: Scale dialog base units based on DPI awareness. user32: Switch to the window DPI awareness for MDI scrolling.
Alistair Leslie-Hughes (11): wininet: Always copy the password even if blank. odbccp32: Implement SQLValidDSN/W. regedit: Don't expand items on initial tree creation. dinput8: Share source with dinput. odbccp32: Fake success from SQLWriteDSNToIni/W. include: Add IWbemUnsecuredApartment interfaces. dpnet: Implement IDirectPlay8Peer SetSPCaps. include: Add sal.h. ntoskrnl.exe: Add DbgQueryDebugFilterState stub. dpnet: Implement IDirectPlay8Client SetSPCaps. comsvcs: Add DispenserManager stubbed interface.
Andrew Eikum (1): winex11.drv: Fix indentation for focus_out.
Charles Davis (1): ntdll: When an exception happens in DllMain(), print the code.
Daniel Lehman (6): msvcrt: Don't read past end of string in _strncoll/_wcsncoll. msvcrt/tests: Add tests for _strncoll/_wcsncoll. msvcrt: Don't read past end of string in _strnicoll/_wcsnicoll. msvcrt/tests: Add tests for _strnicoll/_wcsnicoll. include/msvcrt: Include calling convention with function pointers. msxml3/tests: Add test for treating namespaces as attributes.
Dmitry Timoshkov (8): kernel32: Set %ALLUSERSPROFILE% variable to the same value as %ProgramData%. shell32: Use Public instead of AllUsersProfile in the registry. user32: Create a mask from alpha channel when loading a 32 bpp icon. oleaut32/tests: Fix the IPicture::Render() usage. oleaut32: Move rendering a bitmap to a separate helper. oleaut32: Use common helper for masked bitmaps to render an icon. schedsvc: In case it's an old Wine prefix create c:\windows\tasks automatically. kerberos: Avoid needless conversions between SYSTEMTIME and FILETIME.
Fabian Maurer (6): user32/combo: Properly set dropdown height. comctl32/combo: Implement logic for setting and getting dropdown height. comctl32/listview: Use mask to disable change notifications. comctl32/listview: Avoid duplicate LVN_ENDLABELEDIT notifications on focus change. comctl32/tests: Add a test for base class names. ntdll/actctx: Don't stop looking for manifest if dll without manifest is found.
François Gouget (11): msvfw32/tests: Make gdf_driver_proc() static. dbghelp/tests: Make stack_walk_thread() static. winebus.sys: Avoid calling strdup(). wsdapi/tests: Avoid calls to malloc() and free(). winevulkan: Spelling fix in a perl comment. xcopy: Spelling fix in a comment. winedump: Spelling fix in a comment. ntdll/tests: Spelling fixes in comments. include: Fix the name of a Wininet error code. schedsvc: Fix a typo in a parameter name. dmusic: Make midi_port_create() static.
Gabriel Ivăncescu (7): comctl32/listbox: Fix scrolling for multi-column listboxes. user32/listbox: Fix scrolling for multi-column listboxes. comctl32/edit: Move common calls outside the blocks. user32/edit: Move common calls outside the blocks. ntdll: Properly set the current directory for UNC paths. shell32/autocomplete: Don't crash when there's another AutoComplete object on the same edit control. shell32/tests: Add a test for binding a different AutoComplete object to the same edit control.
Gerald Pfeifer (1): wbemprox: Use WS_AF_INET instead of AF_INET in get_ipsubnet.
Gijs Vermeulen (1): ntdll/tests: Add Nt[WaitFor|Release]KeyedEvent test with NULL handle.
Guillaume Charifi (2): iphlpapi: Implement GetUdp6Table(). iphlpapi/tests: Add tests for GetUdp6Table().
Hans Leidekker (4): winhttp: Escape untrusted URL paths. winhttp: Use winsock sockets. winhttp: Avoid double free on connection error. winhttp: Fix macOS build.
Henri Verbeet (3): d3d10core/tests: Run the tests in parallel. dxgi/tests: Run the tests in parallel. wined3d: Make the adapter responsible for creating GL contexts.
Jacek Caban (34): winegcc: Support distros using plain lib for 32-bit libraries in get_lib_dir. ntdll: Allow FileAccessInformation to be queried on files without fds. kernel32: Use proper access flags in CreatePipe. kernel32: Always create file with FILE_READ_ATTRIBUTES access in CreateFile. server: Require FILE_READ_ATTRIBUTES access in get_named_pipe_info. widl: Split write_value for string and int values. widl: Allow defaultvalue() attribute on any pointer type. mshtml: Store style property flags in an array and use it in set_nsstyle_attr and get_nsstyle_attr_var. mshtml: Clean up set_style_property_var prototype. mshtml: Refactor setting style property value implementation. mshtml: Rename get_style_attr to get_style_property. mshtml: Use get_style_property instead of get_nsstyle_attr in HTMLStyle object. mshtml: Introduce get_style_property_var helper and use it instead of get_nsstyle_attr_var in HTMLStyle implementation. mshtml: Get rid of no longer needed argument in get_nsstyle_* implementation. mshtml: Pass style id instead of flags to var_to_styleval. mshtml: Support using array to check for allowed values and use it in IHTMLStyle::put_fontStyle implementation. mshtml: Use generic value checks for IHTMLStyle::put_fontVariant implementation. mshtml: Use generic value checks for IHTMLStyle::put_fontWeight implementation. mshtml: Use generic value checks for IHTMLStyle::put_backgroundRepeat implementation. mshtml: Use generic value checks for IHTMLStyle::put_textDecoration implementation. mshtml: Use generic value checks for IHTMLStyle::put_border*Style implementation. mshtml: Use generic value checks for IHTMLStyle::put_overflow implementation. mshtml/tests: Run style tests in IE9 mode. mshtml: Move value fixups to set_style_property. mshtml: Skip set_style_property fixups in IE9+ mode. mshtml: Skip var_to_nsstyle fixups in IE9+ mode. mshtml: Introduce get_current_style_property helper. mshtml: Introduce get_current_style_property_var helper. mshtml: Skip fixups in get_nsstyle_property in IE9+ mode. mshtml: Skip fixups in get_nsstyle_property_var in IE9+ mode. mshtml.idl: Add IHTMLCSSStyleDeclaration2 declaration. mshtml: Added IHTMLCSSStyleDeclaration stub implementation. mshtml: Implement known IHTMLCSSStyleDeclaration VARIANT properties. mshtml: Implement known IHTMLCSSStyleDeclaration BSTR properties.
Jactry Zeng (2): riched20: Initialize style_list before ME_MakeFirstParagraph(). riched20: Call ITextHost_TxGetCharFormat() for setting default charformat.
Jason Edmeades (5): cmd: Fix shortpath handling in for loops. cmd: Handle single line 'if' as nested if or with redirects. cmd: for /f fails to launch quoted program plus args. cmd: Fix 'if exist' with a directory\ as a parameter. cmd: Correct handling of %~0 for batch call.
Józef Kucia (33): winevulkan: Properly retrieve queues that were created with non-zero flags. wined3d: Allow multisample resolve for typeless resources. d3d11/tests: Add a test for CopySubresourceRegion() with 1D textures. d3d10core/tests: Add a test for CopySubresourceRegion() with 1D textures. wined3d: Simplify shader_arb_destroy(). wined3d: Pass context to find_arb_pshader(). wined3d: Get D3D and GL info from context in create_dummy_textures(). wined3d: Get gl_info from context in query_issue() functions. wined3d: Use local gl_info variable in wined3d_get_device_caps(). wined3d: Get rid of unused gl_info parameters. wined3d: Pass wined3d_adapter to wined3d_get_format(). wined3d: Store max point size in d3d_info. wined3d: Add max_rt_count field to d3d_info. wined3d: Pass context to wined3d_texture_set_compatible_renderbuffer(). wined3d: Avoid accessing gl_info in vertexdeclaration_init(). dxgi: Choose exact formats for D3D12 swapchain fallback formats. winevulkan: Trace properties for created devices. dxgi: Move D3D12 helper functions closer to the top of the file. dxgi: Factor out d3d12_swapchain_destroy_buffers(). dxgi: Factor out d3d12_swapchain_create_vulkan_swapchain(). dxgi: Implement d3d12_swapchain_ResizeBuffers(). dxgi/tests: Run test_swapchain_resize() on D3D12. dxgi: Rename remaining "This" variables. winevulkan: Wrap VkCommandPools. winevulkan: Fix potential memory leaks when a command pool is destroyed. vulkan-1/tests: Add a test for destroying a command pool. winevulkan: Free all command buffers when vkAllocateCommandBuffers() fails. dxgi: Add support for DXGI_FORMAT_R10G10B10A2_UNORM D3D12 swapchains. d3d12/tests: Add test for DXGI_FORMAT_R10G10B10A2_UNORM swapchain. dxgi: Return actual swap effect for D3D11 swapchains. wined3d: Move formats from gl_info to wined3d_adapter. wined3d: Use get_format_internal() in apply_format_fixups(). wined3d: Use get_format_internal() in init_format_filter_info().
Ken Thomases (1): winemac: Use fallback implementation for screen dimensions in GetDeviceCaps().
Lauri Kenttä (1): po: Update Finnish translation.
Louis Lenders (1): kernel32: Add stub for GetApplicationRestartSettings.
Marcus Meissner (1): ntdll: Fix buffer size to MultiByteToWideChar.
Michael Stefaniuc (12): dmusic: Add a stub midi out port. dmusic: Implement IDirectMusicPort_GetLatencyClock() for the midi port. dmusic: Support midi in ports too. dmusic: Add a stub IDirectMusicThru to the midi ports. msi: Use the ARRAY_SIZE() macro. dmusic: Fake success in two stub midi port methods. cmd: Use the ARRAY_SIZE() macro. dxdiag: Use the ARRAY_SIZE() macro. explorer: Use the ARRAY_SIZE() macro. mshtml: Use the ARRAY_SIZE() macro. vcomp: Use the ARRAY_SIZE() macro. oleaut32: Use the ARRAY_SIZE() macro.
Nikolay Sivov (21): wmp: Improve URL property handling. ole32: Try 'dll' extension when looking for registration-free modules. ole32: Rename a helper to reflect its purpose better. wmp: Implement GetClassInfo(). d2d1/tests: Add some tests for ID2D1Bitmap1::GetSurface(). d2d1/tests: Add some tests for context target handling. user32/listbox: Fix multicolumn navigation on VK_RIGHT. comctl32/listbox: Fix multicolumn navigation on VK_RIGHT. d2d1/tests: Check implicit target bitmap options. comctl32/tests: Fix test failures on XP. user32: When registering redirected class use correct base class name. d2d1: Implement matrix inversion functions. include: Add IOpcFactory and related definitions. opcservices: Add a stub IOpcFactory. shlwapi/tests: Add a simple QI test for file streams. shlwapi: Call actual Write() method for destination streams. shlwapi: Use wrappers to call stream methods internally. shlwapi: Fix some trace messages. include: Add IOpcPackage definition. opcservices: Add IOpcPackage stub. opcservices: Add IOpcPartSet stub.
Piotr Caban (1): jsproxy: Fix parameters validation in InternetInitializeAutoProxyDll.
Rob Walker (1): winex11: Improve ChangeDisplaySettingsEx failed mode message.
Thomas Faller (1): wine.inf: Set CurrentBuild always to the same value as CurrentBuildNumber.
Zebediah Figura (23): hid/tests: Use DIGCF_PRESENT. xinput: Use DIGCF_PRESENT. hidclass.sys: Update the interface state when a device is added or removed. winedbg/gdbproxy: Silence some noisy debug messages. setupapi: Only delete unregistered device interfaces when deleting a device. msi: Don't assume that WoW64 redirection is enabled in custom_start_server(). include: Fix definition of RAWHID. user32: Move rawinput functions to rawinput.c. user32: Trace command in hexadecimal in GetRawDeviceInfo(). user32: Return HID devices in GetRawInputDeviceList(). user32: Return RIDI_DEVICEINFO for HID devices from GetRawInputDeviceInfo(). user32: Return RIDI_DEVICENAME for HID devices from GetRawInputDeviceInfo(). ddraw: Avoid leaking references to the wined3d device. ntoskrnl.exe: Broadcast WM_DEVICECHANGE when a PnP device is added or removed. ntdll: Also accept \? as a UNC or device path in RtlDetermineDosPathNameType_U(). ntdll/tests: Add more tests for RtlGetFullPathName_U(). ntdll/tests: Add more tests for RtlDosPathNameToNtPathName_U(). ntdll: Also accept ??\ as a global namespace prefix in RtlDosPathNameToNtPathName_U(). quartz/tests: Add some tests for interfaces delegated by the filter graph. quartz: Return E_NOTIMPL from IBasicAudio methods if no filter supporting IBasicAudio is attached. ntoskrnl.exe/tests: Add basic tests for ZwLoadDriver()/ZwUnloadDriver(). winedevice: Make driver (un)loading synchronous. winedevice: Reimplement (un)loading drivers on top of ZwLoadDriver()/ZwUnloadDriver().
Zhiyi Zhang (7): crypt32/tests: Add revocation flags tests for CertGetCertificateChain(). crypt32: Properly check root certificate in CERT_CHAIN_REVOCATION_CHECK_CHAIN. winhttp: Add support for WINHTTP_ENABLE_SSL_REVOCATION. comctl32/tests: Remove pager skip check. comctl32/tests: Add WM_NOTIFYFORMAT tests for pager. comctl32/pager: Support WM_NOTIFYFORMAT message. comctl32/tests: Fix a memory leak.
Zixing Liu (1): po: Update Simplified Chinese translation.
-- Alexandre Julliard julliard@winehq.org