The Wine development release 7.16 is now available. What's new in this release: - Wow64 support in X11 driver. - Session storage in MSHTML. - Unicode regexp fixes in MSXML. - IME improvements in Edit control. - Various bug fixes. The source is available at: https://dl.winehq.org/wine/source/7.x/wine-7.16.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 7.16 (total 20): - #29685 Manifest generator (ecmangen) tool from Windows Platform SDK 7.1 crashes due to unhandled facet/regular expression in XML schema (escape sequence) - #42857 Can't select a fixture in FreeStyler's fixture editor - #43581 Microsoft Office 365 edition of Office 2013 installer fails with 'cache_entry_from_xsd_doc failed to parse doc' (non-standard '\u####' sequence) - #46083 postgresql: "Unable to write inside TEMP environment variable path" - #51601 Metal Gear Solid V: The Phantom Pain stucks on first chapter intro - #52329 amazon games app crashes in wine 7.0 rc-3 (winsock?) - #52657 Watch Dogs crashes on start - #53174 StarCitizen launcher freeze due to heap space issue - #53424 Scroll bar not working. was with up to 7.12? - #53462 Obduction audio and subtitles for videos don't work - #53468 Ragnarok Online's anti-cheat, Gepard, detecting macro usage (false-positive) - #53472 Kerberos auth broken since 7.10 - #53497 d3d8:device & d3d8:device - test_resource_access() crashes in Wine - #53542 Hog4PC 3.17 installer VBScript custom action needs IWshShell::Run to return signed type. - #53545 Visual Novel Doukyuusei sound loop - #53565 postgresql installer 9.3 needs support for default style argument in WshShell.Run - #53566 Wine uninstaller fails to launch - #53569 postgresql installer 9.3 needs correct string length returned from fso.GetTempName - #53587 comctl32 GetWindowSubclass crash in Notepad++ (v8.4.3 and 8.4.4 only) - #53589 Saints Row (2022) crashes on unimplemented function kernel32.dll.SetProcessDefaultCpuSets ---------------------------------------------------------------- Changes since 7.15: Akihiro Sagawa (7): mciqtz32: Don't stretch video destination for a popup or child window. winmm/tests: Add MCI_DGV_WINDOW_STATE tests. mciqtz32: Fix MCI_DGV_WINDOW_STATE behavior. winmm/tests: Add MCI_DGV_WINDOW_TEXT tests. mciqtz32: Fix MCI_DGV_WINDOW_TEXT behavior. winmm/tests: Add more MCI_DGV_WINDOW_HWND tests. mciqtz32: Fix MCI_DGV_WINDOW_HWND error handling. Alexandre Julliard (9): winetest: Use CRT allocation functions. winetest: Support loading the list of tests from a file. winetest: Disable the crash dialog in non-interactive mode. winetest: Exit with error 3 when there are test failures. mountmgr: Don't crash if connecting to dbus fails. xslt: Import upstream release 1.1.36. xml2: Import upstream release 2.10.0. comctl32/tests: Use client coordinates for right click test. gitlab: Add macOS build. Alistair Leslie-Hughes (2): dsdmo: Add Echo FX Support. dsdmo: Add Compressor FX Support. André Zwing (1): wow64: Fix the ARM32 machine type. Aurimas Fišeras (1): po: Update Lithuanian translation. Brendan Shanks (2): shell32/tests: Test ExtractIcon() with an empty/invalid path. shell32: Return NULL from ExtractIcon() for all error cases. Davide Beatrici (18): winealsa: Drop "alsa_" prefix in unixlib enum, apply it to the functions instead. winealsa: Move common unixlib.h content into mmdevapi. mmdevapi: Integrate winepulse's additions in unixlib.h. winealsa: Fix WoW64 failure when calling get_position(). mmdevapi/tests: Fix fail messages referencing GetChannelCount() instead of GetChannelVolume(). mmdevapi/tests: Distinguish GetChannelCount() calls in test_volume_dependence() fail messages. mmdevapi/tests: Fix typos in spatial audio fail messages. mmdevapi/tests: Fix fail message referencing "Start" instead of "Stop" in test_session(). winepulse: Adapt "endpoint" struct to mmdevapi's. winepulse: Adapt "create_stream_params" struct to mmdevapi's. winepulse: Adapt "release_stream_params" struct to mmdevapi's. winepulse: Adapt "release_render_buffer_params" struct to mmdevapi's. winepulse: Adapt "get_capture_buffer_params" struct to mmdevapi's. winepulse: Adapt "get_mix_format_params" struct to mmdevapi's. winepulse: Adapt "get_device_period_params" struct to mmdevapi's. winepulse: Adapt "is_started_params" struct to mmdevapi's. winepulse: Adapt "get_prop_value_params" struct to mmdevapi's. winepulse: Switch to mmdevapi's unixlib.h. Etaash Mathamsetty (2): ntoskrnl.exe: Implement KeAreAllApcsDisabled. ntoskrnl: Implement IoCreateFileEx. Floris Renaud (1): po: Update Dutch translation. Gabriel Ivăncescu (16): jscript: Implement fdexNameCaseInsensitive flag handling. mshtml: Handle S_FALSE from IUri methods in localStorage and sessionStorage. mshtml: Handle S_FALSE from IUri methods in Anchor Elements. mshtml: Handle S_FALSE from IUri methods when checking targetOrigin. mshtml: Don't navigate if GetDisplayUri failed. mshtml: Handle S_FALSE from IUri methods when navigating. mshtml: Handle S_FALSE from IUri methods in the NSAPI interfaces. mshtml: Handle S_FALSE return values from IUri methods. mshtml: Implement setItem() for sessionStorage. mshtml: Implement getItem() for sessionStorage. mshtml: Implement removeItem() for sessionStorage. mshtml: Implement clear() for Storage. mshtml: Implement key() for sessionStorage. mshtml: Implement key() for localStorage. mshtml: Implement length prop for Storage. mshtml: Implement remainingSpace prop for sessionStorage. Gijs Vermeulen (1): kernel32: Add SetProcessDefaultCpuSets stub. Hans Leidekker (3): hnetcfg: Add INetFwRule stub. hnetcfg: Return success from netfw_rules_Add() and netfw_rules_Remove(). bcrypt: Support ECDH_P384 key import/export. Henri Verbeet (1): mfreadwrite/reader: Only attempt to copy sample buffers from responses with non-NULL samples. Huw D. M. Davies (2): maintainers: Remove advice about Cc'ing patches. wow64: Fix another ARM32 machine type. Jacek Caban (39): win32u: Move more logic from dispatch_win_proc_params. win32u: Use a separate helper to send messages from win32u. win32u: Pack messages sent directly from win32u. user32: Pass window name as UNICODE_STRING to NtUserCreateWindowEx. win32u: Use send_message_timeout for WM_CREATE and WM_NCCREATE. win32u: Remove no longer needed unicode call_hooks argument. wow64win: Implement wow64_NtUserCallWinProc. wow64win: Implement wow64_NtUserMessageCall. user32: Always use original parameter values in dispatch_send_message. win32u: Use a client copy of windows hook lparam when calling hook procs. wow64win: Implement NtUserCallWindowsHook thunk. wow64win: Implement more user callbacks. wow64win: Fix NtUserGetMouseMovePointsEx thunk. wow64win: Return class atom from NtUserGetClassInfoEx thunk. wow64win: Fix NtUserGetClipboardData thunk. wow64win: Fix returning strings in NtUserGetIconInfo thunk. wow64win: Fix NtUserGetMenuBarInfo thunk. wow64win: Fix handling NULL input32 in NtUserSendInput. wow64win: Support GCLP_MENUNAME in NtUserSetClassLongPtr thunk. wow64win: Fix NtUserThunkedMenuItemInfo thunk. wow64win: Fix output handling in NtUserTrackMouseEvent thunk. wow64win: Use in-place conversion in NtUserDrawText thunk. wow64win: Use LongToHandle for user handles conversion. user32: Move dialog proc getting implementation from win32u. user32: Move dialog proc setting implementation from win32u. win32u: Fix handling uninitialized process_layout. wow64win: Fix NtGdiDdDDICreateDevice thunk. win32u: Move process initialization to NtUserInitializeClientPfnArrays. winex11: Implement wow64 thunks. user32: Support resource ID strings in CREATESTRUCT Unicode conversion. user32: Support passing bitmap and icon resource ID as a string when creating static control. user32: Pass resource ID as a string in DIALOG_CreateControls32. user32: Remove no longer used DPI functions. win32u: Move NtUserLogicalToPerMonitorDPIPhysicalPoint implementation from user32. win32u: Move NtUserPerMonitorDPIPhysicalToLogicalPoint implementation from user32. win32u: Introduce NtUserActivateOtherWindow. user32: Remove no longer user get_hwnd_message_parent. user32: Merge win.h into user_private.h. user32: Build with nameless structs and unions. Jakub Staroń (1): ntdll: Implement RtlRestoreContext on i386. Jiajin Cui (2): win32u: Ensure that either the primary or secondary name is in English. win32u: Don't allow a replaced font to be a replacement. Jinoh Kang (3): server: Use POLLIN instead of POLLPRI if the socket is in oobinline mode. server: Use check_fd_events() instead of calling poll() directly. server: Always prefer synchronous I/O in nonblocking mode. Konstantin Romanov (1): kerberos: Fix condition for create_context_handle in kerberos_SpInitLsaModeContext and kerberos_SpAcceptLsaModeContext. Loïc Rebmeister (1): wintypes: Add RoResolveNamespace stub. Martin Storsjö (3): configure: Downgrade -Wincompatible-function-pointer-types to a warning on ARM. vkd3d: Fix the signature of vkd3d_spirv_build_op_type_image. bcrypt: Fix the non-PE build after ECDH_P384 was added. Matteo Bruni (1): wined3d: Introduce WINED3DUSAGE_MANAGED. Nikolay Sivov (27): mfplat: Implement Write() for file streams. mfsrcsnk: Add a stub dll. mfsrcsnk/wave: Add a sink stub. mfsrcsnk/wave: Add clock state callbacks. mfsrcsnk/wave: Store media format structure. mfsrcsnk/wave: Implement sample processing. mfsrcsnk: Add WAVE sink class factory. mfsrcsnk/wave: Add a type handler stub. mfreadwrite/writer: Make sure output pointer is initialized. mfreadwrite/writer: Implement AddStream(). mfreadwrite/writer: Partially implement BeginWriting(). mfreadwrite/writer: Start presentation clock on BeginWrite(). mfreadwrite/writer: Implement GetServiceForStream(). mfreadwrite/writer: Notify encoder on BeginWriting(). mfreadwrite/writer: Update some stats counters on WriteSample(). mfreadwrite/writer: Update some stats on MEStreamSinkRequestSample. mfreadwrite/writer: Add sample/marker queue for each stream. mfreadwrite/writer: Reference user callback. mfreadwrite/writer: Implement PlaceMarker(). mfreadwrite/writer: Implement Flush(). evr: Add IMFGetService stub. evr: Add IMFVideoRenderer stub to the filter. evr: Implement lazy initialization with mixer and presenter instances. evr/tests: Add a test to show that IMFVideoDisplayControl is accessible. mfplat/tests: Add some tests for legacy media type conersion functions. mfplat: Partially implement MFInitMediaTypeFromVideoInfoHeader(). mfplat: Partially implement MFInitMediaTypeFromAMMediaType(). Paul Gofman (3): ddraw/tests: Add more tests for restoring complex surfaces. ddraw: Restore full complex attachment chain in ddraw_surface7_Restore(). winex11.drv: Set correct cursor when setting cursor from another thread. Piotr Caban (9): msvcp60: Use 'MultiByteToWideChar' in __Fiopen implementation. msvcp90: Use 'MultiByteToWideChar' in _Fiopen implementation. winspool.drv: Ignore device name if printer handle is passed in DocumentProperties. winspool.drv: Fix get_config_module when printer and driver names differ. include: Update ddk/compstui.h header. compstui: Add partial CommonPropertySheetUIW implementation. compstui: Add CommonPropertySheetUI tests. msvcp71: Use MultiByteToWideChar in _Fiopen implementation. msvcr100: Set scheduler in tasks created with ScheduleTask function. Robert Wilhelm (8): wshom: Use signed type for property ProcessID in IWshExec. wshom: Use signed type for property ExitCode in IWshExec. wshom: Add test for default style arg in WshShell3_Run. wshom: Support default style argument in IWshShell3::Run. scrrun: Add test for correct string length returned from GetTempName. scrrun: Correct string length returned from GetTempName. scrrun: Avoid memory leak in error case. scrrun: Added DateCreated property for IFile. Rémi Bernon (22): mf/tests: Add some topology loader tests with missing output type. mf/tests: Add some MP3 decoder transform tests. mf/tests: Add more topology loader converter and enumeration tests. mf: Allow resolving topology with missing downstream current type. mf: Only allow converter connection if decoder didn't accept down type. mf: Only enumerate types for decoders / converter if down type is missing. qasf: Implement IWMReaderCallbackAdvanced stub interface. qasf: Implement ASF Reader filter buffer allocation. qasf: Implement ASF Reader filter IWMReaderCallback_OnSample. qasf: Implement ASF Reader SourceSeeking stubs. qasf: Register ASF Reader filter media type. win32u: Do not keep display modes driver extra in the registry. win32u: Read registry or current mode when validation needs it. win32u: Always copy devmode in validate_display_settings. win32u: Use current mode position if desired mode doesn't specify it. win32u: Only read/write valid mode fields from/to the registry. mf/tests: Avoid creating now unused sink activate instances. mf/tests: Try returning MF_E_NOT_INITIALIZED from GetCurrentMediaType. mf: Support uninitialized downstream media types in topology loader. maintainers: Add myself to multimedia sections. qasf/tests: Test ASF Reader filter initial state and pins. qasf/tests: Test ASF Reader filter threading wrt. ReceiveCanBlock. Santino Mazza (1): bcrypt: Move symmetric flags check to symmetric section. Torge Matthies (2): msvcr100: Factor out the mapping of a context to a scheduler. msvcr100: Implement _StructuredTaskCollection::_Schedule and _Schedule_loc. Zebediah Figura (13): wined3d: Use wined3d_array_reserve() in wined3d_adapter_create_output(). d3d8/tests: Expand tests for valid pools in UpdateTexture(). d3d9/tests: Expand tests for valid pools in UpdateTexture(). d3d8/tests: Read back directly from the specified surface if possible. d3d8/tests: Add more tests for dirty rect handling. d3d9/tests: Add more tests for dirty rect handling. d3d11/tests: Use winetest_push_context() to print explicit feature levels. d3d11: Always return E_FAIL for formats which have no support flags. d3d11: Implement D3D11_FEATURE_FORMAT_SUPPORT. d3d8/tests: Add tests for D3DLOCK_NO_DIRTY_UPDATE with vertex buffers. d3d9/tests: Add tests for D3DLOCK_NO_DIRTY_UPDATE with vertex buffers. d3d8: Introduce a wined3d_usage_from_d3d() helper. d3d9: Introduce a wined3d_usage_from_d3d() helper. Zhiyi Zhang (24): comctl32/tests: Add GetWindowSubclass() tests. comctl32: Check reference data pointer before using it. comctl32: Set reference data to zero on failure for GetWindowSubclass(). comctl32/tests: Add IME tests for edit control. comctl32/edit: Implement EM_SETIMESTATUS. comctl32/edit: Implement EM_GETIMESTATUS. comctl32/edit: Let DefWindowProcW() handle WM_IME_CHAR. comctl32/edit: Handle IME composition result string only when EIMES_GETCOMPSTRATONCE is set. user32/tests: Link directly to imm32. user32/tests: Add IME tests for edit control. user32/edit: Implement EM_SETIMESTATUS. user32/edit: Implement EM_GETIMESTATUS. user32/edit: Let DefWindowProcA/W() handle WM_IME_CHAR. user32/edit: Handle IME composition result string only when EIMES_GETCOMPSTRATONCE is set. comctl32/tests: Test that changing focus for edit controls doesn't repaint immediately. comctl32/edit: Don't repaint immediately when getting focus. comctl32/edit: Don't repaint immediately when losing focus. gdi32/tests: Add more tests for GetTextMetrics(). win32u: Choose a smaller ppem to avoid exceeding the requested font height. ddraw/tests: Add a comment to note that tests in d3d.c are deprecated. ddraw/tests: Move the capability tests for enumerated devices. ddraw/tests: Add more capability tests for enumerated devices. ddraw: Don't report unsupported device capabilities in d3d7_EnumDevices(). ddraw: Don't report unsupported device capabilities in d3d3_EnumDevices().