The Wine development release 4.3 is now available. What's new in this release (see below for details): - Reimplementation of XAudio2 using the FAudio library. - Mono engine updated to the latest upstream. - More modern handling of iconic windows. - Improved handling of kernel objects. - Various bug fixes. The source is available from the following locations: https://dl.winehq.org/wine/source/4.x/wine-4.3.tar.xz http://mirrors.ibiblio.org/wine/source/4.x/wine-4.3.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 4.3 (total 45): 1719 MDI child window minimize problem in Delphi VCL applications 7287 Redundant "tabs" appear with tabbed MDI (test with LTSpice) 8226 DlgDirListComboBox does not fail properly on bad path spec argument 15703 LEGO Star Wars controller options 18496 BREW simulator always shows a black display 19777 Ad Astra game runs very slow 21023 SetupDiOpenDevRegKey() returns wrong HKEY 26653 Multiple VB6 applications need oleaut32 VarRound to support VT_DECIMAL 31954 Second Sight hangs with a black screen after the intro videos 32374 List box with LBS_NODATA set, has very low performance, depending on items count. 35516 Microworlds EX hangs when clicking toolbar button 37705 Heroes of Might and Magic VI Shades of Darkness Textures Fail to Display in Most Campaign Maps 38488 Wrong traces in functions *_invalidate_location 39932 bat-script with quotes cann't be called using CreateProcess 41670 BattlEye launcher stuck at 'Starting BattlEye Service...' (PUBG, Planetside2, H1Z1: King of the Kill, Tibia 11) 43395 Wine intermittently crashes after any program terminates 43659 Jurassic Park: Operation Genesis crashes inside winegstreamer (disabling winegstreamer is a workaround) 44300 Windows Media Player 7.1 fails to play media due to unimplemented function wmvcore.dll.WMCheckURLExtension 45149 Provide mscoree.dll.CorIsLatestSvc stub with diagnostic message to tell native MS .NET CLR bootstrapper must be used (dll override) 45631 League of Legends client crashes when joining a lobby with other players 45632 Garena client v2.0.x crashes on startup ('ntdll.NtQueryVirtualMemory' needs to validate 'MemoryInformationLength' before writing to buffer) 45841 Battleye's BEDaisy.sys requires that PsThreadType and PsProcessType are defined 46105 TopoEdit crashes with unimplemented function mf.dll.MFCreateSequencerSource 46245 V-sync setting does not work (Direct3D 12) 46318 vbscript doesn't parse if identifier is also keyword token 46319 32-bit IL-only executable launched as 32-bit subprocess on Wine and 64-bit subprocess on Windows 46442 FormatCurrency(9) returns .9.00 (period in front) 46481 strftime has a buffer overflow 46493 Functions ilogb* are not implemented 46583 LINE latest version doesn't work 46623 Game controller behaves incorrectly 46638 dotnet40 no longer installs using winetricks 46639 LoadLibraryShim fails in wow64 46654 dotnet35sp1 fails to install with winetricks 46678 Width of latin characters is wrong with some fonts. 46681 TopoEdit crashes with unimplemented function mf.dll.MFCreateTopologyNode 46691 comctl32/tests/propsheet.c shows uninitalized memory use 46708 Photoline crashed right after start, no problem with wine 3.0.4 46717 TopoEdit crashes with unimplemented function mf.dll.MFCreateTopoLoader 46719 iTunes crashes during the installation 46724 Call of Juarez: Bound in Blood crashes on startup when using FAudio 46727 Alekhine's Gun crashes on startup when using FAudio 46728 dotnet35sp1 fails to complete with install via winetricks 46729 Wine directx not detecting Intel HD Graphics 620 (Rev 02) chipset 46732 BleachBit-2.0 crashes at startup ---------------------------------------------------------------- Changes since 4.2: Alexandre Julliard (12): kernel32/tests: Add a test to check some fields in fake dlls. winebuild: Align resource data to dword boundaries even on 64-bit. winebuild: Make thiscall an entry point flag instead of a function type. winebuild: Add support for fastcall entry points. ntdll: Support relay debugging of fastcall entry points. ntdll: Use the fastcall flag for RtlInterlockedPushListSList. hal: Specify fastcall entry points using the appropriate spec file flag. ntoskrnl.exe: Specify fastcall entry points using the appropriate spec file flag. kernel32/tests: Use GetTempFileName() instead of hardcoding directory names. winebuild: Use stdcall for fastcall wrappers. winebuild: Make relay entry points hot-patchable. wrc: Don't map version block names to the target language. Alistair Leslie-Hughes (8): oleaut32: Support VT_DECIMAL in VarRound. mf: Add IMFSequencerSource stub. kernel32: Correct GetCurrencyFormatW/A spec entries. oleaut32: Correctly get the Currency separator in VarFormatCurrency. oleaut32: Correctly get the thousands separator in VarFormatCurrency. oleaut32: Correctly get the Grouping separator. include: Add more DB_E_* defines. vbscript: Move variable declaration outside of for. Andrew Eikum (1): xaudio2: IXAPO::Process out parameter should not be const. Andrey Gusev (11): ext-ms-win-ntuser-windowclass-l1-1-0: Add dll. ext-ms-win-ntuser-window-l1-1-0: Add dll. ext-ms-win-ntuser-window-l1-1-4: Update spec file. ext-ms-win-gdi-dc-create-l1-1-0: Add dll. ext-ms-win-gdi-draw-l1-1-0: Add dll. ext-ms-win-ntuser-gui-l1-1-0: Add dll. ext-ms-win-gdi-font-l1-1-0: Add dll. ext-ms-win-gdi-font-l1-1-1: Add dll. ext-ms-win-ntuser-dialogbox-l1-1-0: Add dll. ext-ms-win-ntuser-message-l1-1-0: Add dll. ext-ms-win-ntuser-misc-l1-1-0: Add dll. Aurimas Fišeras (1): po: Update Lithuanian translation. Austin English (1): comctl32: Fix a memory leak (valgrind). Brendan McGrath (2): vbscript: Allow most keywords to be used as 'dot' identifiers. vbscript: Add todo test for 'rem' as 'dot' identifier. Byeong-Sik Jeon (1): gdi32: Add a workaround for Freetype < 2.8.1 using v40 FT_LOAD_TARGET_MONO. Daniel Lehman (1): kernel32/tests: Add tests for SpecialCasing. Dmitry Timoshkov (8): windowscodecs: Add support for 32bppRGB, 32bppRGBA and 32bppPRGBA to format converter. windowscodecs/tests: Add a test for 8bpp indexed TIFF format. windowscodecs: Fix the SupportsTransparency flag value for various pixel formats. windowscodecs: Fail earlier in TIFF decoder's Initialize method for unsupported pixel formats. windowscodecs: Avoid redundant checks when reading a TIFF tile. windowscodecs: Add support for CMYK to BGR conversion. windowscodecs: Move JPEG frame image data initialization from Frame::CopyPixels to Decoder::Initialize. wpcap: Fix compilation with recent pcap/pcap.h versions. Ethan Lee (3): xaudio2: Rewrite to use FAudio. xaudio2: Fix uninitialized variable access (Valgrind). xaudio2: IXAudio23 needs its own interface, for XAUDIO23_VOICE_SENDS parameters. Gabriel Ivăncescu (22): comctl32/listbox: Use a helper to retrieve item height by index. comctl32/listbox: Use a helper to set item height by index. comctl32/listbox: Move the item data insertion into a separate function. comctl32/listbox: Move the item data removal into a separate function. comctl32/listbox: Implement LBS_NODATA for single-selection listboxes. comctl32/tests: Test negative counts in LB_SETCOUNT. user32/listbox: Use a helper to retrieve item height by index. user32/listbox: Use a helper to set item height by index. user32/listbox: Move the item data insertion into a separate function. user32/listbox: Move the item data removal into a separate function. user32/listbox: Implement LBS_NODATA for single-selection listboxes. user32/tests: Test negative counts in LB_SETCOUNT. comctl32/listbox: Use is_item_selected in GetSelCount and GetSelItems. user32/listbox: Use is_item_selected in GetSelCount and GetSelItems. comctl32/listbox: Use a helper to set item data by index. comctl32/listbox: Rewrite FindString to use helpers and avoid the macro. comctl32/listbox: Use a helper to get the size of an item. comctl32/listbox: Implement LBS_NODATA for multi-selection listboxes. user32/listbox: Use a helper to set item data by index. user32/listbox: Rewrite FindString to use helpers and avoid the macro. user32/listbox: Use a helper to get the size of an item. user32/listbox: Implement LBS_NODATA for multi-selection listboxes. Gijs Vermeulen (2): ntdll: Validate len in NtQueryVirtualMemory. mfplat: Implement MFHeap[Alloc|Free]. Hans Leidekker (13): msi: Don't use delay imports. winhttp: Include URL extra info in the path unless the caller asks for it separately. winhttp: Introduce a structure to describe URL components. secur32: Fix the username fallback in get_key_container_path. ws2_32: Always set overlapped status in AcceptEx. mscms: Add a partial implementation of WcsOpenColorProfileA/W. mscms: Map BM_KYMCQUADS to TYPE_KYMC_8. mscms: Set last error on insufficient buffer in EnumColorProfilesA/W. msi: Don't use globals to manage assembly cache state. fusion: Use bcrypt to compute the assembly token. dnsapi: Add support for DNS_TYPE_OPT records. dnsapi: Fix data length returned for records that contain Unicode strings. dnsapi: No longer prefer native. Henri Verbeet (1): wined3d: Get rid of unused wined3d_blit_op enum elements. Huw D. M. Davies (4): server: Add new pipe servers to the end of the servers list. ntoskrnl.exe: Add stubs for PsSuspendProcess() and PsResumeProcess(). comctl32/listbox.c Use helper functions for item initialization. user32/listbox: Use helper functions for item initialization. Isira Seneviratne (8): wordpad: Update STRING_TEXT_FILES_UNICODE_TXT string to plural format. po: Add Tamil translation. po: Update Sinhala translation. po: Update Sinhala translation. kernel32: Add the Sinhala NLS file. kernel32: Fix LOCALE_SSCRIPTS value for Sinhala. po: Update Sinhala translation. po: Update German translation. Jacek Caban (19): include: Add atlthunk.h. atlthunk: Add stub DLL. atlthunk: Implement AtlThunk functions. atlthunk/tests: Add tests. ntdll/tests: Introduce test_object_type helper. server: Support process object type. server: Support thread object type. server: Support token object type. server: Return proper object type for mailslot and device files. ntoskrnl.exe/tests: Add object reference tests. ntoskrnl.exe: Export object type values. ntoskrnl.exe: Introduce common kernel object allocator and use it for driver object. ntoskrnl.exe: Use kernel object allocators for device object. ntoskrnl.exe: Add missing ObReferenceObject call to ObReferenceObjectByName. ntoskrnl.exe: Use kernel object allocators for file object. ntoskrnl.exe: Add partial ObReferenceObjectByHandle implementation. ntoskrnl.exe: Implement ObReferenceObject and ObDereferenceObject. ntoskrnl.exe: Implement file object constructor. jscript: Use flatten string in create_regexp debug traces. Jactry Zeng (1): mfplat: Add MFCreateMFByteStreamOnStreamEx() stub. Józef Kucia (14): wined3d: Add new registry setting to select shader backend. d3d11: Use better name for current entry variable in validate_stream_output_entries(). dxgi/tests: Run test_swapchain_present() on D3D12. dxgi: Always use user images instead of using Vulkan swapchain directly. dxgi: Re-create swapchain on VK_ERROR_OUT_OF_DATE_KHR. dxgi: Set Vulkan swapchain size according to VkSurfaceCapabilitiesKHR. dxgi: Use VK_FILTER_LINEAR for swapchain blits if dimensions don't match. d3d12/tests: Add test for swapchain and window sizes mismatch. dxgi: Implement 0 sync interval for D3D12 swapchains. dxgi: Recreate Vulkan swapchain only when current buffer index is 0. d3d12/tests: Add test for backbuffer index after changing sync interval. wined3d: Rename ShaderBackend registry setting to shader_backend. wined3d: Add GPU information for Intel HD Graphics 620. winevulkan: Use VkBase{In, Out}Structure instead of custom structure. Lauri Kenttä (1): po: Update Finnish translation. Louis Lenders (2): ole32: Add CoEnableCallCancellation stub. ole32: Add CoDisableCallCancellation stub. Mark Jansen (2): msi: Do not leak rootkey. msi: Prevent uninitialized variable usage. Matteo Bruni (10): d3dx9: Simplify get_parameter_by_name(). d3d8/tests: Add a test for Reset() with bound DEFAULT resources. d3d9/tests: Add a D3D9Ex test for Reset() with bound resources. d3d9/tests: Fix device tests on Windows 10. d3d8/tests: Fix device tests on Windows 10. d3d9: Release system memory wined3d buffer only after the draw buffer is destroyed. d3d8: Release system memory wined3d buffer only after the draw buffer is destroyed. d3d9/tests: Add a test for drawing with released buffers. d3d8/tests: Add a test for drawing with released buffers. d3dx9: Get rid of the ID3DXEffectImpl #define. Michael Stefaniuc (37): oleaut32/tests: Propagate the const instead of casting it away. hnetcfg: Remove redundant "not NULL" check (coccinellery). winmm/tests: Floating point numeric constants are by default doubles. secur32: Use offsetof() instead of pointer substraction. msxml3: Remove useless casts to self. msxml3/tests: Floating point numeric constants are by default doubles. d3d8/tests: Remove useless casts to self. ddraw/tests: Avoid using the comma operator (coccinellery). mshtml: Remove useless casts to self. d3dx9: Remove redundant "not NULL" checks (coccinellery). d3dx9/tests: Avoid using the comma operator (coccinellery). shell32: Remove superfluous continue (coccinellery). kernel32: Remove redundant not 0 check (coccinellery). wineandroid.drv: Remove redundant not-NULL checks (coccinellery). ddraw/tests: Remove redundant not NULL check (coccinellery). oledb32: Remove redundant not-NULL check (coccinellery). ntdll: Remove redundant not-NULL check (coccinellery). comctl32: Avoid using the comma operator. wintrust: Remove redundant not-NULL checks (coccinellery). kernelbase: Remove redundant not-NULL check (coccinellery). gdiplus: Remove redundant not-NULL checks (coccinellery). msvcp120/tests: Avoid using the comma operator. crypt32: Remove an unused return variable (coccinelle). gdi.exe16: Remove an unused return variable (coccinelle). shlwapi: Remove redundant not-NULL check (coccinellery). msvcrt: Remove redundant not-NULL check (coccinellery). pdh: Remove redundant not-NULL check (coccinellery). gdiplus: Remove useless casts to self. windowscodecs: Remove redundant not-NULL check (coccinellery). d3dx9: Rename the ID3DXEffect object and methods. d3dx9: Merge the stub ID3DXBaseEffect methods. d3dx9: Merge the d3dx9_effect_GetDesc() helper. msxml3: Remove redundant not-NULL check (coccinellery). dwrite: Remove useless casts to self. riched20/tests: Avoid using the comma operator. ole32: Remove useless casts to self. urlmon: Remove useless casts to self. Nikolay Sivov (44): wbemprox/tests: Add a simple test for semi-synchronous mode behaviour. comctl32/toolbar: Draw button in idle state when mouse is captured. comctl32/toolbar: Send BN_CLICKED for button that was pressed, not released. comctl32/updown: Make sure buttons rectangles are consistent with each other. mfplat: Implement MFCreateAsyncResult(). po: Update Russian translation. mfplat/tests: Remove initialization from tests that don't need it. mfplat: Hold platform lock for async results lifetime. mfplat: Add basic support for user queue object lifetime management. mfplat: Add trivial implementation of MFCopyImage(). mf: Add attributes store to topology object. mf: Add IMFTopologyNode stub. mfplat: Implement MFInvokeCallback(). mf/tests: Add some tests for node management. mfreadwrite: Add MFReadWriteClassFactory stub. mfreadwrite/tests: Initialize COM only for tests that need it. mfreadwrite: Add CreateInstanceFromObject() stub for source reader. mf: Assign node id on creation. mf/tests: Add another test for duplicate node ids. mfplat: Implement MFCreateCollection(). mf: Implement topology node handling. mfplay: Add stub dll. mf: Add support for source and output collections. mf/tests: Add a basic test creating media session. mf: Use event queue for session event handling. mf: Add IMFTopoLoader stub. mf: Assign topology identifiers. mfreadwrite: Add sink writer stub. comctl32/propsheet: Avoid posting uninitialized data (Valgrind). usp10: Use single path for all fonts in ScriptGetCMap(). mf/tests: Fix typos in test messages. ucrtbase: Add ilogb* functions. mfplat/tests: Add a test for deferred item posting. mfplat: Initialize system queues on startup. mfplat: Add MFAllocateWorkQueueEx(). mfplat: Add a helper to create async result objects. mfplat: Add basic support for submitting work items. mfplat/tests: Add some tests for serial queues. mfplat: Implement waiting items with ability to cancel. mfplat: Add support for scheduled items. mfplat: Cleanup user queues. mfplat: Fail to create user queues on uninitialized platform. user32: Do not touch some of the values on 64-bit with SetWindowLong(). user32: Make GetWindowLong() fail for some values on 64-bit. Paul Gofman (8): kernel32/tests: Add test for overlapped file read. ntdll/tests: Add more tests for overlapped file read. ntdll: Return STATUS_PENDING from NtReadFile() for async read in case of no buffering. wined3d: Only use the LSB of the _SAMP_SRGB_TEXTURE state value. kernel32/tests: Test ReadFileScatter() completion status with FILE_SKIP_COMPLETION_PORT_ON_SUCCESS. ntdll/tests: Test ReadFile() completion status with FILE_SKIP_COMPLETION_PORT_ON_SUCCESS. ntdll: Pass async parameter to add_fd_completion server call. wined3d: Add a setting to turn off aggressive optimization on NVIDIA. Piotr Caban (3): winebuild: Recognize armv7a target. msvcrt: Fix buffer overflow in _get_tzname. msvcp140: Don't forward __ExceptionPtrCreate to msvcr120. Sebastian Lackner (1): server: Improve handling of cursor position clipping for empty rectangle. Stefan Riesenberger (4): opengl32: Add wrapper for wglCreateContext. d3d11: Avoid calling D3D11CreateDevice() from D3D11CreateDeviceAndSwapChain(). d3d10_1: Avoid calling D3D10CreateDevice1() from D3D10CreateDeviceAndSwapChain1(). d3d10: Avoid calling D3D10CreateDevice() from D3D10CreateDeviceAndSwapChain(). Sven Baars (10): wbemprox: Initialize a variable (Coverity). windowscodecs/tests: Fix a memory leak (Valgrind). windowscodecs: Add missing source_bpp initialization (Valgrind). setupapi: Add a missing return statement (Coverity). dinput8/tests: Fix some memory leaks (Valgrind). wined3d: Remove a redundant adapter_count check (Coverity). gdiplus/tests: Fix a memory leak (Valgrind). msdmo: Allow for names to be NULL in IEnumDMO_Next. devenum: Don't pass a name argument to IEnumDMO_Next. dsound: Add missing SetEventHandle error handling (Coverity). Vijay Kiran Kamuju (6): crypt32: Add CMSG_SIGNER_UNAUTH_ATTR_PARAM implementation. wmvcore: Add stub for WMCheckURlExtension. user32: Add DlgDirList wildcard checks. include: Add missing WMT_RIGHTS enum definition. include: Add missing IWMSyncReader2 interfaces. wmvcore: Add tests for WMCreateSyncReader. Vincent Povirk (3): mscoree: Update Wine Mono to 4.8.0. gdiplus: Add support for reading nested metafiles. mscoree: Add support for config stream in GetRequestedRuntime. Zebediah Figura (65): user32/tests: Add tests for GetWindowPlacement() and SetWindowPlacement(). user32/tests: Add tests for maximizing and minimizing owned windows. user32/tests: Add tests for maximizing and minimizing child windows. user32/tests: Add tests for maximizing and minimizing MDI child windows. user32/tests: Add tests for ArrangeIconicWindows(). user32: SetWindowPos() shouldn't change the client rect of a minimized window. user32: Correctly calculate the client size of a minimized window. user32: Use the C[XY]MINIMIZED rather than C[XY]ICON size for minimized windows. user32: AdjustWindowRect() shouldn't ignore WS_MINIMIZE. user32: Reimplement ArrangeIconicWindows() using minimized metrics. user32: Correctly place minimized windows. user32: Paint title bars for minimized windows. user32: Allow clicking the restore and maximize boxes for on minimized windows. user32: Get rid of icon titles. user32: Move iconic windows as their border instead of their icon. user32: Replace the minimize box with a restore box when the window is minimized. quartz/tests/filesource: Add some tests for IBaseFilter_EnumPins(). quartz/tests/filesource: Add some tests for IBaseFilter_FindPin(). quartz/tests/filesource: Add some tests for querying pin information. quartz/tests/filesource: Add tests for media types. quartz/filesource: Don't check formattype in FileAsyncReaderPin_CheckMediaType(). wined3d: Rename MAX_STREAMS to WINED3D_MAX_STREAMS. wined3d: Rename MAX_TEXTURES to WINED3D_MAX_TEXTURES. wined3d: Rename MAX_FRAGMENT_SAMPLERS to WINED3D_MAX_FRAGMENT_SAMPLERS. wined3d: Rename MAX_VERTEX_SAMPLERS to WINED3D_MAX_VERTEX_SAMPLERS. wined3d: Rename MAX_COMBINED_SAMPLERS to WINED3D_MAX_COMBINED_SAMPLERS. quartz/filesource: Correctly initialize the default media type. quartz/filesource: Return a default media type from FileAsyncReaderPin_GetMediaType(). quartz/tests/filesource: Add some tests for pin interfaces. quartz/tests/filesource: Add some tests for filter state. quartz/tests/filesource: Add tests for IAsyncReader_SyncRead(). wined3d: Rename MAX_ACTIVE_LIGHTS to WINED3D_MAX_ACTIVE_LIGHTS. wined3d: Rename MAX_CLIP_DISTANCES to WINED3D_MAX_CLIP_DISTANCES. wined3d: Rename HIGHEST_TRANSFORMSTATE to WINED3D_HIGHEST_TRANSFORM_STATE. quartz/filesource: Correctly report short reads from IAsyncReader_SyncRead(). quartz/tests: Clean up CommitDecommitTest(). quartz/tests: Add tests for IMemAllocator_GetProperties() and IMemAllocator_SetProperties(). quartz/tests/filesource: Add tests for IAsyncReader_SyncReadAligned(). quartz/filesource: Correctly report short reads from IAsyncReader_SyncReadAligned(). setupapi: Return the "Device Parameters" subkey for DIREG_DEV. setupapi: Handle error translation in SetupDiOpenDevRegKey(). setupapi: Handle error translation in SetupDiDeleteDevRegKey(). setupapi: Handle error translation in SetupDiCreateDevRegKey(). msvcr120: Add nexttoward implementation. quartz/filesource: Set the sample length in IAsyncReader_SyncReadAligned(). quartz/filesource: Remove some incorrect assertions. quartz/tests/filesource: Add tests for IAsyncReader_Request() and IAsyncReader_WaitForNext(). quartz/tests/filesource: Add tests for IAsyncReader_BeginFlush() and IAsyncReader_EndFlush(). quartz/tests: Rename avisplitter.c to avisplit.c. setupapi: Search for substituted strings in SetupFindNextMatchLine(). quartz/tests/avisplit: Clean up test_query_interface(). quartz: Also report the input pin in Parser_GetPinCount(). quartz/tests/avisplit: Add some tests for IBaseFilter_EnumPins(). quartz/tests/avisplit: Add some tests for IBaseFilter_FindPin(). quartz/tests/avisplit: Add some tests for querying pin information. quartz/tests: Add some tests for media types. quartz/tests: Add some tests for pin interfaces. quartz/tests: Clean up test_query_interface(). quartz/tests: Add a test mp3 file. quartz/mpegsplit: Fix sink pin name. quartz/tests: Add some tests for IBaseFilter_EnumPins(). quartz/tests: Add some tests for IBaseFilter_FindPin(). quartz/tests: Add some tests for querying pin information. quartz/tests: Add some tests for pin interfaces. mshtml: Open pages in the native browser in HlinkTarget_Navigate(). Zhiyi Zhang (4): kernelbase/tests: Fix a possible test failure. include: Add EnumDisplayDevices flags. user32/tests: Add more EnumDisplayDevices tests. ntoskrnl.exe: Implement ExUuidCreate(). -- Alexandre Julliard julliard@winehq.org