1 The Wine development release 3.19 is now available.
3 What's new in this release (see below for details):
4 - Support for file I/O completion modes.
5 - WaitOnAddress synchronization primitives.
6 - Better support for 32-bit .NET binaries on 64-bit.
7 - Improved recovery on broken RPC connection.
10 The source is available from the following locations:
12 https://dl.winehq.org/wine/source/3.x/wine-3.19.tar.xz
13 http://mirrors.ibiblio.org/wine/source/3.x/wine-3.19.tar.xz
15 Binary packages for various distributions will be available from:
17 https://www.winehq.org/download
19 You will find documentation on https://www.winehq.org/documentation
21 You can also get the current source directly from the git
22 repository. Check https://www.winehq.org/git for details.
24 Wine is available thanks to the work of many people. See the file
25 AUTHORS in the distribution for the complete list.
27 ----------------------------------------------------------------
29 Bugs fixed in 3.19 (total 31):
31 26198 BrainSplode! is not rendered properly
32 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)
33 28923 utorrent 2.2.1 causes a comctl32 assert
34 34711 Terraria Server 1.2.0.x fails on startup (needs CLSID_UPnPNAT {ae1e00aa-3fd5-403c-8a27-2bbdc30cd0e1})
35 38189 Multiple applications want 'IHTMLDocument2::put_charset' implementation (Yarxi dictionary, iPed 7G 2019)
36 38422 SentriLock SentriCard utility installer 4.0.x crashes with arithmetic exception due to large input rect in 'GdipMeasureCharacterRanges'
37 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)
38 39207 Battlefield 2 Demo - Crashes
39 39355 The Guild 2 Demo installer crashes when starting copying files
40 40289 winedbg --gdb fails to create process
41 40470 Wine builtin wordpad.exe crashes with Wine 1.6.2 (out-of-bounds array access in registry_set_filelist)
42 40534 Advanced SystemCare 6.4 crashes while retrieving WMI class 'Win32_PhysicalMedia' properties due to unimplemented 'ISWbemPropertySet::get_Count' method
43 43177 ClassicStartMenu from Classic Shell 4.3.0 crashes on unimplemented function dwmapi.127 (undocumented DwmpGetColorizationParameters)
44 43848 Grand Theft Auto 5 and Tomb Raider 2013 need DepthBiasClamp
45 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)
46 44355 FACEIT Desktop client crashes on startup
47 44912 Tibia client reports 'Failed to launch game', needs 'ntdll.RtlCreateUserProcess' implementation
48 45197 Project CARS 2 hangs on startup (unhandled standard multisample quality levels)
49 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)
50 45659 Paint Shop Pro 2018/2019 Installer complains:`` JavaScript is disabled``, then aborts
51 45904 RasAero II crashes in wine-1.6.2 when button is pressed due to argument conversion exception.
52 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)
53 45932 Assassin's Creed gameplay freezes after looking around with mouse
54 45955 Wineconsole: font size is not scaled with system dpi settings
55 45971 K-Shoot Mania: Some objects aren't drawn properly.
56 45972 Lego Mindstorms EV3 1.3.1 installer crashes
57 45982 SofTalk 1.56: Exit abnormally when pressing "Play" button ("Run-time error '5': Invalid procedure call or argument")
58 45994 Affinity Designer crashes on unimplemented mscms.WcsEnumColorProfilesSize
59 45995 Affinity Designer crashes on unimplemented kernel32.MoveFileTransactedW
60 45996 S.T.A.L.K.E.R. Call Of Prypyat DX11 benchmark has visual artifacts
61 46024 Qt applications crash after call to WTOpen without tablet hardware attached
63 ----------------------------------------------------------------
67 Aaryaman Vasishta (4):
68 d3drm/tests: Add tests for IDirect3DRMTexture*_InitFromFile().
69 d3drm/tests: Add tests for IDirect3DRM*_LoadTexture().
70 d3drm: Partially implement d3drm_texture*_InitFromFile().
71 d3drm: Implement d3drm*_LoadTexture().
74 gdi32/tests: Add more stretch bitblt tests.
75 gdi32: Fix negative width/height handling in stretch bitblt family.
76 gdi32: Adjust destination coordinates in some special cases.
77 kernel32/tests: Add LCMapString tests with a voiced consonant Hiragana character.
78 kernel32: Fix LCMapString buffer calculation with LCMAP_KATAKANA and LCMAP_HALFWIDTH.
81 winex11: Return FALSE from LoadTabletInfo if the system isn't a tablet.
82 dwmapi: Fill in function names of documented ordinals.
83 dwmapi: Add stub DwmpGetColorizationParameters.
84 wintab32: Change the LoadTabletInfo failure message from ERR to TRACE.
86 Alexandre Julliard (24):
87 kernel32: Pass the standard process parameters structure to create_process().
88 kernel32: Pass the standard process parameters structure to fork_and_exec().
89 widl: Support generating multiple typelibs into the same resource file.
90 ntdll: Store a copy of the environment in RtlCreateProcessParametersEx().
91 ntdll: Fixup size of the current directory in RtlCreateProcessParametersEx().
92 ntdll: Align string data in RtlCreateProcessParametersEx().
93 ntdll: Allocate process parameters on the heap in RtlCreateProcessParametersEx().
94 ntdll/tests: Add tests for RtlCreateProcessParameters().
95 kernel32: Move environment Unicode conversion into create_process_params().
96 kernel32: Get the current directory from the process parameters in create_cmd_process().
97 wineconsole: Set the correct font height even when no registry data is present.
98 server: Add a separate request to exec a new process.
99 server: Pass a process as parent to create_process().
100 kernel32: Separate the exec process functionality.
101 kernel32: Get std handles from the process parameters.
102 kernel32: Use the Unicode string length to build the argv array.
103 kernel32: Avoid setting an empty current directory in the process params.
104 ntdll: Implement RtlCreateUserProcess().
105 ntdll: Also return the SECTION_IMAGE_INFORMATION data from RtlCreateUserProcess().
106 ntdll: Convert PE header to 64-bit when loading a 32-bit IL-only module.
107 ntdll: Use the default keyed event when the handle is null.
108 ntdll: Partially implement RtlRandomEx().
109 kernel32: Implement CreateProcessInternalA/W.
110 kernel32: Add CreateProcessAsUserA/W.
112 Alistair Leslie-Hughes (9):
113 include: Add missing XINPUT_CAPS_ defines.
114 include: Add natupnp.idl.
115 hnetcfg: Register NATUPnP interface.
116 hnetcfg: Support IUPnPNAT interface.
117 hnetcfg: Link to uuid library.
118 hnetcfg/tests: Add IUPnPNAT interface tests.
119 shell32: Properly fail when a data object cannot be created.
120 hnetcfg: Add test for IProvideClassInfo interface.
121 wine.inf: Install oledb32,msdaps to the right location for WOW64.
124 wined3d: Add sync object after query buffer issue.
125 d3d9/tests: Regression test for query objects.
126 wined3d: Implement D3D11_STANDARD_MULTISAMPLE_PATTERN.
127 d3d11/tests: Add a test for D3D11_STANDARD_MULTISAMPLE_PATTERN.
130 gdi32: Spelling fixes in a comment.
133 po: Update Lithuanian translation.
136 advapi32: Don't create a WoW6432 MachineGuid.
139 gdi32: Support the gamma correction for the subpixel rendering.
141 Daniel Ansorregui (4):
142 d2d1: Use default NULL argument in SetBlendState call.
143 wined3d: Store the blend factor as a struct wined3d_color.
144 d3d11/tests: Add a blend factor test.
145 d3d10core/tests: Add a blend factor test.
148 msxml3: Allow creating floating attributes.
149 msxml3: Treat namespaces as floating attributes.
150 msxml3/tests: Add some more namespaces tests.
151 msxml3: Return URL from get_namespaceURI from attributes for MSXML6.
152 ntdll: Implement RtlWaitOnAddress functions.
153 kernelbase: Add WaitOnAddress functions.
155 Dmitry Timoshkov (20):
156 kernel32/tests: Fix compilation with PSDK.
157 kernel32/tests: Fix a bunch of access denied errors by using a dedicated TEMP directory.
158 kernel32/tests: Move the MoveFile test where it belongs.
159 kernel32: MoveFile(source, source) should succeed.
160 kernel32: MoveFile should make sure that it has the delete access to the source file.
161 kernel32/tests: Add some tests for GetLongPathName/GetShortPathName called with a wildcard.
162 kernel32: GetShortPathName should fail when called with a wildcard.
163 kernel32: GetLongPathName should fail when called with a wildcard.
164 crypt32/tests: Actually test the return value of CryptGetKeyParam.
165 crypt32: Make I_CryptGetDefaultCryptProv hot-patchable.
166 crypt32: Add support for exporting public key information from a 3rd party CSP.
167 crypt32: Add support for importing public key information to a 3rd party CSP.
168 shell32: Add bitmap resources for ids 133 and 134.
169 crypt32/tests: Get rid of win9x specific checks.
170 crypt32: Make it clear that LocalAlloc should return a pointer.
171 crypt32: Forward CryptDecodeObject to CryptDecodeObjectEx.
172 crypt32: Simplify the CertComparePublicKeyInfo implementation.
173 crypt32: Trace entry contents in CryptInstallOIDFunctionAddress.
174 crypt32/tests: Add more tests for CertComparePublicKeyInfo.
175 crypt32: CertComparePublicKeyInfo should not try to decode a non-RSA public key.
178 po: Remove spaces before '\n's.
179 po: Remove a stray line in the Chinese (PRC) translation.
180 hnetcfg: Add a trailing '\n' to a TRACE().
181 services/tests: Some spelling and duplicate word fixes.
182 comctl32: Avoid an unneeded lstrlenW() call.
183 crypt32/tests: Fix a typo and reword a comment.
184 crypt32/tests: Avoid an unneeded strlen() call.
185 winebus.sys: Avoid an unneeded strlen() call.
186 winemenubuilder: Avoid unneeded lstrlenA() calls.
188 Gabriel Ivăncescu (7):
189 shell32/autocomplete: Fix handling of Return key when an auto-suggestion item is selected.
190 shell32/autocomplete: Hide the auto-suggest listbox when ESC is pressed.
191 shell32/autocomplete: Reset the contents of the AutoComplete listbox when hiding it.
192 shell32/autocomplete: Hide the AutoComplete listbox when auto-suggest is turned off.
193 shell32/autocomplete: Implement ACO_USETAB option.
194 shell32/autocomplete: Use the optional IACList interface and IACList::Expand, if available.
195 shell32/tests: Test when IACList::Expand gets called and with what string.
198 include: Add FMS* definitions.
199 include: Add FS_FILE_ENCRYPTION definition.
200 include: Add LOCALE_[SLOCALIZEDDISPLAYNAME|ALLOW_NEUTRAL_NAMES] definitions.
203 webservices: Add a version resource.
204 webservices: Don't set the critical section name in the Windows build.
205 webservices: Trace return values.
206 webservices: Add more tests for default envelope and adressing versions.
209 wined3d: Avoid accessing the device after deactivation some more.
210 wined3d: Validate the initial texture data before initialising the texture.
211 wined3d: Introduce debug helpers for wined3d_bo_address structures.
212 wined3d: Store the "buffer_object" in struct wined3d_bo_address as an UINT_PTR.
213 wined3d: Get rid of the "format_id" parameter to buffer_init().
214 wined3d: Pass the wined3d_buffer_desc structure directly to buffer_init().
215 wined3d: Get rid of the "device" parameter to context_bind_dummy_textures().
216 wined3d: Introduce a separate structure for OpenGL device information.
217 wined3d: Introduce a separate structure for OpenGL buffer information.
218 wined3d: Move the "buffer_type_hint" field from struct wined3d_buffer to struct wined3d_buffer_gl.
219 wined3d: Move the "buffer_object_usage" field from struct wined3d_buffer to struct wined3d_buffer_gl.
222 rpcrt4: Reset assoc_group_id on associations with no active connection.
223 rpcrt4: Try reconnecting when to server in IRpcSend on broken connection.
224 mshtml: Try to avoid use_event_quirks in call_event_handlers if possible.
225 jscript: Allow trailing comma in object literals.
226 server: Use pipe_end_get_file_info for FilePipeLocalInformation implementation.
227 server: Use pipe_end_get_file_info for FilePipeInformation implementation.
228 server: Support NamedPipeState in FilePipeLocalInformation.
229 rpcrt4/tests: Get rid of no longer needed win9x checks.
230 rpcrt4: Add RpcExceptionFilter implementation.
231 rpcrt4/tests: Add a test of client reconnecting on send failure.
232 mshtml: Return S_OK in IHTMLDocument2::put_charset.
233 server: Return STATUS_BUFFER_OVERFLOW in pipe_end_peek for partial reads in message mode.
234 kernel32/tests: Add more PeekNamedPipe tests.
235 server: Improve error handling of disconnected named pipe clients.
236 ntdll: Set IO_STATUS_BLOCK on non-blocking NtFlushBuffersFile success.
237 winex11.drv: Force changing lock keys state if hooks blocked keyboard input processing.
238 server: Use server_get_file_info for all info classes not implemented on client side.
239 server: Use default_fd_get_file_info for FileAccessInformation implementation.
240 ntdll/tests: Add more NtQueryInformationFile tests.
241 server: Add NtQueryInformationFile(FileIoCompletionNotificationInformation) implementation.
242 ntdll/tests: Added more FILE_SKIP_COMPLETION_PORT_ON_SUCCESS tests.
245 kernel32: Don't check a discarded variable.
248 winevulkan: Update vk.xml to 1.1.88.
249 wined3d: Call wined3d_cs_emit_update_sub_resource() directly in wined3d_texture_create().
250 d3d11/tests: Add test for initial texture data.
251 d3d10core/tests: Add test for initial texture data.
252 d3d10core/tests: Add test for rendering to A8_UNORM texture.
255 po: Update Norwegian translation.
258 opengl32/tests: PFD_TYPE_RGBA should be in the iPixelType field, not in the flag field.
261 po: Update Finnish translation.
264 mscms: Add stub for WcsEnumColorProfilesSize.
265 kernel32: Add stub for MoveFileTransacted{A,W}.
268 shell32: Expand environment strings in ShellExecute.
271 wined3d: Invalidate shader resource bindings when blitting.
274 browseui: Implement PROGDLG_AUTOTIME flag for IProgressDialog.
276 Michael Stefaniuc (19):
277 dinput: Use the ARRAY_SIZE() macro.
278 rpcrt4: Avoid a variable holding an ARRAY_SIZE result.
279 rpcrt4: Use the ARRAY_SIZE() macro.
280 rpcrt4: Use the standard ARRAY_SIZE() macro.
281 winedump: Use the ARRAY_SIZE() macro.
282 server: Use the ARRAY_SIZE() macro.
283 wmc: Use the ARRAY_SIZE() macro.
284 wrc: Use the ARRAY_SIZE() macro.
285 dmcompos: Use the ARRAY_SIZE() macro.
286 dmband: Use the ARRAY_SIZE() macro.
287 dmime: Use the ARRAY_SIZE() macro.
288 dmloader: Use the ARRAY_SIZE() macro.
289 dmscript: Use the ARRAY_SIZE() macro.
290 dmstyle: Use the ARRAY_SIZE() macro.
291 dmsynth: Use the ARRAY_SIZE() macro.
292 dmusic: Use the ARRAY_SIZE() macro.
293 dswave: Use the ARRAY_SIZE() macro.
294 include: Use the ARRAY_SIZE() macro in debug.h.
295 libs/wine: Use the ARRAY_SIZE() macro.
297 Michał Janiszewski (2):
298 winevulkan: Remove duplicate format_string in make_vulkan.
299 winevulkan: Print all the arguments in make_vulkan.
302 po: Update Simplified Chinese translation.
305 comctl32/listview: Skip earlier when creating iterator for empty lists.
306 comctl32/listview: Fix crashing in LVM_GETCOUNTPERPAGE for partially initialize lists.
307 comctl32/listview: Simplify iterator helpers that can't fail.
308 comctl32/tests: Remove remaining traces in ListView tests.
309 d2d1: Return S_OK from RegisterEffectFromString().
310 d2d1: Return S_OK from d2d_effect_SetValue().
311 gdiplus: Implement GdipScalePenTransform().
312 dxgi: Support IID_IDXGIDevice in dxgi_adapter_CheckInterfaceSupport().
313 kernel32/tests: Remove workarounds for SearchPath().
314 kernel32/tests: Add SearchPath() test for file name with multiple extension delimiters.
315 powrprof: Add PowerDeterminePlatformRoleEx() stub.
316 kernel32: Add GetProcessMitigationPolicy() stub.
317 gdiplus: Implement GdipMultiplyPenTransform().
318 d2d1: Implement d2d_device_context_ID2D1DeviceContext_DrawGlyphRun().
319 dxgi: Add IDXGIAdapter4 stub.
320 dxgi: Add partial implementation for dxgi_adapter_GetDesc2() and dxgi_adapter_GetDesc3().
321 ntdll/tests: Add a test for qsort() stability.
322 start: Try cycling through extensions if original path failed to execute.
323 gdiplus: Implement GdipRotatePenTransform().
324 d2d1: Add ID2D1Factory2 stub.
327 ole32: Don't pass incorrect iface pointer to StdMarshalImpl functions.
328 ole32: Use CLSID_StdMarshal in standard marshaler.
329 ole32: Make standard marshaler responsible for marshaling OBJREF header.
330 ole32: Change returned size in CoGetMarshalSizeMax if object implements IMarshal.
331 ole32/tests: Import uuid.
332 ole32/tests: Add initial CoGetStandardMarshal tests.
333 ole32/tests: Add standard marshaling data tests.
334 ole32/tests: Add StdMarshal custom marshaling test.
335 ole32/tests: Add DfMarshal custom marshaling tests.
336 ole32/tests: Add free threaded marshaler GetUnmarshalClass tests.
337 wbemprox: Support specifying server and namespace in WbemServices functions.
338 wbemprox: Return NULL signature when there are no input parameters.
339 msvcrt: Don't forward _atoi64 to ntdll.
340 msvcrt: Don't forward _wcsupr to ntdll.
341 msvcrt: Don't forward atol to ntdll.
342 msvcrt: Don't forward wcscmp to ntdll.
343 msvcrt: Don't forward wcsrchr to ntdll.
344 msvcrt: Don't forward wcstol to ntdll.
345 msvcrt: Don't forward strcspn to ntdll.
346 msvcrt: Don't forward strpbrk to ntdll.
349 xaudio2: Don't return XAudio28 interface for XAudio2[0..7] objects in QueryInterface().
351 Sebastian Lackner (4):
352 ntdll: Add setting FileIoCompletionNotificationInformation implementation.
353 server: Support FILE_SKIP_COMPLETION_PORT_ON_SUCCESS on server-side asyncs.
354 server: Support FILE_SKIP_COMPLETION_PORT_ON_SUCCESS on client-side asyncs.
355 kernel32: Add SetFileCompletionNotificationModes implementation.
358 ddraw/tests: Look for more messages when losing focus.
359 wined3d: Deactivate the device before minimizing the window.
360 wined3d: Avoid accessing the device after minimize in ddraw.
361 ddraw/tests: Test when the device goes bad on focus loss.
362 d3d8/tests: Test when the device goes bad on focus loss.
363 d3d9/tests: Test when the device gets occluded during d3d9ex focus loss.
364 d3d9/tests: Test when the device goes bad on focus loss.
365 ddraw/tests: Test destroying ddraw in WM_KILLFOCUS.
368 rpcrt4: Discriminants can't be int3264.
369 rpcrt4: Also clear base-type [out] pointers in client_do_args().
370 oleaut32: Handle VT_(U)I8 in get_type_size().
371 oleaut32/tests: Add some tests for marshalling base types.
372 rpcrt4/tests: Use publicly defined NDR constants.
373 rpcrt4/tests: Test that NdrPointerFree() doesn't free stack pointers.
374 rpcrt4/tests: Add more tests for NdrPointerUnmarshall() and NdrPointerFree() on the server side.
375 rpcrt4: Unmarshal into a stack pointer on the server side if possible.