The Wine development release 6.13 is now available. What's new in this release (see below for details): - Proper scrollbar theming. - More work towards WinSock PE conversion. - Preparation work for the GDI syscall interface. - Some progress on the IPHLPAPI PE conversion. - Various bug fixes. The source is available from the following locations: https://dl.winehq.org/wine/source/6.x/wine-6.13.tar.xz http://mirrors.ibiblio.org/wine/source/6.x/wine-6.13.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 6.13 (total 31): 15381 CoFreeUnusedLibraries will crash COM server or cause 0x800703E6/I_RpcReceive error 0x3e6 28326 CDBurnerXP's audio player is missing some visual elements 28795 ExeInfoPE v0.0.3.0: PE protection schemes that abuse %gs won't run (breaks glibc TLS selector) 32517 installer of QQMusic 8.6 hangs 34966 Academagia (WPF game) dialog windows are invisible until alt-tabed out 35611 A lot of user32:msg tests fail in the Japanese locale 35921 Multiple games and applications need IDirectXVideoProcessorService via DXVA2CreateVideoService (DXVA Checker 3.x/4.x, Perfect World, Kodi) 37370 Doom 3 (CD version) installer: 'cancel' button does nothing in 'Please insert: DOOM 3 Disk x' dialog 39377 Add support for 'msidbControlAttributesFormatSize' in static text controls to format and label properties such as 'PrimaryVolumeSpaceRequired' (SkySaga installer) 41703 Workaround LdrUnloadDll() for C libraries that do not support the dlclose() function 43173 Far Cry 4 sound stops 45198 Project CARS 2 shows only a black screen (requires constant buffer offsetting) 45620 Dishonored 2 Demo crashes at launch 45807 Incorrect toolbar background in MFC apps, when visual theming enabled 50374 pCon.planner doesn't finish installation and doesn't open 50404 Sims 4 crashes on startup with builtin msvcrt 51152 The 64-bit ntdll:exception test fails in Wine 51262 Since 308a5e7 no 32bit program starts 51277 Multiple games become unresponsive with plugged in controller (INSIDE, The Hong Kong Massacre, Sniper Elite 3) 51281 C:\users\\appdata\local not created on prefix update 51295 ntoskrnl.exe:ntoskrnl occasionally hangs in test_overlapped() 51329 Windows PC Health Check requires api-ms-win-core-featurestaging-l1-1-0.dll 51331 Battle.net client unusable, reports "The Battle.net Update Agent went to sleep. Attempting to wake it up..." 51340 d3d10core:d3d10core, d3d11:d3d11 test_texture_compressed_3d() fails on Nvidia (cw-gtx560) 51348 uxtheme.SetWindowTheme should use SendMessage to send WM_THEMECHANGED 51366 several wine-mono network tests fail with timeout 51368 World of Warcraft : undefined d3d state 51381 Battlefield 4 cannot find online matches 51382 NetEase Cloud Music crashes on zh_CN.UTF-8 locale. 51416 deferred context memory leak 51425 Mathearbeit G 5.6 installer reports null pointer exception in module 'shell32.dll' starting with Wine 6.9-142-g98d43c5dcfb ---------------------------------------------------------------- Changes since 6.12: Aaron Hill (1): crypt32: Implement CNG_RSA_PUBLIC_KEY_BLOB encoding/decoding. Adrian Thiele (1): mfplat: Use D3DFORMAT for dxgi buffer copy function. Alex Henrie (1): api-ms-win-core-featurestaging-l1-1-0: Add DLL. Alexandre Julliard (26): ntdll: Implement SystemEmulation* information classes. ntdll: Implement NtWow64GetNativeSystemInformation(). ntdll: Forward RtlGetNativeSystemInformation() to NtWow64GetNativeSystemInformation() on 32-bit. ntdll: Get rid of the almost empty nt.c. ntdll: Get rid of the almost empty directory.c. ntdll: Get rid of the almost empty virtual.c. wow64: Add stub dll. wow64win: Add stub dll. ntdll: Store the pthread TEB value on thread init. ntdll: Allocate a 32-bit %fs selector on Linux in Wow64 mode. ntdll: Switch back to the pthread %fs register in signal handlers. winebuild: Add a specific platform id for Linux. winebuild: Save/restore the %fs register in the syscall dispatcher on Linux. ntdll: Make the ntdll exports and relocations processing more generic. ntdll: Also load the Wow64 ntdll for the main exe target machine. ntdll: Add support for LdrSystemDllInitBlock. ntdll: Fix iosb handling in NtCancelIoFile(). ntdll: Pass a length pointer instead of an IO_STATUS_BLOCK to the async callbacks. ntdll: Add a helper function to open a file object. ntdll: Avoid calling NtOpenFile() from the Unix side. ntdll: Avoid calling NtCreateFile() from the Unix side. ntdll: Avoid calling NtReadFile() from the Unix side. ntdll/tests: Add tests for IO_STATUS_BLOCKs in Wow64 mode. ntdll: Don't restore %fs selector on nested signals. ntdll: Use the 32-bit RtlUserThreadStart as initial Eip in the 32-bit context. server: Don't generate dll load event for native binaries on Wow64. Alistair Leslie-Hughes (3): secur32: Set error flag on pull callback. include: Update _IMAGEHLP_MODULEW64 stucture. dbghelp: Initialize new structure members. Andrew Eikum (1): shell32: Fix unused knownfolder definition. Arkadiusz Hiler (1): dinput: Don't add 'default value 0' entries to the data transform. Bernhard Übelacker (1): hhctrl.ocx: Handle only the number of bytes given in html_fragment_len. Biswapriyo Nath (2): include: Add some function declarations in propvarutil.h. winecrt0: Add missing members in _JUMP_BUFFER for SJLJ. Brendan Shanks (1): ntdll: Fix locale detection on Mac. Damjan Jovanovic (3): wininet: InternetGetLastResponseInfoW() returns wide chars, not ASCII. wininet: Return the required buffer size from InternetGetLastResponseInfo() when it's too small. wininet: The buffer is returned from InternetGetLastResponseInfo() even when the error is 0. Dmitry Timoshkov (1): winex11.drv: Don't free cached DnD data after informing an application about the drop event. Eric Pouech (2): dbghelp: Correctly initialize the module_pair structure in SymGetTypeFromName. dbghelp/tests: Try to fix failure in current dbghelp tests. Esdras Tarsis (3): bthprops.cpl: Add BluetoothFindNextRadio stub. api-ms-win-core-console-l3-2-0: Add stub dll. api-ms-win-core-kernel32-legacy-l1-1-5: Add stub dll. Esme Povirk (1): rundll32: Only call LoadLibrary16 on x86. François Gouget (24): user32/tests: Use WineTest contexts to simplify test_mdi(). user32/tests: Fix the wording of an ok() message. shell32/test: Fix an ok() message. shell32/tests: Use WineTest contexts to simplify shellpath. shell32/tests: Fix the PathResolve() tests on Windows 8.1, early 10. winetest: Report GetLastError() when CreateProcess() fails. ntdll/tests: TZinfo sometimes does not get a MUI string. ntdll/tests: Improve the RtlWaitOnAddress() timeout checks. kernel32: Fix the formatting of an NLS_IsUnicodeOnlyLcid() trace. mlang/tests: Fix the check for non-English locales in test_GetCodePageInfo(). oleaut32: Fix a trace containing a null character. oleaut32/tests: Allow testing VarParseNumFromStr() using Unicode strings. oleaut32/tests: Add more VarParseNumFromStr() tests. oleaut32: Fix the Var*FromStr() prototypes. user32/tests: Fix the keyboard layout id in an ok() message. kernel32/tests: Use WineTest contexts to simplify test_Loader(). winetest: Create the -d directory if it does not exist already. oleaut32/tests: Use EQ_DOUBLE() in vartype too. oleaut32: Update the VarDateFromStr() Y2K cutoff. oleaut32: Update the SystemTimeToVariantTime() Y2K cutoff. kernel32/tests: Allow failure when loading the 268 bytes minimal PE image. oleaut32/tests: Report the error when VarParseNumFromStr() fails. oleaut32: Fix VarParseNumFromStr()'s support for two-character currencies. oleaut32: VarParseNumFromStr() accepts trailing currency symbols. Georg Lehmann (3): winevulkan: Fix pointer typedef base types. winevulkan: Update to VK spec version 1.2.185. winevulkan: Enable VK_HUAWEI_subpass_shading. Gerald Pfeifer (1): nsiproxy: Include netinet/in.h before if_ether.h. Giovanni Mascellani (2): winegstreamer: Set MF_MT_ALL_SAMPLES_INDEPENDENT for audio types. mf/sar: Allow requesting more than a sample per period. Henri Verbeet (10): d3d11: Only complain once about d3d10 interface emulation in d3d11_device_context_SwapDeviceContextState(). d2d1: Do not clear the device context state in d2d_device_context_draw(). wined3d: Use wined3d_mask_from_size() in state_stencil(). wined3d: Use wined3d_mask_from_size() in wined3d_context_vk_apply_draw_state(). wined3d: Use wined3d_mask_from_size() in wined3d_render_pass_vk_init(). winex11: Request VK_KHR_external_memory_capabilities in get_gpu_properties_from_vulkan(). winex11: Request VK_KHR_display in get_gpu_properties_from_vulkan(). wined3d: Use wined3d_mask_from_size() in shader_glsl_ld_uav(). wined3d: Use wined3d_mask_from_size() in shader_glsl_atomic(). wined3d: Use wined3d_mask_from_size() in shader_glsl_get_sample_function(). Hugh McMaster (8): reg/tests: Split 'import' syntax tests into a separate function. reg/tests: Test use of registry views when importing keys and values. reg: Support use of registry views in the 'import' command. reg/tests: Add registry view syntax tests for the 'import' operation. reg/tests: Test use of registry views when exporting registry data. reg/tests: Split 'export' syntax tests into a separate function. reg/tests: Use correct file and line arguments with delete_file(). reg: Support use of registry views when exporting registry data. Huw D. M. Davies (30): maintainers: Add a Network Store Interface section. mountmgr.sys: Move dhcp lookup to a worker thread. iphlpapi: Implement ConvertInterfaceIndexToLuid() on top of nsi. iphlpapi: Implement ConvertInterfaceLuidToIndex() on top of nsi. iphlpapi: Implement ConvertInterfaceGuidToLuid() on top of nsi. iphlpapi: Implement ConvertInterfaceLuidToGuid() on top of nsi. iphlpapi/tests: Run the interface conversion tests on all interfaces. dhcpcsvc: Pass a luid instead of the adapter name. iphlpapi: Implement ConvertInterfaceAliasToLuid(). iphlpapi: Implement ConvertInterfaceLuidToAlias(). mountmgr: Retrieve the unix-name from the alias. iphlpapi: ConvertInterfaceLuidToNameW/NameToLuidW use names based on the luid's type and index. iphlpapi: Implement GetIfTable2Ex() on top of nsi. iphlpapi: Implement IfGetEntry2Ex() on top of nsi. iphlpapi: Implement GetNumberOfInterfaces() on top of nsi. iphlpapi: Implement ConvertGuidToString[AW](). iphlpapi: Implement ConvertStringToGuidW(). iphlpapi: Use ConvertGuidToStringA() where possible. iphlpapi: Implement GetInterfaceInfo() on top of GetIfTable(). iphlpapi: Implement GetAdapterIndex() on top of GetIfTable(). iphlpapi: Implement GetIfTable() on top of nsi. iphlpapi: Implement GetIfEntry() on top of nsi. iphlpapi: Implement AllocateAndGetIfTableFromStack() on top of nsi. iphlpapi: Return the TCPIP device name in MIB_IFROW. iphlpapi: Remove unused function getInterfaceStatsByName(). nsiproxy: Implement IP unicast enumerate_all. nsiproxy: Implement IP unicast get_all_parameters. iphlpapi: Implement GetUnicastIpAddressTable() on top of nsi. iphlpapi: Implement GetUnicastIpAddressEntry() on top of nsi. netapi32: Default to CP_UTF8 when WINEUNIXCP is not set. Jacek Caban (32): gdi32: Introduce NtGdiExtGetObjectW. gdi32: Reimplement GetObjectA on top of GetObjectW. gdi32: Implement CreatePenIndirect on top of CreatePen. gdi32: Introduce NtGdiCreatePen. gdi32: Implement CreateBitmapIndirect on top of CreateBitmap. gdi32: Introduce NtGdiCreateBitmap. gdi32: Use ntgdi names for bitmap functions. gdi32: Move CreateDiscardableBitmap implementation to objects.c. gdi32: Introduce NtGdiDeleteObjectApp. gdi32: Introduce NtGdiExtCreateRegion. gdi32: Use ntgdi names for region constructors. gdi32: Use ntgdi names for region functions. gdi32: Move region helper functions to objects.c. gdi32/tests: Remove workarounds for old Windows versions. gdi32/test: Add more handle table tests. gdi32: Store ntgdi object types in handle table. gdi32: Rename gdi_private.h to ntgdi_private.h. gdi32: Use NtGdiCreateClientObj for metafile objects. gdi32: Use NtGdiCreateClientObj for enhmetafile objects. include: Fix C++ InitPropVariantFromGUIDAsBuffer implementation. include: Declare NTSTATUS in propvarutils.h. gdi32: Introduce NtGdiLineTo. gdi32: Introduce NtGdiMoveTo. gdi32: Use NtGdiArcInternal for Arc implementation. gdi32: Use NtGdiArcInternal for ArcTo implementation. gdi32: Use NtGdiArcInternal for Chord implementation. gdi32: Use NtGdiArcInternal for Pie implementation. gdi32: Handle metafiles directly in LineTo implementation. gdi32: Handle metafiles directly in MoveToEx implementation. gdi32: Handle metafiles directly in Chord and Pie implementations. gdi32: Handle metafiles directly in Arc implementation. gdi32: Introduce DC_ATTR struct and use it to store current position. Jactry Zeng (1): gdi32: Fix a typo in unix_face_create(). Julian Rüger (1): po: Update German translation. Nikolay Sivov (8): mf/evr: Query d3d device manager via MR_VIDEO_RENDER_SERVICE service. evr/mixer: Set MF_MT_INTERLACE_MODE for the mixer output types. mf/session: Forward MR_POLICY_VOLUME_SERVICE service requests to the SAR node. mf/session: Use better failure code for rendering node service requests. winegstreamer: Use consistent trace format for MF objects. mfplat: Add some Video Processor attributes to tracing. mfmediaengine: Handle shutdown state in SetSource(). mfmediaengine: Update network state when loading the media source. Paul Gofman (11): mshtml: Move assert.h include to mshtml_private.h. mshtml_private.tlb: Add private typelib. mshtml: Export requestAnimationFrame() through a private interface. mshtml: Add console object stub implementation. ntdll: Add SystemKernelDebuggerInformationEx info class to NtQuerySystemInformation(). ntdll: Add stub for ProcessInstrumentationCallback info class in NtSetInformationProcess(). mshtml: Add stub for HTMLElement classList property. mshtml: Add stub object for HTMLElement classList. mshtml: Implement IWineDOMTokenList_add() method. mshtml: Implement IWineDOMTokenList_remove() method. ntdll: Comment out stubs for Nt and Zw functions. Piotr Caban (1): msvcrt: Update round_limb on first limb length change in printf. Rémi Bernon (15): ntoskrnl.exe/tests: Only count test driver load notify. ntoskrnl.exe/tests: Sync test utils with wine/test.h. ntoskrnl.exe/tests: Add more tests for button array caps. ntoskrnl.exe/tests: Add some HidD_GetInputReport tests. ntoskrnl.exe/tests: Add some HidD_GetFeature tests. ntoskrnl.exe/tests: Add some HidD_SetFeature tests. ntoskrnl.exe/tests: Add some HidD_SetOutputReport tests. ntoskrnl.exe: Send IRP_MN_SURPRISE_REMOVAL to the device stack first. ntoskrnl.exe/tests: Return STATUS_PENDING from IOCTL_HID_READ_REPORT. ntoskrnl.exe/tests: Add HID driver test in polled mode. hidclass.sys: Return error on invalid write buffer size. ntoskrnl.exe/tests: Add some IOCTL_HID_WRITE_REPORT tests. hidclass.sys: Return error on invalid read buffer size. ntoskrnl.exe/tests: Add some IOCTL_HID_READ_REPORT tests. wine.inf: Consistently quote shell open and print commands. Steve Lhomme (1): include: Add AV1 support to dxva.h. Tim Clem (3): wininet/tests: Test InternetCrackUrl when given a bogus length. wininet: Make heap_strndupAtoW stop at the first null. wininet: Treat dwUrlLength as a maximum in InternetCrackUrlW. Zebediah Figura (64): server: Don't check the user data for NULL in async_terminate(). server: Call the close_handle callback and release_object_from_handle() in the same loop. server: Explicitly return whether a select request was immediately signaled. server: Remove special handling of STATUS_MORE_PROCESSING_REQUIRED. ws2_32/tests: Fix some connection timeout tests. ws2_32/tests: Add more tests for connection failure. server: Return a Win32 error code from IOCTL_AFD_WINE_GET_SO_ERROR. server: Separate a poll_single_socket() helper. server: Report AFD_POLL_CONNECT_ERR if a previous connection attempt failed. wined3d: Factor out most of the execute_command_list callback to a common function. wined3d: Pass a wined3d_cs pointer to wined3d_not_from_cs(). wined3d: Set an array of constant buffers as a single CS operation. wined3d: Set an array of shader resource views as a single CS operation. wined3d: Set an array of samplers as a single CS operation. server: Clear the connection error after a successful connection. ws2_32/tests: Add more tests for invalid calls to connect() and ConnectEx(). server: Explicitly forbid connecting a listening or connected socket. ws2_32: Move the setsockopt(IP_DROP_MEMBERSHIP) implementation to ntdll. ws2_32: Move the setsockopt(IP_DROP_SOURCE_MEMBERSHIP) implementation to ntdll. wined3d: Introduce a wined3d_bound_range() helper. wined3d: Set an array of UAVs as a single CS operation. ws2_32: Move the getsockopt(IP_HDRINCL) implementation to ntdll. ws2_32: Move the setsockopt(IP_HDRINCL) implementation to ntdll. ws2_32: Move the getsockopt(IP_MULTICAST_IF) implementation to ntdll. ws2_32: Move the setsockopt(IP_MULTICAST_IF) implementation to ntdll. ws2_32: Move the getsockopt(IP_MULTICAST_LOOP) implementation to ntdll. include: Fix a byte offset in a comment. wined3d: Move the uploads array in wined3d_deferred_context_record_command_list(). wined3d: Fix some memory leaks when destroying command lists. wined3d: Fix some memory leaks when destroying deferred contexts. ws2_32: Move the setsockopt(IP_MULTICAST_LOOP) implementation to ntdll. ws2_32: Move the getsockopt(IP_MULTICAST_TTL) implementation to ntdll. ws2_32: Move the setsockopt(IP_MULTICAST_TTL) implementation to ntdll. ws2_32: Move the getsockopt(IP_OPTIONS) implementation to ntdll. ws2_32: Move the setsockopt(IP_OPTIONS) implementation to ntdll. ws2_32: Move the getsockopt(IP_PKTINFO) implementation to ntdll. ws2_32: Move the setsockopt(IP_PKTINFO) implementation to ntdll. ws2_32: Move the getsockopt(IP_TOS) implementation to ntdll. ws2_32: Move the setsockopt(IP_TOS) implementation to ntdll. ws2_32: Move the getsockopt(IP_TTL) implementation to ntdll. qasf: Switch to the quartz debug channel. qcap: Switch to the quartz debug channel. qedit: Switch to the quartz debug channel. qdvd: Switch to the quartz debug channel. amstream: Switch to the quartz debug channel. winegstreamer: Avoid using WARN_ON from a GStreamer callback. winegstreamer: Factor out create_element(). winegstreamer: Avoid using Wine debugging functions at all in the Unix library. winegstreamer: Switch to the quartz debug channel. strmbase: Switch to the quartz debug channel. wined3d: Recursively acquire queued command lists in wined3d_cs_acquire_command_list(). wined3d: Set the entire stream output state as a single CS operation. wined3d: Set both the stream source and frequency for a given index as a single CS operation. d3d11: Fail IASetVertexBuffers() if any of the offsets are unaligned. wined3d: Set an arary of stream sources as a single CS operation. d3d11: Fail OMSetRenderTargets() if any of the views have the wrong binding flags. wined3d: Set an array of rendertarget views as a single CS operation. d3d11: Implement constant buffer offsetting for OpenGL. d3d11/tests: Add tests for constant buffer offsetting. ntdll: Use a separate +unwind debug channel for unwinding on x86-64. quartz: Factor out more of AdviseTime() and AdvisePeriodic(). quartz: Use a condition variable to wake up the system clock advise thread. quartz/tests: Check that system clock measurements are in sequence instead of comparing absolute time. quartz: Free outstanding advise requests when destroying a system clock. Zhiyi Zhang (17): user32: Avoid unnecessary scroll bar drawing. user32: Remove SCROLL_DrawInterior_9x(). user32: Modify SCROLL_MovingThumb outside of SCROLL_DrawMovingThumb(). user32: Introduce a SCROLL_DrawNCScrollBar() to draw scroll bars in non-client area. user32: Call SCROLL_DrawScrollBar() to draw arrows in SCROLL_HandleScrollEvent(). uxtheme: Avoid memory leaks. user32: Call SCROLL_DrawScrollBar() to draw moving thumb in SCROLL_HandleScrollEvent(). user32: Call SCROLL_DrawScrollBar() to draw tracks in SCROLL_HandleScrollEvent(). user32: Pass a scroll bar tracking info parameter to SCROLL_DrawScrollBar(). user32: Separate scroll bar drawing calculation from actual drawing. user32: Separate scroll bar window checks from actual drawing. user32: Draw scroll bar size box and size grip in a single function. uxtheme: Move themed scroll bar to uxtheme. uxtheme: Move themed dialog to uxtheme. uxtheme: Support drawing themed standard scroll bars. uxtheme: Support pressed state for themed scroll bars. uxtheme: Support scroll bar state tracking in non-client areas. Ziqing Hui (4): include: Add the D2D12DAffineTransform definitions. d2d1/tests: Add an effects test. d2d1: Add a ID2D1Image interface for effects. d2d1: Implement d2d_effect_GetOutput(). -- Alexandre Julliard julliard@winehq.org