Software 42617 Published by

Wine's latest development release includes initial Driver Store implementation, Pbuffer support in the Wayland driver, more prototype objects in MSHTML, and a number of bug fixes.



Wine release 9.16

The Wine development release 9.16 is now available.

What's new in this release:
- Initial Driver Store implementation.
- Pbuffer support in the Wayland driver.
- More prototype objects in MSHTML.
- Various bug fixes.

The source is available at ( https://dl.winehq.org/wine/source/9.x/wine-9.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)

Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.

[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.16/AUTHORS

Wine

### Bugs fixed in 9.16 (total 25):

- #30938 Update a XIM candidate position when cursor location changes
- #37732 Corel Paint Shop Pro X7 Installer fails
- #41607 Piggi 2 Demo version fails to start and throws runtime and fatal error
- #42997 Opera Neon Installation throws backtrace
- #43251 Anarchy Online Login Window Play and Settings button disapper after minimising and maximising window
- #44516 Anarchy Online doesn't start in Windows7 prefix
- #45105 heap-buffer overflow in gdi32 (CVE-2018-12932)
- #45106 OOB write in gdi32 (CVE-2018-12933)
- #45455 Multiple DIFxApp-based USB hardware driver installers fail due to missing 'setupapi.dll.DriverStoreFindDriverPackageW' stub (Cetus3D-Software UP Studio 2.4.x, Plantronics Hub 3.16)
- #46375 Vietcong: game save thumbnails (screenshots) have corrupted colors
- #48521 StaxRip 2.0.6.0 (.NET 4.7 app) reports 'System.ComponentModel.Win32Exception (0x80004005): Invalid function' when converting AVI (PowerRequest stubs need to return success)
- #53839 Anarchy Online (Old Engine) Installer hangs after downloading game files
- #54587 GMG-Vision - ShellExecuteEx failed: Bad EXE format for install.exe.
- #55841 Lotus Approach: print "Properties" button ignored
- #56622 Systray icons now have black background without compositor, and on some panels can be misaligned or don't redraw, becoming invisible
- #56825 Unable to see screen for Harmony Assistant version 9.9.8d (64 bit)
- #56884 FoxitPDFReaderUpdateService shows crash dialog
- #57003 Naver Line tray icon is always gray since 9.13
- #57036 Splashtop RMM client crashes on Wine 9.14
- #57055 Window surfaces are empty
- #57059 Regression - UI broken with winewayland
- #57070 cnc-ddraw OpenGL performance regression in Wine 9.15
- #57071 Incorrect window drawing
- #57073 StaxRip 2.0.6.0 crashes inside gdiplus
- #57083 ClickStamper: stamp circle is missing.

### Changes since 9.15:
```
Aida Jonikienė (1):
win32u: Initialize parent_rect variables in window.c.

Akihiro Sagawa (5):
oleaut32/tests: Add OLE Picture object tests using DIB section.
oleaut32: Convert 32-bit or 16-bit color bitmaps to 24-bit color DIBs when saving.
oleaut32: Initialize reserved members before saving.
gdiplus/metafile: Fix DrawEllipse record size if compressed.
gdiplus/metafile: Fix FillEllipse record size if compressed.

Alex Henrie (3):
rpcrt4/tests: Correct a comment in test_pointer_marshal.
rpcrt4/tests: Test whether Ndr(Get|Free)Buffer calls StubMsg.pfn(Allocate|Free).
rpcrt4/tests: Allocate stub buffers with NdrOleAllocate.

Alexandre Julliard (15):
ntdll: Avoid nested ARM64EC notifications.
ntdll: Support STATUS_EMULATION_SYSCALL exception on ARM64EC.
ntdll: Add a test for BeginSimulation().
wow64: Fetch the initial thread context from the CPU backend.
wow64: Only update necessary registers when raising exceptions.
include: Unify the syscall thunk on x86-64.
include: Clean up formatting of long asm statements.
ntdll: Allocate the ARM64EC code map in high memory.
ntdll: Allocate the x64 context on the asm side of KiUserExceptionDispatcher.
ntdll: Pass the full exception record to virtual_handle_fault().
ntdll: Implement Process/ThreadManageWritesToExecutableMemory.
ntdll: Implement NtSetInformationVirtualMemory(VmPageDirtyStateInformation).
ntdll/tests: Add tests for Process/ThreadManageWritesToExecutableMemory.
ntdll: Read the Chpev2ProcessInfo pointer before accessing the data.
shell32/tests: Delete a left-over file.

Alexandros Frantzis (5):
winewayland: Store all window rects in wayland_win_data.
winewayland: Support WGL_ARB_pbuffer.
winewayland: Support WGL_ARB_render_texture.
winewayland: Advertise pbuffer capable formats.
winewayland: Fix off-by-one error in format check.

Alfred Agrell (2):
mountmgr.sys: Read and use disk label from dbus.
kernelbase: Delete now-inaccurate 'FS volume label not available' message.

Alistair Leslie-Hughes (4):
odbccp32: Support driver config in SQLGet/WritePrivateProfileStringW.
odbccp32: Correctly hanndle ODBC_BOTH_DSN in SQLWritePrivateProfileStringW.
odbccp32: Fall back to ConfigDSN when ConfigDSNW cannot be found.
kernel32: Return a valid handle in PowerCreateRequest.

Anders Kjersem (2):
reg/tests: Wait for process termination.
wscript: Implement Sleep.

Andrey Gusev (1):
wined3d: Fix return for WINED3D_SHADER_RESOURCE_TEXTURE_2DMSARRAY.

Bernhard Übelacker (1):
userenv: Avoid crash in GetUserProfileDirectoryW.

Billy Laws (4):
include: Move arm64ec_shared_info to winternl and point to it in the PEB.
ntdll: Initialize dll search paths before WOW64 init.
ntdll: Call the exception preparation callback on ARM64EC.
configure: Don't use CPPFLAGS for PE cross targets.

Brendan McGrath (3):
mf/tests: Test video processor with 2D buffers.
mf/tests: Test 1D/2D output on 2D buffers.
mf/tests: Test 2D buffers can override stride.

Daniel Lehman (3):
odbc32: Support {}'s in Driver connection string.
msvcr120: Add feholdexcept stub.
msvcr120: Implement feholdexcept.

Danyil Blyschak (4):
win32u: Don't check ansi_cp when adding fallback child font.
win32u: Include Microsoft Sans Serif as a child font.
win32u: Include Tahoma and its linked fonts in child font list.
mlang: Use larger destination buffer with WideCharToMultiByte().

Dmitry Timoshkov (10):
gdiplus: Add a couple of missing gdi_dc_release().
msv1_0: Make buffer large enough to hold NTLM_MAX_BUF bytes of base64 encoded data.
secur32/tests: Don't load secur32.dll dynamically.
secur32/tests: Avoid assigning a 4-byte status to an 1-byte variable.
secur32/tests: Don't use fake user/domain/password in NTLM tests.
secur32/tests: Fix a typo.
secur32/tests: Separate NTLM signature and encryption tests.
secur32/tests: Make NTLM encryption tests work on newer Windows versions.
kernel32/tests: Fix compilation with a PSDK compiler.
kernel32: EnumCalendarInfo() should ignore CAL_RETURN_NUMBER flag.

Elizabeth Figura (17):
widl: Explicitly check for top-level parameters before adding FC_ALLOCED_ON_STACK.
widl: Get rid of the write_embedded_types() helper.
widl: Ignore strings in is_embedded_complex().
widl: Propagate attrs to inner pointer types.
setupapi: Move INF installation functions to devinst.c.
setupapi: Separate a copy_inf() helper.
setupapi: Add an any_version_is_compatible() helper.
setupapi: Implement DriverStoreAddDriverPackage().
setupapi: Implement DriverStoreDeleteDriverPackage().
setupapi: Implement DriverStoreFindDriverPackage().
setupapi: Uninstall from the driver store in SetupUninstallOEMInf().
setupapi: Install to the driver store in SetupCopyOEMInf().
setupapi: Add stub spec entries for DriverStoreEnumDriverPackage().
setupapi/tests: Add Driver Store tests.
winevulkan: Strip the name tail when parsing members.
winevulkan: Add video interfaces.
winevulkan: Fix pointer arithmetic in debug utils callback marshalling.

Eric Pouech (1):
winedump: Get rid of GCC warning.

Esme Povirk (5):
user32: Implement EVENT_OBJECT_STATECHANGE for BM_SETSTYLE.
user32: Implement EVENT_SYSTEM_DIALOGEND.
user32: Implement EVENT_OBJECT_CREATE for listboxes.
user32: Implement EVENT_OBJECT_DESTROY for listboxes.
user32: Implement MSAA events for LB_SETCURSEL.

Etaash Mathamsetty (1):
netapi32: Move some implementations to netutils.

Fabian Maurer (1):
printdlg: Allow button id psh1 for "Properties" button.

Gabriel Ivăncescu (6):
mshtml: Avoid calling remove_target_tasks needlessly.
mshtml: Don't return default ports from location.host in IE10+ modes.
mshtml: Implement EmulateIE* modes for X-UA-Compatible.
mshtml/tests: Accept rare return value from ReportResult on native.
jscript: Don't use call frame for indirect eval calls for storing variables.
jscript: Restrict the allowed escape characters of JSON.parse in html mode.

Hans Leidekker (18):
odbc32: Add locking around driver calls.
odbc32: Remove unused Unix calls.
odbc32: Try the DRIVER attribute if the DSN attribute is missing.
odbc32: Fail freeing an object while child objects are alive.
odbc32: Call the driver function in SQLBindCol().
odbc32: Add support for descriptor handles in SQLGet/SetStmtAttr().
odbc32: Parse incoming connection string in SQLBrowse/DriverConnct().
odbc32: Set win32_funcs on the descriptors returned from SQLGetStmtAttr().
odbc32: Implicit descriptors can be retrieved but not set.
odbc32: Connection string keywords are case insensitive.
odbccp32: Respect config mode in SQLGet/WritePrivateProfileString().
odbccp32: Use wide character string literals.
odbccp32/tests: Get rid of a workaround for XP.
odbccp32: Handle NULL DSN in SQLValidDSN().
odbc32: Handle missing SQLSetConnect/EnvAttr().
odbc32: Set initial login timeout to 15 seconds.
odbc32: Map SQLColAttributes() to SQLColAttribute().
odbc32: Map SQLGetDiagRec() to SQLError().

Ilia Docin (3):
comctl32/tests: Add rebar chevron visibility test.
comctl32/tests: Add LVM_GETNEXTITEM test.
comctl32/listview: Do not return items count on getting next item for last one.

Ivo Ivanov (3):
winebus.sys: Pass each input report regardless of report ID to the pending read IRQ.
winebus.sys: Add devtype parameter to get_device_subsystem_info().
winebus.sys: Read vendor/product/serial strings from the usb subsystem.

Jacek Caban (33):
mshtml: Add support for MSEventObj prototype objects.
mshtml: Add support for Event prototype objects.
mshtml: Add support for UIEvent prototype objects.
mshtml: Add support for mouse event prototype objects.
mshtml: Add support for keyboard event prototype objects.
mshtml: Add support for page transition event prototype objects.
mshtml: Add support for custom event prototype objects.
mshtml: Add support for message event prototype objects.
mshtml: Add support for progress event prototype objects.
mshtml: Add support for storage event prototype objects.
mshtml: Add support for screen prototype objects.
mshtml: Add support for history prototype objects.
mshtml: Add support for plugins collection prototype objects.
mshtml: Add support for MIME types collection prototype objects.
mshtml: Add support for performance timing prototype objects.
mshtml: Add support for performance navigation prototype objects.
mshtml: Add support for performance prototype objects.
mshtml: Add support for namespace collection prototype objects.
mshtml: Add support for console prototype objects.
mshtml: Add support for media query list prototype objects.
mshtml: Add support for client rect list prototype objects.
mshtml: Add support for DOM token list prototype objects.
mshtml: Add support for named node map prototype objects.
mshtml: Add support for element collection prototype objects.
mshtml: Add support for node list prototype objects.
mshtml: Add support for text range prototype objects.
mshtml: Add support for range prototype objects.
mshtml: Add support for selection prototype objects.
mshtml: Increase buffer size in dispex_to_string.
mshtml: Add support for unknown element prototype objects.
mshtml: Add support for comment prototype objects.
mshtml: Add support for attribute prototype objects.
mshtml: Add support for document fragment prototype objects.

Jacob Czekalla (4):
comctl32/tests: Add tests for progress bar states.
comctl32/progress: Add states for progress bar.
comctl32/tests: Add test to check if treeview expansion can be denied.
comctl32/treeview: Allow treeview parent to deny treeview expansion.

Louis Lenders (3):
kernel32: Fake success in PowerCreateRequest.
kernel32: Fake success in PowerSetRequest.
kernel32: Fake success in PowerClearRequest.

Martin Storsjö (1):
ucrtbase: Export powf on i386.

Nikolay Sivov (7):
include: Add IWICStreamProvider definition.
windowscodecs/tests: Add a helper to check for supported interfaces.
windowscodecs/tests: Remove noisy traces from the test stubs.
windowscodecs/tests: Add some tests for IWICStreamProvider interface availability.
windowscodecs/metadata: Add a stub for IWICStreamProvider.
windowscodecs/metadata: Reset the handler on LoadEx(NULL).
windowscodecs/tests: Add some more tests for the IWICStreamProvider methods.

Paul Gofman (25):
qcap/tests: Fix test failure in testsink_Receive() on some hardware.
qcap/tests: Add a test for simultaneous video capture usage.
quartz: Propagate graph start error in MediaControl_Run().
qcap: Delay setting v4l device format until stream start.
gdi32/tests: Add test for Regular TTF with heavy weight.
win32u: Always set weight from OS/2 header in freetype_set_outline_text_metrics().
win32u: Do not embolden heavy weighted fonts.
kernelbase: Better match Windows behaviour in PathCchStripToRoot().
kernelbase: Better match Windows behaviour in PathCchRemoveFileSpec().
kernelbase: Better match Windows behaviour in PathCchIsRoot().
kernelbase: Reimplement PathIsRootA/W() on top of PathCchIsRoot().
kernelbase: Reimplement PathStripToRootA/W() on top of PathCchStripToRoot().
kernelbase: Remimplement PathRemoveFileSpecA/W().
kernelbase/tests: Add more tests for some file manipulation functions.
shell32: Register ShellItem coclass.
include: Add some shell copy engine related constants.
shell32/tests: Add tests for IFileOperation_MoveItem.
shell32/tests: Add tests for IFileOperation_MoveItem notifications.
shell32: Implement file_operation_[Un]Advise().
shell32: Store operation requested in file_operation_MoveItem().
shell32: Partially implement MoveItem file operation execution.
shell32: Implement directory merge for MoveItem.
shell32: Support sink notifications for file MoveItem operation.
ws2_32/tests: Test UDP broadcast without SO_BROADCAST.
server: Support IPV4 UDP broadcast on connected socket without SO_BROADCAST.

Piotr Caban (6):
ntdll: Accept UNC paths in LdrGetDllPath.
ntdll: Accept UNC paths in LdrAddDllDirectory.
msi: Fix msi_add_string signature.
msi: Fix row index calculation when stringtable contains empty slots.
vcruntime140_1: Handle empty catchblock type_info in validate_cxx_function_descr4.
vcruntime140_1: Store exception record in ExceptionInformation[6] during unwinding.

Rozhuk Ivan (1):
wineoss: Store the OSS device in midi_dest.

Rémi Bernon (59):
win32u: Don't request a host window surface for child windows.
win32u: Avoid crashing with nulldrv when creating offscreen surface.
mfplat/tests: Add more tests for MFCreateMediaBufferFromMediaType.
mfplat: Implement MFCreateMediaBufferFromMediaType for video formats.
mf/tests: Cleanup the video processor test list.
win32u: Introduce a new window rects structure.
win32u: Use window_rects struct in set_window_pos.
win32u: Use window_rects struct in update_window_state.
win32u: Use window_rects struct in NtUserCreateWindowEx.
win32u: Pass a window_rects struct to calc_winpos helper.
winex11: Check whether the window surface needs to be re-created.
win32u: Fix CreateWindowSurface call when updating layered surfaces.
winex11: Avoid moving embedded windows in the systray dock.
winex11: Don't call X11DRV_SET_DRAWABLE with invalid drawable.
win32u: Split driver side window bits move to a separate entry.
win32u: Use window_rects structs in apply_window_pos.
win32u: Pass window_rects structs to create_window_surface.
win32u: Pass a window_rects struct to WindowPosChanged driver entry.
win32u: Pass a window_rects struct to WindowPosChanging driver entry.
win32u: Pass a window_rects struct to MoveWindowBits driver entry.
win32u: Introduce new get_(client|window)_rect_rel helpers.
win32u: Pass a window_rects struct from get_window_rects helper.
win32u: Pass a window_rects struct to calc_ncsize helper.
win32u: Keep a window_rects struct in the WND structure.
winebus.sys: Always parse uevent PRODUCT= line on input subsystem.
mfplat/tests: Add missing todo_wine for MFCreateMediaBufferFromMediaType.
mf/tests: Load MFCreateMediaBufferFromMediaType dynamically.
win32u: Get visible and client rects in parent-relative coordinates.
winex11: Discard previous surface when window is directly drawn to.
win32u: Flush window surface after UpdateLayeredWindow.
winex11: Remove now unnecessary window surface flushes.
winemac: Remove unused unminimized window surface.
winemac: Remove unnecessary window surface invalidation.
winex11: Fix the exposed window surface region combination.
win32u: Introduce a new NtUserExposeWindowSurface call.
wineandroid: Remove now unnecessary window surface pointer.
winemac: Remove now unnecessary window surface pointer.
winex11: Remove now unnecessary window surface pointer.
win32u: Allocate and initialize window surface in window_surface_create.
wineandroid: Keep a window_rects struct in the driver window data.
winemac: Remove unnecessary window data rects update.
winemac: Keep a window_rects struct in the driver window data.
winemac: Use the window rects to convert host visible to window rect.
winemac: Use the window rects to convert window to host visible rect.
win32u: Keep SetIMECompositionWindowPos with other IME entries.
winex11: Keep a window_rects struct in the driver window data.
winex11: Use the driver rects to convert from host visible to window rect.
winemac: Return a macdrv_window_features from get_cocoa_window_features.
win32u: Move visible rect computation out of the drivers.
win32u: Move the "Decorated" driver registry option out of the drivers.
mfplat: Add MFCreateLegacyMediaBufferOnMFMediaBuffer stub.
mfplat/tests: Test MFCreateLegacyMediaBufferOnMFMediaBuffer.
mfplat: Implement MFCreateLegacyMediaBufferOnMFMediaBuffer.
user32: Pass a free_icon_params struct to User16CallFreeIcon.
user32: Pass a thunk_lock_params struct to User16ThunkLock.
user32: Introduce a generic KeUserDispatchCallback kernel callback.
user16: Use NtUserDispatchCallback instead of User16ThunkLock.
winevulkan: Route kernel callbacks through user32.
opengl32: Route kernel callbacks through user32.

Sven Püschel (11):
dssenh/tests: Remove skipping sign tests.
dssenh/tests: Remove unnecessary verify test cases.
dssenh/tests: Move test loop out of sub function.
dssenh/tests: Remove redundant hash test.
dssenh: Finish hash in the SignHash function.
dssenh/tests: Fix signLen usage.
dssenh/tests: Set 0xdeadbeef last error before function execution.
dssenh/tests: Remove redundant signature verification.
dssenh/tests: Separate the public key export from the signhash test.
dssenh/tests: Add test for VerifySignatureA.
dssenh: Swap the endianness of the signature.

Tim Clem (1):
winemac.drv: Better detect whether to unminimize a window when the app becomes active.

Tom Helander (4):
httpapi: Add tests for HttpResponseSendEntityBody.
http.sys: Skip clean up if HTTP_SEND_RESPONSE_FLAG_MORE_DATA is set.
httpapi: Handle HTTP_SEND_RESPONSE_FLAG_MORE_DATA flag.
httpapi: Implement HttpSendResponseEntityBody.

Torge Matthies (1):
wineandroid: Route kernel callbacks through user32.

Zhiyi Zhang (6):
riched20: Release IME input context when done using it.
user32/tests: Add more display DC bitmap tests.
win32u: Use a full size bitmap for display device contexts.
win32u: Support setting host IME composition window position for ImmSetCompositionWindow().
win32u: Set host IME composition window position in set_caret_pos().
win32u: Set host IME composition window position in NtUserShowCaret().
```