Wine Announcement

The Wine development release 7.14 is now available.

What's new in this release:
  - More progress on syscall interface for USER32.
  - Improved font fallbacks in DirectWrite.
  - Some fixes for socket shutdowns.
  - Various bug fixes.

The source is available at:

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 7.14 (total 19):

  36711  Sid Meier's Civilization IV crashes while loading saved game ( complete, Colonization, Warlords, Beyond the Sword)('winetricks -q msxml3' is a workaround)
  39987  Multiple applications need 'shell32.SHOpenFolderAndSelectItems' implementation to open explorer window with specified items in particular folder selected (Firefox 42.0, Windows 95 Electron app)
  50624  Waves Central 12.0.5 fails to start: __call__ pywintypes.error: (1336, 'AddAccesAllowedAce', 'Invalid ACL.')
  51616  Unravel Two crashes on intro
  52594  Rust applications using the tokio library abort with "failed to park" error
  52673  Missing IShellItemImageFactory implementation for ShellItem.
  52773  wine prefix is not to ready to use after running wineboot
  52815  Adobe Digital Editions 2.0.1 hangs during install
  53058  Incorrect socket reconnect behavior for DGRAM sockets
  53105  Certain specific dialogue boxes are permanently fullscreen
  53106  Icons not rendering properly in the window titlebar
  53189  Cheat Engine crashes when opening a drop-down menu
  53289  Unimplemented richedit ITextDocument::Undo and ITextDocument::Redo causes extraneous undo entries
  53307  World of Tanks broken with wined3d's Vulkan renderer
  53310  Roblox Fails With HttpSendRequest
  53348  Can't input anything with CJK input method (fcitx).
  53349  Sigma Data Center fails to sync with Sigma Cloud
  53372  Total War Shogun 2 spews RtlLeaveCriticalSection() section is not acquired errors in 3D scenes.
  53411  Wrong font is used in NtUserDrawCaptionTemp()


Changes since 7.13:

Alexandre Julliard (8):
      README: Mention Gitlab.
      winebuild: Add GNU stack note also to the undefined symbols file.
      gitlab: Initial version of the Gitlab CI scripts.
      gitlab: Add CI script to create a release.
      makefiles: List all headers in the makefile.
      makefiles: Avoid adding the same source multiple times.
      makefiles: Work directly with names in make_makefiles.
      makefiles: Look for source files in the makefile before trying to open them.

Alistair Leslie-Hughes (4):
      ntdll: Check return parameter before use.
      ntdll: RtlFirstFreeAce only return FALSE on error.
      ntdll/tests: Add RtlFirstFreeAce tests.
      xactengine3_7: Remove entry after FAudio Destroyed call.

Arkadiusz Hiler (7):
      dinput: Set correct object names for dials and sliders.
      dinput: Get rid of unused parameter in match_device_object.
      dinput/tests: Use helper for checking device object instances.
      dinput: Enumerate user format object forwards.
      dinput: Use GUID_Slider type for dials.
      dinput/tests: Assert that we can't get info about the third slider with c_dfDIJoystick2.
      dinput/tests: Test GetObjectInfo() with three sliders and a proper format.

Brendan McGrath (2):
      qedit/tests: Test adding a reference to the sample from ISampleGrabberCB::SampleCB().
      qedit: Do not force the sample to be freed in SampleGrabber_callback().

Brendan Shanks (8):
      wow64: Respect the large address aware flag.
      ntdll: Allow changes to DEP flags under Wow64.
      wow64: Allow setting NtSetInformationProcess(ProcessExecuteFlags).
      ntdll/tests: Add tests for the address limit of NtQueryVirtualMemory(MemoryBasicInformation).
      wow64: Return error from NtQueryVirtualMemory(MemoryBasicInformation) for a too-large address.
      winedbg: Implement GDB qGetTIBAddr query.
      winedbg: Prefer thread name from GetThreadDescription() in 'info thread' listing.
      winedbg: Prefer thread name from GetThreadDescription() in GDB proxy mode.

Claire Girka (5):
      setupapi: Add support for SPDRP_BASE_CONTAINERID.
      ntoskrnl/tests: Add test for getting SPDRP_BASE_CONTAINERID from PnP driver.
      hidclass: Improve error handling in get_device_id.
      hidclass: Expose ContainerID from underlying driver.
      ntoskrnl: Set device ContainerID from driver.

Connor McAdams (14):
      include: Define UI Automation Property GUIDs.
      uiautomationcore: Implement UiaLookupId for AutomationIdentifierType_Property GUIDs.
      uiautomationcore: Add stub UiaGetPropertyValue implementation.
      uiautomationcore: Implement UiaNodeFromProvider.
      uiautomationcore: Implement UiaNodeRelease.
      include: Add CUIAutomationRegistrar definition.
      uiautomationcore/tests: Add basic UIA property tests for UiaGetPropertyValue.
      uiautomationcore: Implement UiaGetPropertyValue.
      uiautomationcore: Add support for UIAutomationType_Int properties.
      uiautomationcore: Add support for UIAutomationType_Element properties.
      uiautomationcore: Add support for ProviderOptions_UseComThreading flag.
      uiautomationcore: Add support for UIAutomationType_Double properties.
      uiautomationcore: Add support for UIAutomationType_Bool properties.
      uiautomationcore: Add support for UIAutomationType_String properties.

David Kahurani (1):
      riched20: Remove duplicate code.

Eric Pouech (9):
      msvcrt: Fix demangling of RTTI type descriptor.
      msvcrt: Add support for C++11 operator "" in demangling.
      msvcrt: Fix and cleanup undecoration of templatized functions and methods.
      msvcrt: Add support for restrict and unaligned qualifiers in demangling.
      msvcrt: Fix demangling of variables being an array.
      winedbg: Do proper error management when reallocating memory.
      winedbg: Use CRT allocation functions.
      winedbg: Store result of types_get_info(TI_GET_TYPE) in dbg_type.
      winedbg: Synthetize pointer to type when not available.

François Gouget (10):
      advapi32/tests: Fix the print format, LARGE_INTEGER is signed.
      urlmon/tests: Trace why the test file creation failed.
      dbghelp: Fix the spelling of a comment.
      ntdll: Fix the spelling of a comment.
      win32u: Fix the spelling of a variable name.
      urlmon/tests: Fix the spelling of a trace() message.
      include: Fix the spelling of some comments.
      ws2_32/tests: Add comments to help identify the hint test indices.
      include: Add some SPI_ constants.
      dinput/tests: Add a trailing linefeed to some ok() calls.

Gabriel Ivăncescu (27):
      mshtml: Use a table to construct the different event types by their interface.
      mshtml: Allocate UI events via the types table.
      mshtml: Allocate Mouse events via the types table.
      mshtml: Allocate Keyboard events via the types table.
      mshtml: Remove FIXME comment from MessageEvent in event_types.
      mshtml: Fix copy-paste mistake in test message.
      mshtml: Implement ProgressEvent's lengthComputable prop.
      mshtml: Implement ProgressEvent's loaded prop.
      mshtml: Implement ProgressEvent's total prop.
      mshtml: Inform Gecko of progress done via OnProgress.
      mshtml: Implement getAttributeNS for Elements.
      mshtml: Implement setAttributeNS for Elements.
      mshtml: Implement removeAttributeNS for Elements.
      mshtml: Implement hasAttributeNS for Elements.
      mshtml: Implement lastElementChild for Elements.
      mshtml: Implement nextElementSibling for Elements.
      mshtml: Implement previousElementSibling for Elements.
      mshtml: Implement childElementCount for Elements.
      mshtml: Implement HTMLTitleElement's text property.
      mshtml: Fix string leak on NamespaceError.
      mshtml: Implement responseType prop for XMLHttpRequest.
      mshtml: Implement "text" type response for XMLHttpRequest.
      include: Add IHTMLDOMNode3 to the HTMLDOMNode dispinterfaces.
      include: Add DOMDocumentType dispinterface and coclass.
      mshtml: Implement document.doctype.
      mshtml: Implement DocumentType node's name prop.
      mshtml: Handle lack of window in methods for detached documents.

Giovanni Mascellani (5):
      xactengine3_7/tests: Test notifications when loading a wave bank.
      faudio: Import upstream commit e3c444e4f819d2364a6adb0ae73b1d01185b1e93.
      xactengine3_7: Forward wave bank notifications to the application.
      mfplat/tests: Mark some tests as broken on Win 8 and 10 v1507.
      mfplat/tests: Merge and reorganize image format tests.

Hugh McMaster (12):
      regedit: Use a separate dialog proc function for string data types.
      regedit: Pass updated REG_SZ and REG_EXPAND_SZ data via 'struct edit_params'.
      regedit: Pass updated REG_MULTI_SZ data via 'struct edit_params'.
      regedit: Use 'struct edit_params' with read_value().
      regedit: Update binary data via update_registry_value().
      regedit: Set the dlgproc value name via a function, not a global.
      regedit: Update the listview item without reloading the value data.
      gitlab: Build-Depend on libfreetype-dev.
      regedit: Free temporary buffer when working with REG_DWORD and REG_QWORD values.
      regedit: Use zero as a default for REG_DWORD and REG_QWORD values.
      regedit: Use zero as a REG_DWORD/REG_QWORD default if edit control is empty.
      regedit: Limit REG_DWORD/REG_QWORD input length by value type and format.

Jacek Caban (43):
      user32: Avoid using NtUserDispatchMessage in DispatchMessage.
      win32u: Remove no longer needed NtUserDispatchMessageA.
      win32u: Avoid using client callbacks for NtUserSendMessage.
      ntdll: Suppress callback exceptions in KiUserCallbackDispatcher.
      win32u: Use syscall interface for NtUserDispatchMessage.
      win32u/tests: Add tests for catching exceptions from timer proc.
      win32u: Use syscall interface for NtUserMsgWaitForMultipleObjectsEx.
      win32u: Use syscall interface for NtUserMessageCall and NtUserTrackPopupMenuEx.
      win32u: Get rid of no longer needed NtUserSetCallbacks.
      win32u: Use syscall interface for NtUserGetMessage.
      win32u: Use syscall interface for message functions.
      winex11: Use __wine_unix_call.
      wineandroid: Use __wine_unix_call.
      winemac: Use __wine_unix_call.
      win32u: Use syscall interface for more input functions.
      win32u: Use syscall interface for more user painting functions.
      win32u: Use syscall interface for NtUserCallHwnd and NtUserCallHwndParam.
      user32: Use syscall interface for NtUserCall* functions.
      win32u: Use syscall interface for clipboard functions.
      win32u: Use syscall interface for more sysparams functions.
      win32u: Use syscall interface for cursor icon functions.
      win32u: Use syscall interface for more input functions.
      win32u: Use syscall interface for NtUserDisableThreadIme.
      win32u: Use syscall interface for NtUserCreateWindowEx and NtUserDestroyWindow.
      win32u: Use syscall interface for winpos functions.
      win32u: Use syscall interface for menu functions.
      win32u: Use syscall interface for scroll bar functions.
      win32u: Use syscall interface for NtUserSetWindow* functions.
      win32u: Use syscall interface for more windowing functions.
      win32u: Use syscall interface for window class functions.
      win32u: Use syscall interface for NtUserSystemParametersInfo.
      wow64win: Sort gdi syscall thunks.
      vulkan-1: Make sure that user32 is loaded before ICD.
      winevulkan: Move __wine_get_vulkan_driver call to Unix lib.
      winevulkan: Use syscall interface for driver functions.
      winevulkan: Remove __wine_get_vulkan_driver PE entry point.
      mshtml/tests: Increase tolerance in date_now test.
      user32: Avoid using WIN_GetPtr for window handle validation.
      user32: Use GetWindowLongPtr for GetWindowModuleFileName implementation.
      win32u: Introduce NtUserGetDialogInfo and NtUserSetDialogInfo.
      win32u: Introduce NtUserGetDialogProc.
      win32u: Remove no longer needed exports.
      user32: Inline DEFWND_ControlColor implementation.

Jeff Smith (3):
      d3drm/tests: Clean up some magic values.
      d3drm: Fix components of palette built when loading texture from file.
      d3drm: Fix components of palette when loading texture from 8-bit BMP file.

Jinoh Kang (8):
      advapi32/tests: Add tests for GetTokenInformation TokenOwner.
      kernel32/tests: Test deletion of synchronization objects after handle close.
      shell32: Return stub bitmap in IShellItemImageFactory::GetImage.
      advapi32/tests: Check that each ACE is ACCESS_ALLOWED_ACE in the default DACL.
      advapi32/tests: Test that default object owner match the token owner.
      advapi32/tests: Test that default object group match the token primary group.
      advapi32/tests: Test that the token default DACL uses token owner instead of token user.
      server: Use the token owner instead of the token user for default object owner.

Nikolay Sivov (20):
      dwrite: Use older interface version for fallback system collection.
      dwrite: Add additional structure for mappings array.
      dwrite: Filter out unusable ranges on AddMapping().
      dwrite: Keep locales separate for fallback data.
      dwrite: Override existing ranges with AddMapping().
      dwrite: Duplicate mapping data when creating fallback object.
      dwrite: Extend matching font creation helper.
      dwrite: Implement MapCharacters() for custom fallback.
      dwrite: Remove old system fallback logic.
      dwrite: Add some mappings for Tahoma in the system fallback.
      d3d11: Use CRT allocation functions.
      d2d1/tests: Add a missing return value test (Coverity).
      win32u: Remove some dead code from get_scroll_range() helper (Coverity).
      user32: Remove some dead code from unpack_dde_message() (Coverity).
      dwrite: Use u32-reads for AnalyzeScript().
      dwrite: Use correct ranges to set DWRITE_SCRIPT_SHAPES_NO_VISUAL.
      dwrite: Add a few more fallback ranges.
      dwrite: Add Arabic fallback ranges.
      win32u: Fix typo in font handle creation in NtUserDrawCaptionTemp().
      dwrite: Fix fallback config ranges text parsing.

Paul Gofman (14):
      ws2_32: Add ipv4 raw socket protocol info.
      ws2_32/tests: Test ICMP.
      ntdll: Support SOCK_RAW / IPPROTO_ICMP fallback over SOCK_DGRAM.
      ntdll: Fixup ICMP packet id if SOCK_DGRAM fallback is used.
      ntdll: Compute checksum for ICMP over SOCK_DGRAM IP header.
      taskschd: Implement writing settings to XML.
      schedsvc: Read task enable state from XML in SchRpcGetTaskInfo().
      taskschd: Return SCHED_S_TASK_HAS_NOT_RUN from regtask_get_LastRunTime() stub.
      shell32: Don't quote args substituted through wildcard in SHELL_ArgifyW().
      shell32: Handle file extensions in SHELL_FindExecutableByVerb().
      loader/wine.inf: Add runas shell execute verb.
      ntdll: Preserve rbx register when calling DLL entry point on x64.
      msxml3: Use node_get_text() in domelem_get_nodeTypedValue() if no type is present.
      opengl32/tests: Remove depth 32 / stencil 0 test in test_choosepixelformat().

Philip Rebohle (1):
      winevulkan: Fill LUID info in VkPhysicalDeviceVulkan11Properties.

Rémi Bernon (22):
      ntdll: Use a block member in large blocks.
      ntdll: Pass a struct block to (find|validate)_large_block.
      ntdll: Fixup the RtlWalkHeap entry pointer before subheap lookup.
      mf: Split MFCreateTopoLoader to topology_loader.c.
      mf: Check whether node is already in the topology before cloning.
      mf: Use a branch list instead of node marker in the topology loader.
      mf: Better implement topology loader graph resolution.
      mf: Implement topology_node_get_type_handler for all node types.
      winex11.drv: Set desktop settings handler before updating display devices.
      winemac.drv: Introduce new display_mode_to_devmode helper.
      win32u: Introduce new add_mode device manager callback.
      win32u: Read and cache adapter modes from the registry.
      dinput/tests: Wait for Acquire to complete when injecting input.
      dinput/tests: Add some rawinput joystick tests.
      win32u: Enumerate mouse and keyboard devices first and skip duplicates.
      win32u: Read rawinput device preparsed data using virtual memory.
      win32u: Fix thread safety when accessing rawinput device data.
      win32u: Use a static size array for rawinput device path.
      win32u: Use a struct list to keep rawinput devices.
      win32u: Implement NtUserGetRegisteredRawInputDevices on the client side.
      server: Use the client provided rawinput registered device array.
      maintainers: Assume maintainership of input sections.

Santino Mazza (4):
      jscript: Return ParseProcedureText when compile fails.
      riched20/tests: When selection is out of view, the scrollbar should move.
      riched20: Ensure that cursor is visible when selecting text.
      riched20/test: Add scrolling test for richole.

Torge Matthies (2):
      msvcr100: Make all exception ctors with a string parameter trace the string.
      msvcr100: Implement invalid_multiple_scheduling exception.

Zebediah Figura (25):
      ws2_32/tests: Add more tests for SO_CONNECT_TIME.
      ws2_32/tests: Test FD_CONNECT with UDP sockets.
      ws2_32/tests: Add some tests for connecting a UDP socket.
      ws2_32/tests: Test polling for AFD_POLL_CONNECT with UDP sockets.
      server: Do not set connectionless sockets into the CONNECTING or CONNECTED state.
      ws2_32/tests: Test listen() after a failed connect().
      Revert "server: Explicitly shutdown destroyed sockets to force pending poll() calls to return.".
      server: Always wake up pending read or write asyncs on POLLHUP or POLLERR.
      server: Use sock_poll_event() in poll_socket().
      server: Clear sock->errors[AFD_POLL_BIT_CONNECT_ERR] in sock_poll_event().
      server: Record the error for connected and connectionless sockets sockets in sock_error().
      server: Report the socket error in sock_poll_event() on POLLERR or POLLHUP.
      server: Move sock->error setting completely out of sock_dispatch_events().
      wined3d: Do not try to unmap already unmapped BOs in wined3d_buffer_update_sub_resource().
      wined3d: Do not try to unmap already unmapped BOs in wined3d_texture_update_sub_resource().
      wined3d: Assert that the BO is mapped in unmap functions.
      wined3d: Redirect vkd3d log output to the Unix stderr.
      ws2_32: Map AFD_POLL_RESET to the "read" set in select().
      ws2_32: Add a FIXME for unhandled flags in select().
      ws2_32: Map AFD_POLL_RESET to both POLLHUP and POLLERR.
      server: Properly implement AFD_POLL_RESET.
      d3d9: Correctly check for sysmem index buffers in d3d9_stateblock_Apply().
      d3d9: Do not release the wined3d mutex in d3d9_device_upload_sysmem_index_buffer().
      d3d8: Correctly check for sysmem index buffers in d3d8_device_ApplyStateBlock().
      d3d8: Do not release the wined3d mutex in d3d8_device_upload_sysmem_index_buffer().

Zhiyi Zhang (6):
      rpcrt4/tests: Add I_RpcBindingInqLocalClientPID() tests.
      rpcrt4: Implement I_RpcBindingInqLocalClientPID().
      include: Add IMediaParamInfo definition.
      dsdmo/tests: Add IMediaParamInfo tests.
      dsdmo: Add IMediaParamInfo stub interface.
      ntdll: Restore the timezone bias cache.

Alexandre Julliard
[email protected]