Software 42432 Published by

Alexandre Julliard has announced the release of Wine 7.11 with Android driver converted to PE, Zero-copy support with GStreamer, High Unicode planes support in case mappings, and various bug fixes.

Wine release 7.11

The Wine development release 7.11 is now available.

What's new in this release:
- Android driver converted to PE.
- Zero-copy support with GStreamer.
- High Unicode planes support in case mappings.
- Various bug fixes.

The source is available at:

Binary packages for various distributions will be available from:

You will find documentation on

You can also get the current source directly from the git
repository. Check 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.11 (total 34):

33381 Mayhem Triple renders too small
33383 Foobar2000 crashes on Alt-H
34176 Kernel32:CompareStringW strange behavior ?
35027 Euphoria needs CreateProcessInternalW function
36720 LCMapString with the parameter NORM_IGNORENONSPACE does not remove diacritics
39144 SpinTires tech demo wrong rendering after changing screen resolution
39298 kernel32 does not support custom nls installation.
45634 enabling CSMT ruins performance for rFactor 1.255
46281 Multiple Windows 7+ apiset-aware applications fail due to Wine loader lacking support for resolving virtual dlls via 'kernel32.GetModuleHandle' (Archicad 22)
46782 CompareStringEx does not support SORT_DIGITSASNUMBERS flag
49210 Mafia and Mafia II: Definitive Edition Launcher crashes with Wine-Mono
49232 Saints Row The Third Remastered shows floating black rectangles
50941 Multiple applications crash on unimplemented function WS2_32.dll.WSAConnectByName (TIP-Integral, EasyMiniGW)
50948 taskmgr.exe: wrong memory usage unit (GB => MB)
51243 In Wine dinput:keyboard fails if the keyboard layout does not match the display language
52663 Civilization 4: no text in main menu
52752 Rich Edit Control does not support drawing OLE objects
52795 Multiple applications crash in Mesa due to syscall stack overflow (Cyberpunk 2077, Stranger of Paradise, Doom Eternal with ray tracing)
52831 Kernel32::GetSystemPowerStatus returns invalid data if /sys/class/power_supply/BAT0 is missing
52841 Leverless arcade controller SOCD cleaning does not work
52885 Adobe Lightroom Classic 11.1 crash in user32
52893 GreedFall crashes on launch
52993 msi:action - test_publish() fails on date change
52995 shell32:shelllink crashes in Wine cause shell32:shellpath's test_PathResolve() to fail (test.bat file)
52998 xaudio2_7:xaudio2 fails on Windows 1909+
53029 Clipboard cut/paste partially broken in wine
53035 Displaying Out-GridView in Powershell Core crashes with WinVer > Win7
53038 Epic Games Launcher crashes on start
53076 Kvaser CanKing needs ntoskrnl.exe.KfRaiseIrql and ntoskrnl.exe.KeLowerIrql
53082 "explorer: Create clipboard manager thread when creating a desktop." causes hangs on wine startup
53102 Ubisoft Connect fails to connect to server
53112 winegstreamer build error
53136 crypt32:cert - testVerifyRevocation() fails in Wine
53138 crypt32:chain - testGetCertChain() fails in Wine


Changes since 7.10:

Akihiro Sagawa (1):
msvcrt: Avoid passing an invalid LCID to LCMapStringW.

Alex Henrie (2):
user32: Plug icon handle leak in MDI_AugmentFrameMenu (Coverity).
ntdll: Don't hard-code the battery and AC adapter names on Linux.

Alexandre Julliard (10):
make_unicode: Add data for high Unicode planes in case mapping tables.
kernelbase: Add support for high Unicode planes in LCMapStringEx().
kernel32/tests: Add tests for high Unicode planes.
ntdll/tests: Add tests for high Unicode planes.
faudio: Import upstream release 22.06.
kernelbase: Implement IsNLSDefinedString().
atl: Support escaped quotes in registrar scripts.
kernelbase: Add NORM_IGNORENONSPACE support in LCMapStringEx().
ntdll: Share a few more locale functions with the Unix side.
ntdll: Move the user locale initialization to the Unix side.

Alistair Leslie-Hughes (1):
d3drm: Pass all D3DRM_LOAD* flags directly through to CreateEnumObject() in IDirect3DRMMeshBuilder3::Load().

Andrew Eikum (1):
include: Remove duplicate ICodecAPI::GetParameterValues function.

Bernhard Kölbl (9):
include/ Update file to newer formatting.
include/ Move IMediaMarker collections from speechsynthesis.
include/ Update file to newer formatting. Remove a useless thread id trace. Handle a possible race condition. Add basic tests for ssml/text to stream functions. Return IAsyncOperation from synthesizer_SynthesizeTextToStreamAsync. Return IAsyncOperation from synthesizer_SynthesizeSsmlToStreamAsync. Add stub ISpeechSynthesisStream iface.

Chilung Chan (1):
po: Update Traditional Chinese translation.

Connor McAdams (18):
include: Add UI Automation Control Type ID definitions.
uiautomationcore/tests: Skip UiaProviderFromIAccessible tests on Win10v1507.
uiautomationcore: Use WindowFromAccessibleObject to get HWND in UiaProviderFromIAccessible.
uiautomationcore/tests: Store test IAccessible data in structures.
uiautomationcore: Implement UIA_ControlTypePropertyId for MSAA providers.
uiautomationcore: Implement MSAA accState based property IDs for MSAA providers.
uiautomationcore: Implement get_HostRawElementProvider for MSAA providers.
include: Add ILegacyIAccessibleProvider interface definition.
uiautomationcore: Add ILegacyIAccessibleProvider implementation for MSAA providers.
uiautomationcore: Add stub IRawElementProviderFragment for MSAA providers.
uiautomationcore/tests: Add navigation tests for MSAA providers.
uiautomationcore: Implement NavigateDirection_Parent for MSAA Providers.
uiautomationcore/tests: Release interfaces returned from get_HostRawElementProvider.
uiautomationcore: Implement NavigateDirection_{First/Last}Child for MSAA Providers.
uiautomationcore: Implement NavigateDirection_{Previous/Next}Sibling for MSAA providers.
include: Import IAccessible2 headers.
ia2comproxy: Introduce new proxy stub DLL for IAccessible2.
uiautomationcore: Add basic IAccessible2 support.

Daniel Lehman (3):
ntdll/tests: Test if RtlFormatMessage modifies va_list on error.
kernel32/tests: Test if FormatMessage modifies va_list on error.
kernelbase: Pass va_list copy to internal RtlFormatMessage.

Derek Lesho (2):
mfreadwrite/tests: Test timestamp-based MF_SOURCE_READER_ANY_STREAM behavior.
mfreadwrite: Update source reader MF_SOURCE_READER_ANY_STREAM behavior based on tests.

Dmitry Timoshkov (1):
d2d1: Add partial support for image brushes.

Gabriel Ivăncescu (7):
mshtml: Expose IE10+ XMLHttpRequest props via private interface.
mshtml: Implement onabort for XMLHttpRequest.
mshtml: Implement onprogress for XMLHttpRequest.
mshtml: Implement onloadstart for XMLHttpRequest.
mshtml: Implement onloadend for XMLHttpRequest.
mshtml: Implement withCredentials for XMLHttpRequest.
jscript: Use LIST_FOR_EACH_ENTRY_SAFE to clear Map and Set objects.

Georg Lehmann (1):
winevulkan: Update to VK spec version 1.3.217.

Giovanni Mascellani (2):
mfplat/tests: Test interaction between Lock() and LockRect().
mfplat/tests: Test interaction between Lock2D() and LockRect().

Hans Leidekker (5):
winhttp: Fix default port corner cases in WinHttpCrackUrl().
cryptnet: Fail CRL verification if there's no issuer certificate.
cryptnet: Move revocation cache check to verify_cert_revocation_from_dist_points_ext().
cryptnet: Fall back to online CRL verification if OCSP verification fails.
winhttp: Release object on allocation failure.

Hugh McMaster (2):
conhost: Show caret immediately after reshaping.
conhost: Update debug output and comments when loading/saving settings.

Jacek Caban (59):
wineandroid: Use ntdll for UTF8 conversion.
wineandroid: Don't use unicode.h.
wineandroid: Remove audio driver.
wineandroid: Directly use ntdll for registry access.
wineandroid: Directly use win32u for GDI functions.
wineandroid: Implement desktop window proc using driver interface.
wineandroid: Directly use win32u for user calls.
wineandroid: Use pthread for locking in opengl.c.
wineandroid: Use pthread for window data locking.
wineandroid: Use pthread for surface locking.
wineandroid: Move DllMain to separated file.
wineandroid: Move wine_create_desktop_to dllmain.c.
wineandroid: Use libc for memory allocation.
wineandroid: Directly use ntdll instead of kernel32.
wineandroid: Move device thread to dllmain.c.
wineandroid: Use unixlib interface for register_window_callback.
win32u: Use public name for SetThreadDpiAwarenessContext.
wineandroid: Build with msvcrt.
mmdevapi: Remove android from default driver list.
jscript/tests: Add test for releasing script context objects.
jscript: Correctly handle deleted entries in iterate_map.
vbscript: Use return_bool in more places.
win32u: Don't call CopyImage with user lock in NtUserRegisterClassExWOW.
win32u: Don't call CopyImage with user lock in set_class_long.
win32u: Move NtUserLockWindowUpdate implementation from user32.
user32: Use a critical section in RegisterUserApiHook.
user32: Remove no longer needed helpers.
win32u: Remove no longer used __wine_set_user_driver PE entry point.
win32u: Move NtUserScrollWindowEx implementation from user32.
win32u: Move SetWindowContextHelpId implementation from user32.
win32u: Move NtUserDragDetect implementation from user32.
win32u: Move NtUserInternalGetWindowIcon implementation from user32.
winex11: Use LoadImageW in fetch_icon_data.
win32u: Move SC_SIZE and SC_MOVE handling from user32.
win32u: Allow passing simple LOGFONTW to NtGdiHfontCreate.
win32u: Move WM_NCPAINT handling from user32.
win32u: Move WM_NCACTIVATE implementation from user32.
win32u: Move GetDialogBaseUnits implementation from user32.
win32u: Simplify get_text_metr_size.
win32u: Move WM_NCCALCSIZE implementation from user32.
win32u: Move NtUserDrawMenuBarTemp implementation from user32.
win32u: Move MENU_DrawMenuBar implementation from user32.
win32u: Move PopupMenuWndProc implementation from user32.
user32: Reimplement GetMenuContextHelpId on top of GetMenuInfo.
win32u: Move NtUserMenuItemFromPoint implementation from user32.
win32u: Move WM_KEYF1 implementation from user32.
win32u: Move NtUserInvalidateRect and NtUserInvalidateRgn implementation from user32.
win32u: Move process default layout handling from user32.
win32u: Move WM_NCHITTEST implementation from user32.
win32u: Move WM_NCLBUTTONDOWN implementation from user32.
win32u: Move WM_NCRBUTTONDOWN implementation from user32.
win32u: Use NtUserCallHwnd for NtUserSetForegroundWindow.
win32u: Move menu tracking implementation from user32.
win32u: Move WM_CONTEXTMENU and WM_POPUPSYSTEMMENU implementation from user32.
win32u: Move NtUserDrawCaptionTemp implementation from user32.
win32u: Move WM_SETCURSOR implementation from user32.
win32u: Move WM_NCLBUTTONDBLCLK and WM_LBUTTONDBLCLK implementation from user32.
win32u: Move more WM_SYSCOMMAND implementation from user32.
win32u: Move NtUserGetTitleBarInfo implementation from user32.

Jactry Zeng (2):
dwmapi: Fill rateRefresh/rateCompose and qpcRefreshPeriod of DWM_TIMING_INFO from DwmGetCompositionTimingInfo().
dwmapi: Return S_OK from DwmFlush().

Jinoh Kang (5):
comctl32: Fix integer overflow in DPA_Search.
riched20/tests: Add tests for drawing embedded OLE objects.
riched20: Fetch extent from object if REOBJECT::sizel is unset.
riched20: Draw OLE objects with IViewObject implementation.
comctl32: Always paint SS_BITMAP static control background with WM_CTLCOLORSTATIC brush.

Julian Klemann (4):
httpapi/tests: Move sleep statement.
httpapi/tests: Add tests for when URLs fail to be added to a queue.
httpapi: Stop setting group->url if add_url() fails.
http.sys: Add support for adding multiple urls to request queues.

Lauri Kenttä (1):
po: Update Finnish translation.

Louis Lenders (2):
wbemprox: Add a few properties to Win32_QuickFixEngineering.
advapi32: Fix spec entry for LookupPrivilegeDisplayName{A,W}.

Martin Storsjö (5):
ntdll: Add SEH unwind info in ARM assembly functions/trampolines.
ntdll: Use ControlPcIsUnwound for the RtlVirtualUnwind pc parameter in virtual_unwind.
ntdll: Take ControlPcIsUnwound into account on arm64 too.
ntdll/tests: Fix printing of incorrect exception handler data.
ntdll/tests: Test returning an exception handler on arm/arm64.

Matteo Bruni (2):
d3dx10/tests: Initialize a function argument.
d3dx10/tests: Add a test for loading an invalid resource from a valid module.

Nikolay Sivov (16):
windows.gaming.input: Fix a leak on error path (Coverity).
secur32/schannel: Avoid use-after-free in AcquireClientCredentials() (Coverity).
kernelbase/tests: Move VirtualAllocFromApp() tests.
kernelbase: Implement VirtualAlloc2FromApp().
kernelbase/tests: Add some more tests for region splitting.
ntdll/tests: Add some tests for VM regions splitting.
d2d1: Use d3d11 constants for constant buffer description.
d3d11: Do not return uninitialized values on Map() failure.
d2d1: Update to ID2D1DeviceContext1.
d3d11/tests: Add some tests for IDXGIResource support.
dxgi/tests: Add a IDXGIResource support test for CreateSurface().
dxgi: Create DXGI resource object, optionally supporting surface interfaces.
d3d11: Add a helper to create DXGI resource objects.
d3d11: Always use dxgi resource private store for 1D and 2D textures.
d3d11: Create dxgi resource object for 3D textures.
d3d11: Create dxgi resource objects for buffers.

Paul Gofman (15):
winhttp: Keep task in queue until completion.
winhttp: Implement reference counting for tasks.
winhttp: Fix dwResult field in websocket receive error result.
winhttp: Replace pending read cancel in WinHttpWebSocketClose() with a generic cancel_queue().
winhttp: Abort websocket IO on handle close.
winhttp: Support abort in task_socket_close().
winhttp/tests: Add tests for closing web socket with pending operations.
ws2_32: Check for valid socket in WSAGetOverlappedResult().
ntdll: Cancel asyncs when thread is terminated.
ws2_32/tests: Add tests for terminated thread asyncs completion.
winhttp: Introduce netconn_wait_overlapped_result() helper.
winhttp: Use completion port for async send.
ws2_32: Make wait in select() alertable.
ws2_32: Make wait in WS2_recv_base() alertable.
iphlpapi: Return ERROR_NO_DATA from GetIpNetTable() if no entries are found.

Piotr Caban (28):
wow64: Fix NtQueryDirectoryObject wrapper.
d3dx10: Use CRT memory allocators.
d3dx11: Use CRT memory allocators.
d3dx10: Share code for file data loading.
d3dx10: Share code for resource data loading.
d3dx10: Add D3DX10CreateAsyncTextureInfoProcessor implementation.
d3dx10/tests: Add D3DX10CreateAsyncTextureInfoProcessor tests.
d3dx10: Don't ignore HRESULT parameter in D3DX10GetImageInfoFrom* functions.
d3dx10/tests: Add D3DX10GetImageInfoFromMemory HRESULT argument tests.
d3dx10: Add support for ID3DX10ThreadPump parameter in D3DX10GetImageInfoFromFileW.
d3dx10: Add support for ID3DX10ThreadPump parameter in D3DX10GetImageInfoFromResourceA.
d3dx10: Add support for ID3DX10ThreadPump parameter in D3DX10GetImageInfoFromResourceW.
d3dx10: Support ID3DX10ThreadPump parameter in D3DX10GetImageInfoFromMemory.
d3dx10/tests: Add D3DX10GetImageInfoFromMemory thread pump tests.
server: Always return Win32 error code from IOCTL_AFD_GET_SO_ERROR.
server: Don't reset socket error in poll_socket.
server: Don't reset socket error in IOCTL_AFD_GET_SO_ERROR.
d3dx10: Don't ignore HRESULT parameter in D3DX10CreateTextureFromMemory.
d3dx10/tests: Add D3DX10CreateTextureFromMemory HRESULT argument tests.
d3dx10: Exit early on volume textures in D3DX10CreateTextureFromMemory.
d3dx10: Add D3DX10CreateAsyncTextureProcessor stub.
d3dx10: Add D3DX10CreateAsyncTextureProcessor implementation.
d3dx10/tests: Add D3DX10CreateAsyncTextureProcessor tests.
d3dx10: Add support for ID3DX10ThreadPump parameter in D3DX10CreateTextureFromFileW.
d3dx10: Add support for ID3DX10ThreadPump parameter in D3DX10CreateTextureFromResourceA.
d3dx10: Add support for ID3DX10ThreadPump parameter in D3DX10CreateTextureFromResourceW.
d3dx10: Add support for ID3DX10ThreadPump parameter in D3DX10CreateTextureFromMemory.
d3dx10/tests: Add D3DX10CreateTextureFromMemory thread pump tests.

Robert Wilhelm (1):
vbscript: Implement IsDate().

Rémi Bernon (61):
winegstreamer: Return void from align_video_info_planes.
windows.gaming.input: Consistently use FIXME for E_NOINTERFACE messages.
include: Add Windows.Gaming.Input.IGamepad2 interface declaration.
windows.gaming.input: Implement stub IGamepad2 interface.
winegstreamer: Introduce new wg_transform_(push|read)_mf helpers.
winegstreamer: Rename mf_(create|destroy)_wg_sample helpers.
winegstreamer: Introduce a new custom memory allocator.
winegstreamer: Support zero-copy output using the allocator.
winegstreamer: Support zero-copy in wg_transform_push_data.
dinput/tests: Avoid requiring foreground window in SetCooperativeLevel tests.
dinput/tests: Use dinput_test_(init|exit) for all tests.
dinput/tests: Merge device.c tests into device8.c.
ole32/tests: Update IStream_SetSize with large size test result.
ntdll: Add block padding when HEAP_ADD_USER_INFO flag is set.
kernelbase: Use HEAP_ADD_USER_INFO for HLOCAL allocations.
ntdll: Implement RtlSetUserValueHeap.
kernelbase: Use RtlSetUserValueHeap to store HLOCAL.
dinput/tests: Add some broken joystick axis results.
dinput: Fix DIPROP_FFGAIN mouse and keyboard tests.
dinput/tests: Run mouse info tests for every dinput version.
dinput/tests: Merge mouse.c tests into device8.c.
dinput/tests: Run keyboard info tests for every dinput version.
dinput/tests: Merge keyboard.c tests into device8.c.
ntdll: Implement RtlGetUserValueHeap.
kernel32: Use RtlGetUserInfoHeap in GlobalHandle.
kernelbase: Stop using an offset for HLOCAL pointers.
kernel32: Cleanup and simplify (Global|Local)Size.
kernel32: Cleanup and simplify (Global|Local)Handle.
kernelbase: Cleanup and simplify (Global|Local)ReAlloc.
ntdll: Rename HEAP to struct heap and remove typedef.
ntdll: Consistently name heap handles and pointers.
ntdll: Rename HEAP_GetPtr to unsafe_heap_from_handle.
ntdll: Use block_size and data_size in subheap structure.
ntdll: Remove heap pointer from SUBHEAP structure.
winebus.sys: Implement SOCD neutral cleaning for hatswitches.
winegstreamer: Split wg_sample wrapper helpers to a separate source.
winegstreamer: Use a union in struct sample to keep API pointers.
winegstreamer: Introduce new wg_sample_create_quartz helper for quartz_transform.c.
winegstreamer: Support zero-copy wg_transform_push_data in quartz_transform.c.
winegstreamer: Support zero-copy wg_transform_read_data in quartz_transform.c.
winegstreamer: Remove copying support from wg_transform_push_data.
winegstreamer: Return NS_E_INVALID_REQUEST on WMReader Start before Open.
winegstreamer: Return E_UNEXPECTED from WMReader_Open when already opened.
winegstreamer: Return E_UNEXPECTED from WMReaderAdvanced2_OpenStream when already opened.
winegstreamer: Move end conditions out of the wm_asyncreader stream loop.
winegstreamer: Simplify wm_asyncreader stream loop exit code path.
winegstreamer: Leave the wm_reader stream_cs when calling the callbacks.
mscoree: Avoid using pointer after free.
mshtml/tests: Avoid using pointer value after free.
oleaut32/tests: Workaround use after free warnings.
user32/tests: Workaround use after free warnings.
msi: Avoid using pointer value after free.
notepad: Avoid using pointer value after free.
dsound: Avoid using pointer value after free.
d3drm: Avoid using pointer value after free.
server: Avoid using pointer value after realloc.
winegstreamer: Register stub ResamplerMediaObject transform.
winegstreamer: Implement ResamplerMediaObject transform.
winegstreamer: Remove unnecessary WineAudioConverter transform.
winegstreamer: Register stub ColorConvertDMO transform.
winegstreamer: Implement ColorConvertDMO transform.

Sebastián Aedo (1):
winex11.drv: Change order register_extension for WGL_ARB_pixel_format_float.

Stefan Dösinger (1):
include: Emit CFI directives when building on Mac with gcc.

Tim Clem (1):
ntdll: Move SEH exception info logs back to the seh channel.

Timo Zuccarello (1):
winebus: Optionally split joysticks with more than 6 axes.

Torge Matthies (2):
cryptnet: Resolve object id to algorithm id when verifying OCSP response.
msvcp90: Fix segfault in bad_alloc exception default constructor.

Zebediah Figura (12):
wined3d: Parse the eval_centroid opcode.
wined3d: Cap the maximum reported VRAM, not the current reported VRAM.
hidclass.sys: Expose an ioctl to retrieve the raw input handle.
dinput: Use IOCTL_HID_GET_WINE_RAWINPUT_HANDLE to retrieve the raw input handle.
user32: Use IOCTL_HID_GET_WINE_RAWINPUT_HANDLE to retrieve the raw input handle.
hidclass.sys: No longer set the DEVPROPKEY_HID_HANDLE property.
user32: Store the device path as a simple string pointer.
user32: Use registry APIs to enumerate raw input devices.
user32/tests: Add some more tests related to the RAWINPUT structure.
user32: Correctly fill the RAWINPUT structure on WoW64.
win32u: Move NtUserGetRawInputData from user32.
win32u: Move NtUserGetRawInputBuffer from user32.