1 The Wine development release 3.20 is now available.
3 What's new in this release (see below for details):
4 - Async interfaces and ACF files in the IDL compiler.
5 - Support for substorage transforms in MSI.
6 - RPC/COM marshalling fixes.
7 - Support for Unicode requests in WinHTTP.
8 - Shell Autocomplete optimizations.
11 The source is available from the following locations:
13 https://dl.winehq.org/wine/source/3.x/wine-3.20.tar.xz
14 http://mirrors.ibiblio.org/wine/source/3.x/wine-3.20.tar.xz
16 Binary packages for various distributions will be available from:
18 https://www.winehq.org/download
20 You will find documentation on https://www.winehq.org/documentation
22 You can also get the current source directly from the git
23 repository. Check https://www.winehq.org/git for details.
25 Wine is available thanks to the work of many people. See the file
26 AUTHORS in the distribution for the complete list.
28 ----------------------------------------------------------------
30 Bugs fixed in 3.20 (total 36):
32 8933 Extremely slow in rendering when running Jane's USAF
33 12370 AGEod's American Civil War cannot run (needs native directmusic)
34 34384 Media Browser 3 Installer doesn't see .Net 4.5 as installed (wine-mono)
35 35320 setlocale(Chinese_China.950) returns NULL
36 38066 Memento Mori (Numen: Contest of Heroes): mouse buttons don't work (needs native dinput8)
37 41269 MSI uninstaller does not clean up Registry's UpgradeCode, ProductCode
38 41356 Multiple applications and games need support for szOID_NIST_sha* OIDs in crypt32 (The Crew (Uplay), Star Wars The Old Republic, PSNow v9.0.5)
39 41419 Visio 2013 crashes with unimplemented function msvcp100.dll.?_GetCombinableSize@details@Concurrency@@YAIXZ
40 42520 Multiple Wargaming.net games crash on startup in Win7+ mode (XAudio 2.7 'IXAudio2SourceVoice::GetState' called with 'Flags' parameter, causing register corruption) (World of {Tanks, Warships})
41 42550 Photoshop CC 2017: Installation Error (needs FileAccessInformation info class)
42 43358 EVE Online crashes on startup in Win7+ mode (XAudio 2.7 'IXAudio2SourceVoice::GetState' called with 'Flags' parameter, causing %ESI or %EDI register corruption)
43 43464 Elite Dangerous Horizons fails to connect to server with CRC error
44 43570 Bravura Easy Computer Sync 1.5 crashes on startup
45 44620 `Nt{WaitFor,Release}KeyedEvent()` don't accept null handles, while Windows 7 does.
46 44759 Steam show all text with italic font when dwrite is enabled
47 45593 Wargaming.net Game Center: Installer deadlocks during download ('ntdll.RtlDeregisterWaitEx' must not synchronously wait when 'CompletionEvent' is NULL)
48 45664 64-bit BattlEye 'BEDaisy' kernel service fails in driver entry point due to missing 'ntoskrnl.exe.PsGetProcessWow64Process'
49 45665 64-bit BattlEye 'BEDaisy' kernel service fails in driver entry point due to missing 'ntoskrnl.exe.MmCopyVirtualMemory'
50 45749 Multiple Node.js based applications/installers need ntdll.NtQueryInformationFile to handle 'FileModeInformation' information class (MS Visual Studio 2017 Installer, FACEIT Anti-cheat client)
51 45796 Nvidia GeForce Now installer aborts due to missing 'advapi32.RegQueryReflectionKey' export
52 45828 Several Microsoft games bundled with Windows 7 as part of OS install crash upon exit on unimplemented function ntdll.dll.WinSqmIncrementDWORD
53 45966 Missing scrollbars in TraCFoil ribs plotting program
54 45970 Add support for browseui IProgressDialog PROGDLG_AUTOTIME flag
55 45997 iPed 7G 2019 (.NET 4.0 app) v13.0.10800 crashes with System.NotImplementedException at system.drawing.pen.ScaleTransform
56 46004 SimSig: scroll bars in Options window do not render
57 46015 Nvidia GeForce NOW crashes on unimplemented function IPHLPAPI.DLL.GetIpInterfaceTable
58 46035 dotnet sdk 2.1.403 installer crashes with unimplemented Kernel32.FindStringOrdinal
59 46040 Intel Extreme Tuning Utility v6.4 kernel driver 'iocbios2.sys' crashes on unimplemented function ntoskrnl.exe.KeSetTargetProcessorDpc
60 46057 Multiple applications want 'ntdll.NtQueryInformationToken' to support 'TokenVirtualizationEnabled' (24) info class (Blizzard Battle.net)
61 46066 GeForceNOW.exe fails to load due to missing runtime dependencies, needs 'qwave.dll' stub dll (qWAVE - Quality Windows Audio/Video Experience)
62 46076 Something goes wrong when sending unicode http request
63 46080 Multiple installers are missing title bar buttons
64 46081 Multiple installers show readonly drives with broken size
65 46084 Skype 8.33.0.50 installer crashes due to unimplemented msvcp140.dll.?_Winerror_map@std@@YAHH@Z
66 46085 Multiple ARM64 apps from Windows 10 SDK (10.0.17763.x) need 'api-ms-win-core-winrt-string-l1-1-1.dll' stub dll
67 46086 Multiple ARM64 apps from Windows 10 SDK (10.0.17763.x) need 'api-ms-win-core-processthreads-l1-1-3' stub dll
69 ----------------------------------------------------------------
74 windowscodecs/tests: Introduce PNG_COLOR_TYPE constants.
75 windowscodecs: Fix buffer overflow when generating a palette.
76 gdiplus/tests: Add more PNG color format tests.
77 gdiplus: Convert to 32bppARGB when PNG image with transparency chunk is loaded. (rebased).
78 gdiplus: Add 4bppIndexed to the list of supported formats.
81 version: Simplify null check in VerQueryValueW.
82 advapi32: Fix memory leak in QueryServiceConfig2W (Coverity).
84 Alexander Morozov (1):
85 cryptui: Partially implement CryptUIDlgSelectCertificate.
87 Alexandre Julliard (10):
88 loader: Don't add the AT_UID entries if they don't already exist.
89 explorer: Move the check for the magic root desktop to the X11 driver.
90 server: Add a helper function to allocate a hardware message.
91 user32: Add stub for GetCurrentInputMessageSource().
92 user32: Implement GetCurrentInputMessageSource().
93 user32/tests: Add tests for GetCurrentInputMessageSource().
94 winebuild: Pass the -mfpu option to the compiler/assembler.
95 winegcc: Forward the -mfpu option to winebuild.
96 mscoree/tests: Fix some uninitialized buffers.
97 makefiles: Support file-specific IDL flags.
99 Alistair Leslie-Hughes (3):
100 setupapi: Fix broken control definition.
101 ntdll: Support TokenVirtualizationEnabled in NtQueryInformationToken.
102 mfplat/tests: Use correct interface macro.
105 ntdll: Add WinSqmIncrementDWORD stub.
106 api-ms-win-core-winrt-string-l1-1-1: Add dll.
107 api-ms-win-core-processthreads-l1-1-3: Add dll.
108 api-ms-win-ntuser-sysparams-l1-1-0: Add dll.
111 po: Update Lithuanian translation.
114 ntoskrnl.exe: Add PsGetProcessWow64Process stub.
115 ntoskrnl.exe: Add MmCopyVirtualMemory stub.
118 dinput/tests: Test that the GUID is the same for Instance and Product.
119 dinput: Use the same GUID for Instance and Product.
122 gdi32: Support other settings for obtaining the default_aa_flags value.
123 gdi32: Remove the code that doesn't work as intended around FcFontList().
124 gdi32: Respect the FC_ANTIALIAS setting for the FC_RGBA_NONE case.
125 po: Update Korean translation.
126 po: Update Korean translation.
127 po: Update Korean translation.
129 Dmitry Timoshkov (13):
130 crypt32: Add CryptSetKeyIdentifierProperty stub.
131 crypt32: CryptFreeOIDFunctionAddress should not unload a registered module.
132 crypt32: Directly call I_CryptGetDefaultCryptProv to make hooking from a 3rd party CSP work.
133 crypt32: Add support for 3rd party CSPs to CertGetPublicKeyLength.
134 kernel32/tests: Add more directory change notification tests.
135 include: Add _Inout_updates_opt_z_ stub definition.
136 crypt32/tests: Add more tests for I_CryptGetDefaultCryptProv.
137 crypt32: Add support for a particular ALG_ID to I_CryptGetDefaultCryptProv.
138 crypt32: Look for the provider that supports the specified content OID in CryptMsgOpenToEncode(CMSG_HASHED).
139 server: Don't stop processing change notifications when name length is 0.
140 server: Map FILE_NOTIFY_CHANGE_LAST_ACCESS to IN_MODIFY.
141 server: Allow setting delete disposition on a read-only directory.
142 server: Track separately implicit and explicit file disposition.
145 msi: In dialogs show titlebar buttons.
146 mscoree: Add test for registration-less COM components.
147 make_specfiles: Add kernelbase for api-ms-win-core-synch-*.
148 riched20: Properly handle \0 inside rtf input.
150 Gabriel Ivăncescu (11):
151 shell32/autocomplete: Fill and display the auto-suggest listbox in a separate function.
152 shell32/autocomplete: Use a helper function to show the listbox.
153 shell32/autocomplete: Implement a cache and sort the enumerated strings for proper behavior.
154 shell32/autocomplete: Reset the enumerator when losing focus if the edit control is not visible anymore.
155 shell32/autocomplete: Reset the enumerator when the text is empty even when auto-suggest is disabled.
156 shell32/tests: Test the amount of enumerator resets for AutoComplete.
157 shell32/autocomplete: Implement ResetEnumerator.
158 shell32/tests: Add tests for ResetEnumerator.
159 include/shldisp: Add missing AUTOCOMPLETEOPTIONS constants.
160 shell32/autocomplete: Implement ACO_NOPREFIXFILTERING option.
161 shell32/autocomplete: Pass the mouse wheel to the auto-suggest listbox, if visible.
164 msvcp100: Add Concurrency::_GetCombinableSize stub.
167 webservices: Also trace return values in the URL functions.
168 webservices: Try to receive the whole message at once.
169 webservices: Add traces.
170 webservices: Increase the maximum size of the channel writer buffer.
171 webservices: Add support for UTF-8 encoded text in read_message_id.
172 webservices: Implement WsRequestReply.
173 webservices: Don't use MSG_PEEK.
174 msi: Avoid duplicate product codes in FindRelatedProducts.
175 wshom: Split the command line before passing it to ShellExecuteEx.
176 winhttp: Get rid of cookie_t.
177 winhttp: Get rid of domain_t.
178 winhttp: Get rid of task_header_t.
179 winhttp: Get rid of header_t.
180 winhttp: Get rid of send_request_t.
181 winhttp: Simplify build_request_string.
182 winhttp: Properly handle request paths with Unicode characters.
183 webservices: Use the search index to look up the union field, if available.
184 webservices: Fix handling of union fields that match noneEnumValue.
185 msi: Support substorage transforms in MsiDatabaseApplyTransform.
186 rsaenh: Fix a memory leak (Valgrind).
187 winhttp/tests: Avoid an invalid write in asynchronous mode (Valgrind).
190 wined3d: Don't bother trying to blit from discarded textures.
191 wined3d: Move the "buffer_object" field from struct wined3d_buffer to struct wined3d_buffer_gl.
192 wined3d: Introduce a separate structure for OpenGL texture information.
193 wined3d: Move the depth renderbuffers from struct wined3d_texture to struct wined3d_texture_gl.
194 wined3d: Move the multisample renderbuffers from struct wined3d_texture to struct wined3d_texture_gl.
195 wined3d: Move the OpenGL textures from struct wined3d_texture to struct wined3d_texture_gl.
196 wined3d: Move the "target" field from struct wined3d_texture to struct wined3d_texture_gl.
197 wined3d: Validate required OpenGL extensions in wined3d_texture_gl_init() instead of wined3d_texture_init().
198 wined3d: Get rid of the "desc" field in struct wined3d_buffer.
199 wined3d: Store resource bind flags in the wined3d_resource structure.
200 wined3d: Pass correct bind flags to texture creation functions.
201 wined3d: Pass correct bind flags to swapchain creation functions.
202 wined3d: Pass bind flags to wined3d_check_device_format().
203 wined3d: Pass bind flags to wined3d_get_format().
204 wined3d: Validate format capabilities against the bind flags instead of the usage flags in resource_init().
205 wined3d: Prefer bind flags over usage flags in wined3d_texture_init().
206 wined3d: Prefer bind flags over usage flags in wined3d_texture_upload_data().
207 wined3d: Prefer bind flags over usage flags in wined3d_texture_prepare_texture().
208 wined3d: Prefer bind flags over usage flags in fbo_blitter_supported().
209 wined3d: Prefer bind flags over usage flags in ffp_blit_supported().
210 wined3d: Prefer bind flags over usage flags in ffp_blitter_clear().
211 wined3d: Prefer bind flags over usage flags in texture2d_load_renderbuffer().
212 wined3d: Prefer bind flags over usage flags in texture2d_load_texture().
213 wined3d: Prefer bind flags over usage flags in texture2d_load_drawable().
214 wined3d: Prefer bind flags over usage flags in texture2d_load_sysmem().
215 wined3d: Prefer bind flags over usage flags in wined3d_device_set_rendertarget_view().
216 d3d8: Prefer bind flags over usage flags in d3d8_device_CopyRects().
217 d3d9: Prefer bind flags over usage flags in d3d9_device_StretchRect().
218 d3d9: Prefer bind flags over usage flags in d3d9_device_ColorFill().
219 wined3d: Get rid of WINED3DUSAGE_RENDERTARGET.
220 wined3d: Get rid of WINED3DUSAGE_DEPTHSTENCIL.
221 wined3d: Get rid of WINED3DUSAGE_TEXTURE.
222 d3d9/tests: Use create_window() in more tests.
223 d3d8/tests: Use create_window() in more tests.
224 d3d8/tests: Port test_lockable_backbuffer() from d3d9.
225 d3d9/tests: Test the pool and usage of surfaces created through CreateOffscreenPlainSurface().
226 ddraw: Do not set WINED3D_TEXTURE_CREATE_MAPPABLE for swapchain textures.
227 wined3d: Do not set WINED3D_TEXTURE_CREATE_GET_DC on the implicit depth/stencil texture.
228 wined3d: Update the swapchain flags on wined3d_device_reset().
229 d3d9: Set WINED3D_SWAPCHAIN_GDI_COMPATIBLE on the swapchain when required.
230 wined3d: Respect WINED3D_SWAPCHAIN_LOCKABLE_BACKBUFFER.
231 d3d9: Only set WINED3D_SWAPCHAIN_GDI_COMPATIBLE on mappable swapchains.
232 d3d9: Do not set WINED3D_TEXTURE_CREATE_MAPPABLE for swapchain textures.
233 d3d9: Translate E_INVALIDARG to D3DERR_INVALIDCALL in d3d9_surface_LockRect().
234 d3d8: Do not set WINED3D_TEXTURE_CREATE_MAPPABLE for swapchain textures.
235 d3d8: Translate E_INVALIDARG to D3DERR_INVALIDCALL in d3d8_surface_LockRect().
236 d3d9: Do not specify WINED3D_TEXTURE_CREATE_MAPPABLE in texture_init().
237 d3d9: Do not specify WINED3D_TEXTURE_CREATE_MAPPABLE in cubetexture_init().
238 d3d9: Do not specify WINED3D_TEXTURE_CREATE_MAPPABLE in d3d9_device_CreateDepthStencilSurface().
239 d3d9: Do not specify WINED3D_TEXTURE_CREATE_MAPPABLE in d3d9_device_CreateDepthStencilSurfaceEx().
242 server: Add FileModeInformation implementation.
243 server: Use requested options for device pseudo fd.
244 server: Use a separated object for each opened named pipe device file.
245 kernel32: Wait on pipe handle in ConnectNamedPipe if needed.
246 kernel32: Wait on pipe handle in TransactNamedPipe if needed.
247 ntdll: Correctly return result of blocking NtFlushBuffersFile.
248 ntdll: Use correct size when checking iosb in NtFlushBuffersFile (Coverity).
249 ntdll/tests: Add more I/O blocking and completion tests.
250 server: Introduce is_fd_overlapped() helper.
251 server: Use file mode flags in async_handoff to decide if request is blocking.
252 user32/tests: Add scrollbar subclassing tests.
253 server: Add FILE_SKIP_SET_EVENT_ON_HANDLE support.
254 ntdll: Remove no longer needed event handle from async_irp.
255 ntdll: Update debug trace.
256 widl: Add __int32 type support.
257 widl: Ignore -robust command line option.
258 widl: Check for actual function name when handling call_as attribute.
259 user32: Allow scrollbar control to store scroll info in subclassed window.
260 widl: Create type for async variant of an interface with async_uuid attribute.
261 widl: Support async interfaces in headers generation.
262 widl: Introduce for_each_iface helper and use it in write_procformatstring.
263 widl: Use for_each_iface in process_tfs.
264 widl: Use for_each_iface in get_size_procformatstring.
265 widl: Support async interfaces proxy.
266 widl: Generate async interface table.
267 widl: Make MIDL_DEFINE_GUID more compatible with midl.
268 widl: Add -acf command line option.
269 widl: Preprocess and attempt to parse provided ACF file.
270 widl: Add basic acf parser implementation.
271 widl: Write type string for serialized types.
272 widl: Write serialize function declarations in header.
273 widl: Add support for serialization functions.
276 po: Update German translation.
279 d3d11/tests: Add test for SO statistics queries.
282 po: Update Norwegian translation.
285 po: Update Finnish translation.
288 advapi32: Add stub for RegQueryReflectionKey.
289 iphlpapi: Add stub for GetIpInterfaceTable.
290 qwave: Add new stub dll.
291 ntoskrnl.exe: Add stub for KeSetTargetProcessorDpc.
294 dwrite/tests: Add a test for text format with unknown font family name.
296 Michael Stefaniuc (8):
297 winecfg: Use the ARRAY_SIZE() macro.
298 cmd: Use the ARRAY_SIZE() macro.
299 cryptui: Use the ARRAY_SIZE() macro.
300 winegstreamer: Use the ARRAY_SIZE() macro.
301 wineqtdecoder: Use the ARRAY_SIZE() macro.
302 libs/port: Avoid an ARRAY_SIZE-like macro.
303 rsaenh: Use the ARRAY_SIZE() macro and better types.
304 appwiz.cpl: Use the ARRAY_SIZE() macro.
307 d2d1/tests: Test command list resource reference.
308 msvcrt: Implement __strncnt().
309 dwrite: Release file streams when building collections.
310 comctl32/edit: Add missing message macros.
311 comctl32/edit: Handle focused cue text.
312 gdiplus/tests: Add parameter validation test for GdipGetFontCollectionFamilyCount().
313 gdiplus: Return actual code on failed attempt to add a font.
314 gdiplus: Skip failed font family when building system collection.
315 xmllite/writer: Implement WriteDocType().
316 xmllite/writer: Simplify single character writes.
317 dwrite/layout: Set default tab stop width.
318 dwrite: Update line breaking logic with Unicode 11.0.0 changes.
319 comctl32/tests: Fix Listbox test failures on some configurations.
320 user32/tests: Fix Listbox test failures on some configurations.
321 dwrite/tests: Test run bidi level too.
322 wincodecs: Implement CreateBitmapFromSourceRect().
323 wincodecs: Add support for WICBitmapNoCache in CreateBitmapFromSource() for bitmap as a source.
324 winemenubuilder: Fix encoder method argument.
326 Pierre Schweitzer (1):
327 msi: Don't consider read-only drives when enumerating volumes.
330 msvcp140: Add _Winerror_map implementation.
332 Sebastian Lackner (1):
333 xaudio2: Use assembly wrapper to call OnVoiceProcessingPassStart callback.
335 Sergio Gómez Del Real (1):
336 comctl32: Implement handling of EM_SETCUEBANNER/EM_GETCUEBANNER messages.
339 ntdll: Avoid more race conditions in RtlDeregisterWaitEx.
342 mfplat: Move IMFAttributes interface up to avoid forward declarations.
343 mfplat: Add IMFAttributes interface to IMFByteStream.
344 mfplat: Add MFCreateFile stub.
346 Zebediah Figura (29):
347 oleaut32/tests: Abort earlier if we fail to create a proxy.
348 oleaut32/tests: Add some tests for marshalling pointers.
349 oleaut32: Don't release a NULL interface in VARIANT_UserFree().
350 oleaut32/tests: Add some tests for marshalling interfaces.
351 oleaut32/tests: Add some tests for marshalling BSTRs.
352 oleaut32/tests: Add some more tests for marshalling VARIANTs.
353 rpcrt4: Add comments explaining the arguments to EmbeddedPointerUnmarshall().
354 rpcrt4: Clear allocated memory before marshalling pointers into it (Valgrind).
355 rpcrt4: Clarify local variables in PointerUnmarshall().
356 rpcrt4: Ignore fMustAlloc in PointerUnmarshall().
357 widl: Only mark simple [out] pointers as on-stack if they are [ref] pointers.
358 widl: Fix FC_ALLOCED_ON_STACK for interpreted stubs.
359 rpcrt4/tests: Add some tests for marshalling interface pointers.
360 oleaut32/tests: Add some tests for marshalling safe arrays.
361 oleaut32/tests: Add some more tests for marshalling structs.
362 widl: Correctly handle conformant arrays in clear_output_vars().
363 rpcrt4: Avoid reference leaks when unmarshalling [in, out] pointers.
364 oleaut32/tests: Add some more tests for marshalling arrays.
365 oleaut32/tests: Add some tests for marshalling public typedefs.
366 oleaut32/tests: Add a test for marshalling of floats on x86-64.
367 rpcrt4: Add a stub implementation of CreateProxyFromTypeInfo().
368 rpcrt4: Add a stub implementation of CreateStubFromTypeInfo().
369 rpcrt4: Build the typelib proxy headers.
370 rpcrt4: Build the typelib stub headers.
371 rpcrt4: Write the function header into the procedure format string.
372 rpcrt4: Write parameter signatures into the procedure format string.
373 rpcrt4: Write type format strings for pointers.
374 rpcrt4: Write type format strings for fixed arrays.
375 rpcrt4: Write type format strings for fixed structs.
378 include: Fix wrong argument attribute for IFileDialog::GetOptions.
379 comctl32/taskdialog: Fix id casting.
380 comctl32/taskdialog: Add support for TDF_ALLOW_DIALOG_CANCELLATION.
381 comctl32/taskdialog: Handle button clicks better.
382 kernel32: Implement FindStringOrdinal.
383 comctl32/pager: Support header notification conversion.