The Wine development release 3.19 is now available. What's new in this release (see below for details): - Support for file I/O completion modes. - WaitOnAddress synchronization primitives. - Better support for 32-bit .NET binaries on 64-bit. - Improved recovery on broken RPC connection. - Various bug fixes. The source is available from the following locations: https://dl.winehq.org/wine/source/3.x/wine-3.19.tar.xz http://mirrors.ibiblio.org/wine/source/3.x/wine-3.19.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.19 (total 31): 26198 BrainSplode! is not rendered properly 26936 Advanced SystemCare 6.4 crashes on startup with divide by zero in LVM_GETCOUNTPERPAGE handler ('LISTVIEW_GetCountPerColumn' doesn't account for zero item height) 28923 utorrent 2.2.1 causes a comctl32 assert 34711 Terraria Server 1.2.0.x fails on startup (needs CLSID_UPnPNAT {ae1e00aa-3fd5-403c-8a27-2bbdc30cd0e1}) 38189 Multiple applications want 'IHTMLDocument2::put_charset' implementation (Yarxi dictionary, iPed 7G 2019) 38422 SentriLock SentriCard utility installer 4.0.x crashes with arithmetic exception due to large input rect in 'GdipMeasureCharacterRanges' 38960 Multiple applications need 'kernel32.SetFileCompletionNotificationModes' implementation (Steam 'steamwebhelper.exe' and Blizzard Battle.net desktop app CEF v3.2+/Chromium v44+ crash in Win7 mode, Sony Xperia Companion 1.7.x) 39207 Battlefield 2 Demo - Crashes 39355 The Guild 2 Demo installer crashes when starting copying files 40289 winedbg --gdb fails to create process 40470 Wine builtin wordpad.exe crashes with Wine 1.6.2 (out-of-bounds array access in registry_set_filelist) 40534 Advanced SystemCare 6.4 crashes while retrieving WMI class 'Win32_PhysicalMedia' properties due to unimplemented 'ISWbemPropertySet::get_Count' method 43177 ClassicStartMenu from Classic Shell 4.3.0 crashes on unimplemented function dwmapi.127 (undocumented DwmpGetColorizationParameters) 43848 Grand Theft Auto 5 and Tomb Raider 2013 need DepthBiasClamp 44052 Multiple applications and games fail to run due to missing D2D device and device context and multiple API stubs (Temple+, DJKaty.com 'Simple2D' examples) 44355 FACEIT Desktop client crashes on startup 44912 Tibia client reports 'Failed to launch game', needs 'ntdll.RtlCreateUserProcess' implementation 45197 Project CARS 2 hangs on startup (unhandled standard multisample quality levels) 45199 Many applications and games fail to start/crash after compiling wine with gcc 8.1.0 and -O2 (GOT/PIC register load code now emitted at function entry, missing hotpatch signatures) 45659 Paint Shop Pro 2018/2019 Installer complains:`` JavaScript is disabled``, then aborts 45904 RasAero II crashes in wine-1.6.2 when button is pressed due to argument conversion exception. 45922 32-bit Black Desert Online 1.0.4.x client crashes on startup (custom imports resolver can't cope with some ucrtbase functions being forwarded to ntdll) 45932 Assassin's Creed gameplay freezes after looking around with mouse 45955 Wineconsole: font size is not scaled with system dpi settings 45971 K-Shoot Mania: Some objects aren't drawn properly. 45972 Lego Mindstorms EV3 1.3.1 installer crashes 45982 SofTalk 1.56: Exit abnormally when pressing "Play" button ("Run-time error '5': Invalid procedure call or argument") 45994 Affinity Designer crashes on unimplemented mscms.WcsEnumColorProfilesSize 45995 Affinity Designer crashes on unimplemented kernel32.MoveFileTransactedW 45996 S.T.A.L.K.E.R. Call Of Prypyat DX11 benchmark has visual artifacts 46024 Qt applications crash after call to WTOpen without tablet hardware attached ---------------------------------------------------------------- Changes since 3.18: Aaryaman Vasishta (4): d3drm/tests: Add tests for IDirect3DRMTexture*_InitFromFile(). d3drm/tests: Add tests for IDirect3DRM*_LoadTexture(). d3drm: Partially implement d3drm_texture*_InitFromFile(). d3drm: Implement d3drm*_LoadTexture(). Akihiro Sagawa (5): gdi32/tests: Add more stretch bitblt tests. gdi32: Fix negative width/height handling in stretch bitblt family. gdi32: Adjust destination coordinates in some special cases. kernel32/tests: Add LCMapString tests with a voiced consonant Hiragana character. kernel32: Fix LCMapString buffer calculation with LCMAP_KATAKANA and LCMAP_HALFWIDTH. Alex Henrie (4): winex11: Return FALSE from LoadTabletInfo if the system isn't a tablet. dwmapi: Fill in function names of documented ordinals. dwmapi: Add stub DwmpGetColorizationParameters. wintab32: Change the LoadTabletInfo failure message from ERR to TRACE. Alexandre Julliard (24): kernel32: Pass the standard process parameters structure to create_process(). kernel32: Pass the standard process parameters structure to fork_and_exec(). widl: Support generating multiple typelibs into the same resource file. ntdll: Store a copy of the environment in RtlCreateProcessParametersEx(). ntdll: Fixup size of the current directory in RtlCreateProcessParametersEx(). ntdll: Align string data in RtlCreateProcessParametersEx(). ntdll: Allocate process parameters on the heap in RtlCreateProcessParametersEx(). ntdll/tests: Add tests for RtlCreateProcessParameters(). kernel32: Move environment Unicode conversion into create_process_params(). kernel32: Get the current directory from the process parameters in create_cmd_process(). wineconsole: Set the correct font height even when no registry data is present. server: Add a separate request to exec a new process. server: Pass a process as parent to create_process(). kernel32: Separate the exec process functionality. kernel32: Get std handles from the process parameters. kernel32: Use the Unicode string length to build the argv array. kernel32: Avoid setting an empty current directory in the process params. ntdll: Implement RtlCreateUserProcess(). ntdll: Also return the SECTION_IMAGE_INFORMATION data from RtlCreateUserProcess(). ntdll: Convert PE header to 64-bit when loading a 32-bit IL-only module. ntdll: Use the default keyed event when the handle is null. ntdll: Partially implement RtlRandomEx(). kernel32: Implement CreateProcessInternalA/W. kernel32: Add CreateProcessAsUserA/W. Alistair Leslie-Hughes (9): include: Add missing XINPUT_CAPS_ defines. include: Add natupnp.idl. hnetcfg: Register NATUPnP interface. hnetcfg: Support IUPnPNAT interface. hnetcfg: Link to uuid library. hnetcfg/tests: Add IUPnPNAT interface tests. shell32: Properly fail when a data object cannot be created. hnetcfg: Add test for IProvideClassInfo interface. wine.inf: Install oledb32,msdaps to the right location for WOW64. Andrew Wesie (4): wined3d: Add sync object after query buffer issue. d3d9/tests: Regression test for query objects. wined3d: Implement D3D11_STANDARD_MULTISAMPLE_PATTERN. d3d11/tests: Add a test for D3D11_STANDARD_MULTISAMPLE_PATTERN. André Hentschel (1): gdi32: Spelling fixes in a comment. Aurimas Fišeras (1): po: Update Lithuanian translation. Brendan McGrath (1): advapi32: Don't create a WoW6432 MachineGuid. Byeong-Sik Jeon (1): gdi32: Support the gamma correction for the subpixel rendering. Daniel Ansorregui (4): d2d1: Use default NULL argument in SetBlendState call. wined3d: Store the blend factor as a struct wined3d_color. d3d11/tests: Add a blend factor test. d3d10core/tests: Add a blend factor test. Daniel Lehman (6): msxml3: Allow creating floating attributes. msxml3: Treat namespaces as floating attributes. msxml3/tests: Add some more namespaces tests. msxml3: Return URL from get_namespaceURI from attributes for MSXML6. ntdll: Implement RtlWaitOnAddress functions. kernelbase: Add WaitOnAddress functions. Dmitry Timoshkov (20): kernel32/tests: Fix compilation with PSDK. kernel32/tests: Fix a bunch of access denied errors by using a dedicated TEMP directory. kernel32/tests: Move the MoveFile test where it belongs. kernel32: MoveFile(source, source) should succeed. kernel32: MoveFile should make sure that it has the delete access to the source file. kernel32/tests: Add some tests for GetLongPathName/GetShortPathName called with a wildcard. kernel32: GetShortPathName should fail when called with a wildcard. kernel32: GetLongPathName should fail when called with a wildcard. crypt32/tests: Actually test the return value of CryptGetKeyParam. crypt32: Make I_CryptGetDefaultCryptProv hot-patchable. crypt32: Add support for exporting public key information from a 3rd party CSP. crypt32: Add support for importing public key information to a 3rd party CSP. shell32: Add bitmap resources for ids 133 and 134. crypt32/tests: Get rid of win9x specific checks. crypt32: Make it clear that LocalAlloc should return a pointer. crypt32: Forward CryptDecodeObject to CryptDecodeObjectEx. crypt32: Simplify the CertComparePublicKeyInfo implementation. crypt32: Trace entry contents in CryptInstallOIDFunctionAddress. crypt32/tests: Add more tests for CertComparePublicKeyInfo. crypt32: CertComparePublicKeyInfo should not try to decode a non-RSA public key. François Gouget (9): po: Remove spaces before '\n's. po: Remove a stray line in the Chinese (PRC) translation. hnetcfg: Add a trailing '\n' to a TRACE(). services/tests: Some spelling and duplicate word fixes. comctl32: Avoid an unneeded lstrlenW() call. crypt32/tests: Fix a typo and reword a comment. crypt32/tests: Avoid an unneeded strlen() call. winebus.sys: Avoid an unneeded strlen() call. winemenubuilder: Avoid unneeded lstrlenA() calls. Gabriel Ivăncescu (7): shell32/autocomplete: Fix handling of Return key when an auto-suggestion item is selected. shell32/autocomplete: Hide the auto-suggest listbox when ESC is pressed. shell32/autocomplete: Reset the contents of the AutoComplete listbox when hiding it. shell32/autocomplete: Hide the AutoComplete listbox when auto-suggest is turned off. shell32/autocomplete: Implement ACO_USETAB option. shell32/autocomplete: Use the optional IACList interface and IACList::Expand, if available. shell32/tests: Test when IACList::Expand gets called and with what string. Gijs Vermeulen (3): include: Add FMS* definitions. include: Add FS_FILE_ENCRYPTION definition. include: Add LOCALE_[SLOCALIZEDDISPLAYNAME|ALLOW_NEUTRAL_NAMES] definitions. Hans Leidekker (4): webservices: Add a version resource. webservices: Don't set the critical section name in the Windows build. webservices: Trace return values. webservices: Add more tests for default envelope and adressing versions. Henri Verbeet (11): wined3d: Avoid accessing the device after deactivation some more. wined3d: Validate the initial texture data before initialising the texture. wined3d: Introduce debug helpers for wined3d_bo_address structures. wined3d: Store the "buffer_object" in struct wined3d_bo_address as an UINT_PTR. wined3d: Get rid of the "format_id" parameter to buffer_init(). wined3d: Pass the wined3d_buffer_desc structure directly to buffer_init(). wined3d: Get rid of the "device" parameter to context_bind_dummy_textures(). wined3d: Introduce a separate structure for OpenGL device information. wined3d: Introduce a separate structure for OpenGL buffer information. wined3d: Move the "buffer_type_hint" field from struct wined3d_buffer to struct wined3d_buffer_gl. wined3d: Move the "buffer_object_usage" field from struct wined3d_buffer to struct wined3d_buffer_gl. Jacek Caban (21): rpcrt4: Reset assoc_group_id on associations with no active connection. rpcrt4: Try reconnecting when to server in IRpcSend on broken connection. mshtml: Try to avoid use_event_quirks in call_event_handlers if possible. jscript: Allow trailing comma in object literals. server: Use pipe_end_get_file_info for FilePipeLocalInformation implementation. server: Use pipe_end_get_file_info for FilePipeInformation implementation. server: Support NamedPipeState in FilePipeLocalInformation. rpcrt4/tests: Get rid of no longer needed win9x checks. rpcrt4: Add RpcExceptionFilter implementation. rpcrt4/tests: Add a test of client reconnecting on send failure. mshtml: Return S_OK in IHTMLDocument2::put_charset. server: Return STATUS_BUFFER_OVERFLOW in pipe_end_peek for partial reads in message mode. kernel32/tests: Add more PeekNamedPipe tests. server: Improve error handling of disconnected named pipe clients. ntdll: Set IO_STATUS_BLOCK on non-blocking NtFlushBuffersFile success. winex11.drv: Force changing lock keys state if hooks blocked keyboard input processing. server: Use server_get_file_info for all info classes not implemented on client side. server: Use default_fd_get_file_info for FileAccessInformation implementation. ntdll/tests: Add more NtQueryInformationFile tests. server: Add NtQueryInformationFile(FileIoCompletionNotificationInformation) implementation. ntdll/tests: Added more FILE_SKIP_COMPLETION_PORT_ON_SUCCESS tests. Jactry Zeng (1): kernel32: Don't check a discarded variable. Józef Kucia (5): winevulkan: Update vk.xml to 1.1.88. wined3d: Call wined3d_cs_emit_update_sub_resource() directly in wined3d_texture_create(). d3d11/tests: Add test for initial texture data. d3d10core/tests: Add test for initial texture data. d3d10core/tests: Add test for rendering to A8_UNORM texture. Kim Malmo (1): po: Update Norwegian translation. Kodama Nozomi (1): opengl32/tests: PFD_TYPE_RGBA should be in the iPixelType field, not in the flag field. Lauri Kenttä (1): po: Update Finnish translation. Louis Lenders (2): mscms: Add stub for WcsEnumColorProfilesSize. kernel32: Add stub for MoveFileTransacted{A,W}. Mark Jansen (1): shell32: Expand environment strings in ShellExecute. Matteo Bruni (1): wined3d: Invalidate shader resource bindings when blitting. Michael Müller (1): browseui: Implement PROGDLG_AUTOTIME flag for IProgressDialog. Michael Stefaniuc (19): dinput: Use the ARRAY_SIZE() macro. rpcrt4: Avoid a variable holding an ARRAY_SIZE result. rpcrt4: Use the ARRAY_SIZE() macro. rpcrt4: Use the standard ARRAY_SIZE() macro. winedump: Use the ARRAY_SIZE() macro. server: Use the ARRAY_SIZE() macro. wmc: Use the ARRAY_SIZE() macro. wrc: Use the ARRAY_SIZE() macro. dmcompos: Use the ARRAY_SIZE() macro. dmband: Use the ARRAY_SIZE() macro. dmime: Use the ARRAY_SIZE() macro. dmloader: Use the ARRAY_SIZE() macro. dmscript: Use the ARRAY_SIZE() macro. dmstyle: Use the ARRAY_SIZE() macro. dmsynth: Use the ARRAY_SIZE() macro. dmusic: Use the ARRAY_SIZE() macro. dswave: Use the ARRAY_SIZE() macro. include: Use the ARRAY_SIZE() macro in debug.h. libs/wine: Use the ARRAY_SIZE() macro. Michał Janiszewski (2): winevulkan: Remove duplicate format_string in make_vulkan. winevulkan: Print all the arguments in make_vulkan. Mingcong Bai (1): po: Update Simplified Chinese translation. Nikolay Sivov (20): comctl32/listview: Skip earlier when creating iterator for empty lists. comctl32/listview: Fix crashing in LVM_GETCOUNTPERPAGE for partially initialize lists. comctl32/listview: Simplify iterator helpers that can't fail. comctl32/tests: Remove remaining traces in ListView tests. d2d1: Return S_OK from RegisterEffectFromString(). d2d1: Return S_OK from d2d_effect_SetValue(). gdiplus: Implement GdipScalePenTransform(). dxgi: Support IID_IDXGIDevice in dxgi_adapter_CheckInterfaceSupport(). kernel32/tests: Remove workarounds for SearchPath(). kernel32/tests: Add SearchPath() test for file name with multiple extension delimiters. powrprof: Add PowerDeterminePlatformRoleEx() stub. kernel32: Add GetProcessMitigationPolicy() stub. gdiplus: Implement GdipMultiplyPenTransform(). d2d1: Implement d2d_device_context_ID2D1DeviceContext_DrawGlyphRun(). dxgi: Add IDXGIAdapter4 stub. dxgi: Add partial implementation for dxgi_adapter_GetDesc2() and dxgi_adapter_GetDesc3(). ntdll/tests: Add a test for qsort() stability. start: Try cycling through extensions if original path failed to execute. gdiplus: Implement GdipRotatePenTransform(). d2d1: Add ID2D1Factory2 stub. Piotr Caban (20): ole32: Don't pass incorrect iface pointer to StdMarshalImpl functions. ole32: Use CLSID_StdMarshal in standard marshaler. ole32: Make standard marshaler responsible for marshaling OBJREF header. ole32: Change returned size in CoGetMarshalSizeMax if object implements IMarshal. ole32/tests: Import uuid. ole32/tests: Add initial CoGetStandardMarshal tests. ole32/tests: Add standard marshaling data tests. ole32/tests: Add StdMarshal custom marshaling test. ole32/tests: Add DfMarshal custom marshaling tests. ole32/tests: Add free threaded marshaler GetUnmarshalClass tests. wbemprox: Support specifying server and namespace in WbemServices functions. wbemprox: Return NULL signature when there are no input parameters. msvcrt: Don't forward _atoi64 to ntdll. msvcrt: Don't forward _wcsupr to ntdll. msvcrt: Don't forward atol to ntdll. msvcrt: Don't forward wcscmp to ntdll. msvcrt: Don't forward wcsrchr to ntdll. msvcrt: Don't forward wcstol to ntdll. msvcrt: Don't forward strcspn to ntdll. msvcrt: Don't forward strpbrk to ntdll. Roger Zoellner (1): xaudio2: Don't return XAudio28 interface for XAudio2[0..7] objects in QueryInterface(). Sebastian Lackner (4): ntdll: Add setting FileIoCompletionNotificationInformation implementation. server: Support FILE_SKIP_COMPLETION_PORT_ON_SUCCESS on server-side asyncs. server: Support FILE_SKIP_COMPLETION_PORT_ON_SUCCESS on client-side asyncs. kernel32: Add SetFileCompletionNotificationModes implementation. Stefan Dösinger (8): ddraw/tests: Look for more messages when losing focus. wined3d: Deactivate the device before minimizing the window. wined3d: Avoid accessing the device after minimize in ddraw. ddraw/tests: Test when the device goes bad on focus loss. d3d8/tests: Test when the device goes bad on focus loss. d3d9/tests: Test when the device gets occluded during d3d9ex focus loss. d3d9/tests: Test when the device goes bad on focus loss. ddraw/tests: Test destroying ddraw in WM_KILLFOCUS. Zebediah Figura (8): rpcrt4: Discriminants can't be int3264. rpcrt4: Also clear base-type [out] pointers in client_do_args(). oleaut32: Handle VT_(U)I8 in get_type_size(). oleaut32/tests: Add some tests for marshalling base types. rpcrt4/tests: Use publicly defined NDR constants. rpcrt4/tests: Test that NdrPointerFree() doesn't free stack pointers. rpcrt4/tests: Add more tests for NdrPointerUnmarshall() and NdrPointerFree() on the server side. rpcrt4: Unmarshal into a stack pointer on the server side if possible. -- Alexandre Julliard julliard@winehq.org