include: Introduce wine_dbgstr_fourcc and debugstr_fourcc.
[wine.git] / ANNOUNCE
blob2b5f8219bce02e3f396af1147da3c8fe9a1e7cda
1 The Wine development release 8.17 is now available.
3 What's new in this release:
4   - Bundled vkd3d upgraded to version 1.9.
5   - Initial window management in the Wayland driver.
6   - SoundFont support in DirectMusic.
7   - Various bug fixes.
9 The source is available at:
11   https://dl.winehq.org/wine/source/8.x/wine-8.17.tar.xz
13 Binary packages for various distributions will be available from:
15   https://www.winehq.org/download
17 You will find documentation on https://www.winehq.org/documentation
19 You can also get the current source directly from the git
20 repository. Check https://www.winehq.org/git for details.
22 Wine is available thanks to the work of many people. See the file
23 AUTHORS in the distribution for the complete list.
25 ----------------------------------------------------------------
27 Bugs fixed in 8.17 (total 19):
29  - #34789  MeGUI: Wrong icon for file chooser
30  - #38823  Sumatra PDF 3.0: tabs don't work correctly
31  - #43137  The Elder Scrolls: Oblivion crashes after opening logo screens.
32  - #46483  Cemu 1.12.0 crashes on unimplemented function msvcp140.dll.?_Throw_C_error@std@@YAXH@Z
33  - #48969  RageMP crashes on unimplemented function msvcp140.dll.?_Throw_future_error@std@@YAXAEBVerror_code@1@@Z
34  - #51327  GdipCreateFont initializes font with ANSI_CHARSET
35  - #54588  iphlpapi:iphlpapi - test_GetExtendedTcpTable() sometimes fails because the buffer is too small in Wine
36  - #55001  ToneX by IK Multimedia needs unimplemented function msvcp140.dll.?_Throw_C_error@std@@YAXH@Z
37  - #55184  Dwarf Fortress (Steam) crashes on unimplemented function msvcp140_atomic_wait.dll.__std_acquire_shared_mutex_for_instance
38  - #55240  The 64-bit winmm:capture & winmm:wave get BADDEVICEID on Windows 10+
39  - #55486  Finale 27 printing mangled
40  - #55522  SoftEther VPN Server Manager
41  - #55529  Text in SRPG Studio games ends with a tofu/missing character glyph.
42  - #55587  quartz:vmr9 - test_changed3ddevice() crashes on Windows 8+
43  - #55592  Separable Subsurface Scattering needs 'mov' opcode support for fx_4_0 effect
44  - #55599  Metatrader 4 - not possible to add any indicator to a chart
45  - #55614  ReCore crashes on unimplemented function msvcp110.dll.?_Winerror_map@std@@YAPEBDH@Z
46  - #55635  mfreadwrite:mfplat - test_interfaces() crashes on Windows 7 & 8
47  - #55651  d3d10:effect - test_effect_fx_4_1_blend_state() fails on Windows 7+
49 ----------------------------------------------------------------
51 Changes since 8.16:
53 Akihiro Sagawa (3):
54       cmd/tests: Add dir built-in command test.
55       cmd/tests: Test file time stamp format.
56       cmd: Always outputs leading zeros when listing file time information.
58 Alex Henrie (24):
59       include: Move RTL functions that belong in winnt.h from winternl.h to winnt.h.
60       oleaut32: Use CRT allocation functions in connpt.c.
61       oleaut32: Use CRT allocation functions in hash.c.
62       oleaut32: Use CRT allocation functions in olepicture.c.
63       oleaut32: Use CRT allocation functions in typelib.c.
64       advpack: Use CRT allocation functions.
65       gameux: Use CRT allocation functions.
66       mciwave: Use CRT allocation functions.
67       msvfw32: Use CRT allocation functions.
68       ncrypt: Use the wcsdup function instead of reimplementing it.
69       shell32: Use the wcsdup function instead of reimplementing it.
70       wshom: Use the wcsdup function instead of reimplementing it.
71       dsound: Use malloc and free instead of _recalloc.
72       conhost: Use the wcsdup function instead of reimplementing it.
73       dxdiag: Use CRT allocation functions.
74       reg: Use the wcsdup function instead of reimplementing it.
75       regedit: Use the wcsdup function instead or reimplementing it.
76       sc: Use CRT allocation functions.
77       wordpad: Use the wcsdup function instead of reimplementing it.
78       avifil32: Use CRT allocation functions.
79       wpcap: Use the strdup function instead of reimplementing it.
80       include: Move RTL functions that belong in ntddk.h from winternl.h to ntddk.h.
81       include: Correct conflicting definition of PSID.
82       include: Correct conflicting definition of PSECURITY_DESCRIPTOR.
84 Alexandre Julliard (26):
85       winebuild: Add a separate helper for .seh annotations.
86       winebuild: Remove unnecessary .cfi_startproc/endproc annotations.
87       winebuild: Add a few more SEH annotations.
88       winebuild: Make the syscall thunks position-independent on ARM64.
89       oleaut32: Add SEH annotations to ARM64 assembly code.
90       rpcrt4: Add SEH annotations to ARM64 assembly code.
91       vcomp: Add SEH annotations to ARM64 assembly code.
92       ntdll: Remove unneeded SEH annotations in Unix code.
93       kernel32/tests: Comment out one more test that can crash on Windows.
94       kernel32/tests: Don't make assumptions about argv[0] of the main process.
95       kernel32/tests: Unaligned SRW locks crash on ARM platforms.
96       kernel32/tests: Update dll characteristics to make the module loadable on ARM64.
97       vkd3d: Import upstream release 1.9.
98       server: Don't zero out the PE optional header regardless of specified size.
99       winedump: Don't zero out the PE optional header regardless of specified size.
100       ntdll: Consistently use the IMAGE_FIRST_SECTION helper macro.
101       dbghelp: Consistently use the IMAGE_FIRST_SECTION helper macro.
102       imagehlp: Use the IMAGE_FIRST_SECTION helper macro.
103       krnl386: Use the IMAGE_FIRST_SECTION helper macro.
104       widl: Use the IMAGE_FIRST_SECTION helper macro.
105       kernel32/tests: Fix loader tests on Windows ARM64.
106       winebuild: Set ASLR-related dll flags by default.
107       server: Require ASLR support on non-x86 platforms.
108       ntdll: Release the low address space reservation for 64-bit apps.
109       ntdll: Don't release the low address space reservation on wow64.
110       ntdll: Don't free reserved memory on 64-bit macOS.
112 Alexandros Frantzis (7):
113       winewayland.drv: Remove wayland_surface destruction double locking.
114       winewayland.drv: Handle xdg_toplevel close event.
115       winewayland.drv: Handle xdg_toplevel configure event size hint.
116       winewayland.drv: Handle xdg_toplevel maximized state.
117       winewayland.drv: Handle client-initiated user-driven window move.
118       winewayland.drv: Handle client-initiated user-driven window resize.
119       winewayland.drv: Fix removal of wl_seat globals.
121 Alistair Leslie-Hughes (9):
122       mfreadwrite/reader: Update to IMFSourceReaderEx.
123       d3drm: Correctly query for the returned interface.
124       msado15: Recordset::Open - Correctly update count/index values.
125       mfreadwrite/tests: Move test_interfaces after test_factory.
126       msado15: _Recordset::Filter set index on value.
127       d3dx9: Trace pointer value in D3DXValidMesh().
128       msado15: Implement _Recordset::get_ActiveConnection.
129       msado15: _Recordset::Open store active connection parameter.
130       msado15: Update editMode in AddNew/Cancel/Update functions.
132 Ally Sommers (2):
133       server: Return WSAEOPNOTSUPP on listen() if the socket's type is SOCK_DGRAM.
134       ws2_32/tests: Add more tests for SO_REUSEADDR.
136 Andrew Brobston (1):
137       d2d1: Support GUID_WICPixelFormat32bppRGB.
139 Bartosz Kosiorek (1):
140       gdiplus/tests: Add tests of InterpolationMode Bilinear for GdipDrawImagePointsRect.
142 Biswapriyo Nath (19):
143       include: Add ID3D12VideoDecoder in d3d12video.idl.
144       include: Add ID3D12VideoDevice in d3d12video.idl.
145       include: Add ID3D12VideoDecoderHeap in d3d12video.idl.
146       include: Add ID3D12VideoDecodeCommandList in d3d12video.idl.
147       include: Add video decode profile guids in d3d12video.idl.
148       include: Add D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT in d3d12video.idl.
149       include: Add ID3D12VideoDevice1 in d3d12video.idl.
150       include: Add ID3D12VideoExtensionCommand in d3d12video.idl.
151       include: Add ID3D12VideoDevice2 in d3d12video.idl.
152       include: Add ID3D12VideoEncoder in d3d12video.idl.
153       include: Add ID3D12VideoEncoderHeap in d3d12video.idl.
154       include: Add ID3D12VideoDevice3 in d3d12video.idl.
155       include: Add ID3D12VideoMotionEstimator in d3d12video.idl.
156       include: Add ID3D12VideoMotionVectorHeap in d3d12video.idl.
157       include: Add ID3D12VideoEncodeCommandList in d3d12video.idl.
158       include: Add ID3D12VideoDecodeCommandList1 in d3d12video.idl.
159       include: Add ID3D12VideoEncodeCommandList1 in d3d12video.idl.
160       include: Add ID3D12VideoEncodeCommandList2 in d3d12video.idl.
161       include: Add some structures in d3d12video.idl.
163 Brendan Shanks (3):
164       winecoreaudio: Stop using the deprecated kAudioObjectPropertyElementMaster constant.
165       winecoreaudio: Use os_unfair_lock when available instead of OSSpinLock.
166       msv1_0: Implement ntlm_fork() using posix_spawn().
168 Connor McAdams (21):
169       uiautomationcore: Add UiaHasServerSideProvider stub.
170       uiautomationcore: Add a common helper function for creating HUIANODEs.
171       uiautomationcore: Implement UiaHasServerSideProvider.
172       include: Add missing WinEvent definitions.
173       uiautomationcore/tests: Add method expect definitions for all Accessible test interfaces.
174       uiautomationcore/tests: Add support for debug printing Accessible method calls.
175       uiautomationcore/tests: Add support for debug printing Provider method calls.
176       uiautomationcore: Add stub IRawElementProviderFragmentRoot implementation for MSAA providers.
177       uiautomationcore: Add a common helper function for querying IServiceProvider on IAccessible interfaces.
178       uiautomationcore: Implement IRawElementProviderFragment::get_FragmentRoot for MSAA providers.
179       uiautomationcore: Don't return oleacc proxy IAccessibles from GetIAccessible for MSAA providers.
180       uiautomationcore/tests: Increase wait timeout for cross-process event with navigation.
181       uiautomationcore: Pass through failure HRESULTS on MSAA accState based property IDs for MSAA providers.
182       uiautomationcore: Implement IRawElementProviderFragmentRoot::GetFocus for MSAA providers.
183       uiautomationcore: Add stub IProxyProviderWinEventHandler implementation for MSAA providers.
184       uiautomationcore: Handle EVENT_SYSTEM_ALERT in IProxyProviderWinEventHandler::RespondToWinEvent() for MSAA providers.
185       uiautomationcore/tests: Add tests for IProxyProviderWinEventHandler based MSAA to UIA event bridging.
186       uiautomationcore: Check providers for an IProxyProviderWinEventHandler interface when attaching events.
187       uiautomationcore: Add WinEvent hook on the UIA event thread.
188       uiautomationcore: Track HWNDs that need WinEvent translation.
189       uiautomationcore: Make sure event thread is started when listening for WinEvents.
191 Eric Pouech (3):
192       dbghelp: Check that dwarf unwinder did actually unwind.
193       ntdll: Allow empty application nodes in actctx.
194       winedump: Improve dumping DEBUG directory entries in PE images.
196 Esme Povirk (4):
197       user32/tests: Account for some messages from dual-monitor setups.
198       user32/tests: Fix WM_WINDOWPOSCHANGED entries.
199       user32/tests: Use a child window for test_PeekMessage3.
200       user32/tests: Use open_clipboard helper in msg tests.
202 François Gouget (1):
203       tests: Update the documentation.
205 Gabriel Ivăncescu (22):
206       mshtml: Move some Element methods around.
207       mshtml: Move some AnchorElement methods up.
208       mshtml: Move some AreaElement methods up.
209       mshtml: Move some FormElement methods up.
210       mshtml: Move some FrameElement methods down.
211       mshtml: Move some IFrame methods down.
212       mshtml: Move some ObjectElement methods up.
213       mshtml: Move some SelectElement methods up.
214       mshtml: Move node vtbl QI methods around.
215       mshtml: Move node vtbl destructor methods down.
216       mshtml: Get rid of useless element destructors.
217       mshtml: Use specific dispex vtbls for remaining HTML elements.
218       mshtml: Use specific dispex for each SVG element.
219       mshtml: Use the dispex's query_interface for DocumentType nodes.
220       mshtml: Use the dispex's query_interface for Document nodes and fragments.
221       mshtml: Use the dispex's query_interface for DOMTextNodes.
222       mshtml: Use the dispex's query_interface for the remaining nodes.
223       mshtml: Use the dispex's destructor for all nodes.
224       mshtml: Use the dispex's get_dispid for all nodes.
225       mshtml: Use the dispex's get_name for all nodes.
226       mshtml: Use the dispex's invoke for all nodes.
227       mshtml: Use the event_target vtbl's handle_event for all nodes.
229 Hans Leidekker (6):
230       winmm/tests: Avoid truncating the handle passed to waveInGetDevCapsW().
231       wbemprox: Get Win32_OperatingSystem.BuildType from the registry.
232       wbemprox: Fix Win32_OperatingSystem.TotalVirtual/VisibleMemorySize.
233       wbemprox: Implement Win32_OperatingSystem.InstallDate.
234       systeminfo: Add an implementation on top of WMI.
235       secur32: Only return success from initialize_package() when initialization fully succeeds.
237 Henri Verbeet (2):
238       wined3d: Don't validate the frontbuffer's DRAWABLE location in wined3d_swapchain_resize_buffers() when NO3D is set.
239       d3d11/tests: Properly mark the indexed sample position test as succeeding with the Vulkan backend.
241 Huw D. M. Davies (1):
242       gdiplus: Copy the compound array in GdipClonePen().
244 Jacek Caban (4):
245       mshtml: Remove unused functions.
246       include: Support ARM64EC target in intrin.h.
247       include: Move __getReg intrinsic to intrin.h.
248       include: Support ARM64EC target in winnt.h.
250 Jactry Zeng (5):
251       msi: Use CreateFileW() for handling path from cabinet_open() instead.
252       cabinet/tests: Initialize CURR_DIR globally.
253       msxml3: Store ValidateOnParse property in domdoc_properties instead.
254       msxml3: Add ValidateOnParse support for IXMLDOMDocument3_{get,set}Property().
255       msxml3/tests: Add tests of ValidateOnParse property.
257 Jeff Smith (2):
258       gdiplus/tests: Test GdipCreateFont character set initialization.
259       gdiplus: Fix GdipCreateFont character set initialization.
261 Jinoh Kang (1):
262       wbemprox: Fix out-of-bounds access caused by codepoints above U+00FF.
264 Joel Holdsworth (6):
265       include: Add flags to FILE_RENAME_INFORMATION used by FileRenameInformationEx.
266       ntdll/tests: Test both FileRenameInformation and FileRenameInformationEx in test_file_rename_information.
267       include: Add flags to FILE_LINK_INFORMATION used by FileLinkInformationEx.
268       ntdll/tests: Test both FileLinkInformation and FileLinkInformationEx in test_file_link_information.
269       ntdll/tests: Skip FileRenameInformationEx tests on older Windows versions.
270       ntdll/tests: Skip FileLinkInformationEx tests on older Windows versions.
272 Martin Storsjö (2):
273       include: Update the d3d12 headers from vkd3d.
274       include: Update the d3d12 header from vkd3d.
276 Mohamad Al-Jaf (7):
277       windows.applicationmodel: Add IPackageStatics stub interface.
278       windows.applicationmodel: Implement IPackageStatics::get_Current().
279       windows.applicationmodel: Implement IPackage::get_InstalledLocation().
280       windows.applicationmodel: Add IStorageItem stub interface.
281       windows.applicationmodel/tests: Add IStorageItem::get_Path() tests.
282       windows.applicationmodel: Implement IStorageItem::get_Path().
283       windows.applicationmodel/tests: Use PathRemoveFileSpecW() instead of PathCchRemoveFileSpec().
285 Nikolay Sivov (6):
286       d3d10/effect: Implement 'mov' opcode for expressions.
287       d3d10/effect: Implement instructions used for signed integer division.
288       d3d10/effect: Add signed integer compare instructions for expressions.
289       d3d10/tests: Add some tests for D3D10.1 blend state in effects.
290       d3dcompiler: Add support for matrix majority compiler flags.
291       d3d10/tests: Test for correct return value.
293 Paul Gofman (7):
294       mf/tests: Add tests for AAC decoder with different input number of channels.
295       winegstreamer: Handle missing or zero channel count in _GetOutputAvailableType in AAC decoder.
296       winegstreamer: Correct output available types attrs in AAC decoder for channel count > 2.
297       winegstreamer: Validate maximum channel count in _SetInputType in AAC decoder.
298       winegstreamer: Also return output with 2 channels for multichannel inputs from AAC decoder.
299       shell32: Avoid stack corruption with long name in SHELL_TryAppPathW().
300       shell32: Handle long command line in execute_from_key().
302 Piotr Caban (7):
303       msvcp110: Add _Winerror_map implementation.
304       msvcr110: Simplify _StructuredTaskCollection finished task counter updating.
305       msvcr110: Use Context blocking functions in _StructuredTaskCollection class.
306       msvcp140_atomic_wait: Add __std_acquire_shared_mutex_for_instance implementation.
307       wineps.drv: Remove unused hmtx_tab field from TYPE42 structure.
308       wineps.drv: Don't crash if specified font is missing required table in T42_download_header.
309       msvcp90: Silence FIXME in _Locinfo::_Locinfo_ctor and _Locinfo::_Locinfo_Addcats functions.
311 Rémi Bernon (74):
312       dmusic: Avoid swallowing collection Load failures.
313       dmusic: Rewrite downloading instrument to port.
314       dmusic: Parse collection wave table.
315       dmusic: Parse collection wave lists.
316       dmusic: Keep an internal ref on the instrument's collection.
317       dmusic: Implement downloading wave to port.
318       dmusic: Parse instrument regions articulation lists.
319       dmusic: Implement instrument articulation downloads.
320       dmime/tests: Test that SendPMsg also converts reference time.
321       dmime: Convert DMUS_PMSG music and reference times in SendPMsg.
322       dmime: Get rid of the DMUS_PMSGItem typedef.
323       dmime: Use a struct list to keep performance messages.
324       dmime: Remove unnecessary struct message members.
325       dmime: Rename DMUS_PMSGToItem to message_from_DMUS_PMSG.
326       dmime: Pass the DMUS_PMSG through the performance graph.
327       dmband: Rename IDirectMusicBandImpl prefix to band.
328       dmband: Get rid of the IDirectMusicBandImpl typedef.
329       dmband: Get rid of the IDirectMusicBandTrack typedef.
330       dmband: Avoid leaking bands on band track Release.
331       dmband: Avoid leaking collection on band release.
332       dmband: Rewrite band lbin list parsing.
333       dmband: Rewrite band lbil list parsing.
334       dmband: Rewrite band dmbd chunk parsing.
335       dmband: Rewrite band IPersistStream_Load.
336       dmime: Rename IDirectMusicSegment8Impl method prefix to segment.
337       dmime: Use one-liners for segment parameter checks.
338       dmime: Get rid of the IDirectMusicSegmentImpl typedef.
339       dmime: Avoid leaking tracks in IDirectMusicSegment_Release.
340       dmime: Rewrite segment IDirectMusicSegment_GetTrack.
341       dmime: Rewrite segment IDirectMusicSegment_GetTrackGroup.
342       dmime: Rewrite segment IDirectMusicSegment_InsertTrack.
343       dmime: Rewrite segment IDirectMusicSegment_RemoveTrack.
344       dmime: Use segment_append_track in Clone and parse_track_form.
345       dmime/tests: Add some DMUS_NOTIFICATION_PMSG tests.
346       dmime/tests: Test wave segments and DMUS_WAVE_PMSG.
347       dmime/tests: Test sequence track and DMUS_NOTE_PMSG.
348       dmime/tests: Test band track and DMUS_PATCH_PMSG.
349       dmusic/tests: Fixup chunk alignment in steam_end_chunk.
350       dmusic: Keep the original instrument patch in the entry.
351       dmband: Rewrite band track lbdl/lbnd lists parsing.
352       dmband: Rewrite band track DBMT chunk parsing.
353       dmband: Rewrite band track IPersistStream_Load.
354       dmime: Get rid of the IDirectMusicSeqTrack typedef.
355       dmime: Implement DirectMusicSeqTrack IPersistStream_Load.
356       dmloader: Rename IDirectMusicLoaderImpl method prefix to loader.
357       dmloader: Get rid of the IDirectMusicLoaderImpl typedef.
358       dmloader: Initialize ref to 1, and release after QueryInterface.
359       dmloader: Introduce a new loader_stream_create helper.
360       dmloader: Get rid of the custom generic stream wrapper.
361       dmime/tests: Remove some duplicated tests.
362       dmime/tests: Move performance tests into dmime.c.
363       dmime/tests: Test performance Init with a created port.
364       dmime: Set the port direct sound before activating it.
365       dmime: Initialize performance in Init rather than InitAudio.
366       dmime: Return DMUS_E_AUDIOPATHS_IN_USE when audio paths are in use.
367       dmime: Return DMUS_E_AUDIOPATH_INACTIVE when audio paths are not enabled.
368       dmloader: Use a simpler file stream implementation.
369       dmusic/tests: Test default gm.dls sound font instruments.
370       dmloader: Remove invalid default DLS collection check.
371       dmloader: Add fallbacks if the configured GMFilePath doesn't exist.
372       dmusic: Avoid leaking articulations when freeing regions.
373       dmusic: Avoid crashing in traces if wave doesn't have a WSMPL.
374       dmusic: Implement SoundFont2 collection parsing.
375       dmusic: Implement SoundFont2 wave sample parsing.
376       dmusic: Implement SoundFont2 instrument parsing.
377       dmime/tests: Add some tests for GUID_ConnectToDLSCollection.
378       dmime/tests: Test segment state and playing a custom track.
379       dmime: Implement IDirectMusicSegment_SetParam.
380       dmband: Implement band track GUID_ConnectToDLSCollection parameter.
381       dmime: Implement IDirectMusicSegment_(Download|Unload).
382       dmband: Implement IDirectMusicBand_(Download|Unload).
383       dmband: Implement band track GUID_UnloadFromAudioPath parameter.
384       dmband: Implement band track GUID_DownloadToAudioPath parameter.
385       dmime: Implement IDirectMusicPerformance_DownloadInstrument.
387 Yuxuan Shui (4):
388       gdi32: Make GetStockObject hotpatchable.
389       user32: Make CallWindowProcA hotpatchable.
390       user32: Add hotpatchable wrapper for GetWindowLongA.
391       rtworkq: Fix leak of thread pool work items.
393 Zebediah Figura (5):
394       wined3d: Pass a wined3d_stateblock_state to wined3d_device_validate_device().
395       d3d10core/tests: Test performing a full clear after a draw.
396       wined3d: Remove invalid parameter checks from internal wined3d_device_set_*() functions.
397       wined3d: Make wined3d_stateblock_state_{init,cleanup}() static.
398       wined3d: Move struct wined3d_stateblock into stateblock.c.
400 Zhiyi Zhang (2):
401       user32/tests: Fix test failures in Hindi UTF-8 and mixed locales.
402       user32: Enable IsDialogMessageA() ASCII to Unicode mapping only when the user default lang ID is CJK.