The Wine development release 6.22 is now available. What's new in this release (see below for details): - Mono engine updated to version 7.0.0. - Exception unwinding on ARM. - More improvements to HID joystick support. - WoW64 thunks in a number of Unix libraries. - Beginnings of moving USER32 to Win32u. - Various bug fixes. The source is available from the following locations: https://dl.winehq.org/wine/source/6.x/wine-6.22.tar.xz http://mirrors.ibiblio.org/wine/source/6.x/wine-6.22.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 6.22 (total 29): 21572 KFSensor 4.x/5.x: 'kfsnserv.exe' service fails to reliably stop/start/restart 22260 Total Commander 7.x/8.x: editable dropdown is gray when opened and empty 30498 Shadows broken on many games because of wrong depth formats 38278 Multiple apps and games need wmvcore.dll.WMReader_Open implementation (Nail'd demo) 42030 winedbg: Internal crash at 0x9f58fd40 45130 Builtin xaudio2_7.dll break audio and slow down performance for some games since wine 3.5 45443 Diablo 3: Starting the game causes a black screen softlock on the X-environment 46512 Window text has last letter cut off 47119 winedbg truncates 64-bit address when compiled with mingw 49409 Monkey Island 2 Special Edition crash / freeze with built-in xactengine3_6 49803 WIDL cannot import TLBs stored as resources in PE, such as stdole32.tlb and stdole2.tlb (even though both have tlb extension, they are essentially PE) 50292 Process-local synchronization objects use private interfaces into the Unix library 50757 (Regression) Hyperdimension Neptunia Re;Birth1 Crashes/freezes frequently with FAudio 51027 Fonts blurred for some words in Logos Bible Software 51587 Force feedback strength is really low in multiple games 51864 VeraCrypt Installer for 1.24-Update7 (Win8+) fails with HRESULT 0x800288BD 51916 Empire Earth 2 UP 1.5: ImageButtons don't render right with custom themes 51938 Safe Exam Browser needs "DNSDomain" from Win32_NetworkAdapterConfiguration 51944 Resident Evil 6 stops to a black screen instead of playing videos 51953 Joystick not detected for some older games with wine 6.20 51956 Morrowind: freezes when control keys are changing 51968 Winaero WEI Tool: Crash due to C:\windows\performance\winsat\datastore missing 51970 Memento Mori needs output_props_GetType 51978 Autodesk Fusion 360 crashes on unimplemented function msvcp140.dll.?table@?$ctype@D@std@@QEBAPEBFXZ 51983 foobar2000 v1.5.1+ crashes on startup with Wine v6.6+ with Windows version set to "Windows 10" 52022 Multiple games have unresponsive mouse/keyboard (Borderlands GOTY Enhanced, Tom Clancy's Rainbow Six Siege, Resident Evil Revelations) 52044 Safe exambrowser needs msctfmonitor.dll 52051 Oceanhorn: Monster of Uncharted Seas fails to start (uses WINED3DFMT_R8G8_UINT in vertex declaration) 52052 Wine doesn't show any window while creating/updating 64-bit prefix ---------------------------------------------------------------- Changes since 6.21: Akihiro Sagawa (2): gdi32/tests: Test substituted face family name. win32u: Use a real family name as otmpFamilyName for substituted face. Alexandre Julliard (52): avicap32: Implement Wow64 entry points in the Unix library. ctapi32: Implement Wow64 entry points in the Unix library. dnsapi: Implement Wow64 entry points in the Unix library. gphoto2.ds: Implement Wow64 entry points in the Unix library. netapi32: Implement Wow64 entry points in the Unix library. sane.ds: Implement Wow64 entry points in the Unix library. bcrypt: Implement Wow64 entry points in the Unix library. msv1_0: Define the communication structure only on the Unix side. msv1_0: Implement Wow64 entry points in the Unix library. qcap: Implement Wow64 entry points in the Unix library. winspool.drv: Implement Wow64 entry points in the Unix library. ntdll: Create a remote thread in DbgUiIssueRemoteBreakin(). makefiles: Substitute all defined variables in the main makefile. makefiles: Generate the top makefile entirely from configure. makefiles: Explicitly import all the needed libraries. wrc: Ignore the target option. wrc: Windows file formats are always little-endian. wmc: Windows file formats are always little-endian. widl: Windows file formats are always little-endian. wrc: Support only single directories with the -I option. widl: Support loading typelibs stored inside PE files. widl: Search for imported typelibs in the library search path. makefiles: Make importlib dependencies point to their respective dll. include: Stop building tlb files in the include directory. configure: Regenerate with autoconf 2.71. tools: Upgrade the config.guess/config.sub scripts. gdi32/tests: Use the OS/2 last char for the Ansi charset limit. makefiles: Don't copy the source makefile into the sub-directory stub makefiles. makefiles: Always use winebuild to build static libraries. makefiles: Do not install external libraries. Revert "oleaut32: Implement TLB dependencies lookup in resources." oleaut32/tests: Use TYPELIB resource type for all typelibs. makefiles: Directly generate resources also for non-registered typelibs. winebuild: Escape invalid characters in the dll name for static import libraries. makefiles: Use static importlibs on all platforms. winegcc: Don't link directly to ntdll or ntoskrnl import libraries. winebuild: Avoid resolving standard C functions with static importlibs. makefiles: Don't add msvcrt import in dlls built as part of the tests. capi2032: Build as a pure Unix library. ctapi32: Build as a pure Unix library. msvcrt: Don't forward string functions to ntdll. msvcrt: Don't forward itoa() functions to ntdll. wow64win: Add missing thunk for NtUserGetKeyboardLayout(). winegcc: Get rid of PowerPC support. winebuild: Get rid of PowerPC support. widl: Get rid of PowerPC support. tools: Move target CPU and platform handling to the common tools.h header. winegcc: Support an explicit --fake-module option. makefiles: Split the module generation into several helper functions. ntdll: Fix handling of zero size with MEM_DECOMMIT. ntdll: Fix a compiler warning on macOS. makedep: Use a separate variable for cross-compiled importlib objects. Alistair Leslie-Hughes (18): msdasql: Implement IDBProperties SetProperties. include: Add transact.idl to oledb.idl. include: Add trnjoi.idl. msdasql: Trace session interfaces. msdasql: Correct default dialect logic. msdasql: Fix use after free (Coverity). include: Add define SQL_OV_ODBC3_80. msdasql: Fixup GetCommandText wrt dialect. msdasql: Fix initial query value. include: Add SQLGetDiagFieldW prototype. msdasql: IDBProperties doesn't support DBPROPSET_DATASOURCEINFO property set. msdasql: Implement IRowsetInfo GetSpecification. include: Add more DBPROPVAL_ defines. msdasql: Add ICommandWithParameters to command interface. msdasql: Support NULL dialect in GetCommandText. msdasql: Return S_OK in ICommandPrepare Un/Prepare. msdasql: Move ICommandWithParameters to the correct interface. msdasql: Implement IGetDataSource GetDataSource. Andrew Eikum (1): msvcrt: Better handle multiple width specifiers. Andrey Gusev (1): wined3d: Add WINED3DFMT_R16_FLOAT vertex format. André Zwing (1): avicap32: Fix typo in comment. Arkadiusz Hiler (2): msvcrt: Increase module's reference count before returning from _beginthread[ex](). ucrtbase/tests: Test for FreeLibrary() vs _beginthread[ex]() race condition. Aurimas Fišeras (1): po: Update Lithuanian translation. Aurélien Inacio (1): win32u: Use 7-bit ascii for unhandled encodings. Bernhard Kölbl (2): xml2: Use MSVC constants for NaN and infinity. gdiplus: Add pixel conversions to 4bpp indexed. Brendan Shanks (2): sechost: Fix hang when a device notification callback tries to register/unregister a notify. winemac.drv: Remove workarounds for Mac OS X 10.6 and earlier. Chilung Chan (1): po: Update Traditional Chinese translation. Connor McAdams (6): include: Update existing provider definitions in uiautomationcore.idl. include: Define more provider interfaces in uiautomationcore.idl. include: Update existing PROPERTYIDs in uiautomationclient.idl. include: Add UI Automation Pattern ID definitions. uiautomationcore: Implement UiaHostProviderFromHwnd. uiautomationcore/tests: Expand UiaHostProviderFromHwnd tests. Damjan Jovanovic (1): server: Implement vm counters on FreeBSD. Dmitry Timoshkov (5): kernel32/tests: Add a test for loading manifest from resources. ntdll: Return correct status when manifest could not be loaded from file. crypt32: Avoid truncating unicode chars. ntoskrnl: Add IoCreateDeviceSecure semi-stub. comctl32: Add semi-stub for ImageList_WriteEx. Doug Lyons (1): msvcrt: Do not acquire fd lock in msvcrt_create_io_inherit_block. Eduard Permyakov (1): dsound: Correctly report hardware audio buffers as unsupported. Eric Pouech (39): winedump: Fix computation of signed integers in codeview symbol's annotations. dbghelp: Check that we don't add same line number twice. dbghelp: Attach a struct cpu* to every module. dbghelp: Use module's cpu word size instead of sizeof(void*) or sizeof(DWORD_PTR). dbghelp: Use cpu from debuggee's modules rather than debugger's. dbghelp/pdb: Add new basic type to represent char8_t introduced in C++20. dbghelp/pdb: Handle S_LOCAL codeview entries. dbghelp/pdb: Implement loc_compute for pdb backend. dbghelp/pdb: Introduce codeview_init_type_parse() to handle init of type streams. dbghelp/pdb: Let codeview_snarf() handle all module debug information. dbghelp/pdb: Added support for S_INLINESITE and S_INLINESITE_END. dbghelp/pdb: Handle a block in DEBUG_S_LINES subsection spreading across several symbols. dbghelp/pdb: Add line number to inline sites. dbghelp/pdb: Fix start adress of block. dbghelp/msc: Better detect whether IPI stream is present. winedump: Better detect whether IPI stream is present. mscvpdb.h: Fix string types. winedump: Add some more codeview entries. winedump: Pass start offset when dumping symbols. winedump: No longer print current function. winedump: Properly indent multi lines symbol records. winedump: Better handle display of nested symbol entries. dbghelp/dwarf: Introduce a helper to read properly multiple range of addresses. dbghelp/dwarf: Workaround functions with multiple range of addresses. winedbg: Fix command line arguments parsing. winedump: Setup a context in symbol_dumper for S_SEPCODE. winedump: Define and dump POGO codeview record. dbghelp: Relax some failure conditions in SymSetContext and SymSetScopeFromAddr. dbghelp/dwarf: Make use of AT_type if present when parsing an enumeration type. dbghelp/dwarf: Don't register labels without address. dbghelp/dwarf: Fix computation of some location attributes. dbghelp/msc: Silence a couple of unneeded codeview entries while parsing PDB. dbghelp/msc: Support S_SEPCODE codeview record. dbghelp: Fix module name construction. dbghelp: Always search current directory when loading PE modules. dbghelp: Allow 32bit dbghelp to handle 64 addresses. dbghelp: Move debug info loading out of image backends into SymLoadModuleEx(). dbghelp: Detect collision by looking at module's base address in SymLoadModuleEx(). dbghelp: Improve collision handling in SymLoadModuleEx(). Esme Povirk (2): mscoree: Update Wine Mono to 7.0.0. mfplat: Allow deleting open files. Floris Renaud (2): po: Update Dutch translation. winecfg: Add the command line options to the man page. Gabriel Ivăncescu (5): mshtml: Implement inline attributes parsing for createElement. comctl32: Redraw children when the combo box is dropped down. user32: Redraw children when the combo box is dropped down. mshtml: Clear the string dprop associated with the builtin attribute when removing it. mshtml: Actually set the return value when removing an attribute. Georg Lehmann (1): winevulkan: Update to VK spec version 1.2.199. Hans Leidekker (1): ipconfig: Print primary DNS suffix. Henri Verbeet (6): ddraw: Use wined3d_bit_scan() in compute_sphere_visibility(). ntdll: Only add a module dependency if import_dll() returned a modref. wined3d: Allow OpenGL vertex buffer objects to be suballocated from a larger BO. wined3d: Allow OpenGL index buffer objects to be suballocated from a larger BO. wined3d: Allow OpenGL uniform buffer objects to be suballocated from a larger buffer. wined3d: Allow OpenGL atomic counter buffer objects to be suballocated from a larger buffer. Hugh McMaster (2): kernel32/tests: Add tests for the current console font size. kernel32: Return font size, not screen buffer size, from GetCurrentConsoleFontEx. Huw D. M. Davies (6): winecoreaudio: Move DriverProc to midi.c. winecoreaudio: Move get_endpoint_ids to a unixlib. winecoreaudio: Introduce a stream structure. winecoreaudio: Use the global lock to lock the session. winecoreaudio: Use the global lock to protect the audio client. winecoreaudio: Store the channel count and period_ms directly in the audio client. Ismael Luceno (1): server: Fix missing include for uid_t. Ivo Ivanov (21): dinput: Stop calling SendForceFeedbackCommand on device destroy. dinput: Unacquire device when last public reference is released. dinput: Remove some extremely verbose traces, and fix typos. dinput: Always return a valid string from effect_guid_to_string. dinput: Fix HID joystick set_ramp_force end_caps lookup. dinput: Remove redundant check for DIEP_DIRECTION. dinput: Set effect block index in the second type specific report. dinput: Pass buffer byte length to HidD_GetProductString. winebus.sys: Accept whitespaces in strings parsed from uevent. dinput: Return DI_DOWNLOADSKIPPED from SetParameters. dinput: Return DI_OK when HID joystick CreateEffect succeeds. dinput: Move set_parameter_value helper around. include: Declare DIPROP_(PHYSICAL|LOGICAL)RANGE properties. dinput: Add support for DIPROP_(PHYSICAL|LOGICAL)RANGE properties. winebus.sys: Add PID_USAGE_PARAMETER_BLOCK_OFFSET in the set condition report. dinput: Introduce a new set_parameter_value_angle helper. dinput: Fix single-axis effects direction values. joy.cpl: Allow devices as steering wheels, that only support single-axis effects. dinput: Look for the device managed effect creation reports. dinput: Write PID_USAGE_PARAMETER_BLOCK_OFFSET in the set condition report. dinput: Support creating effects using device managed reports. Jacek Caban (37): win32u: Move NtUserGetLayeredWindowAttributes implementation from user32. win32u: Move NtUserSetProp implementation from user32. win32u: Move NtUserGetProp implementation from user32. win32u: Move NtUserRemoveProp implementation from user32. win32u: Don't use free_region in alloc_region. explorer: Set lib name for null driver. winebuild: Use find_clang_tool for ld and nm tools. user32: Introduce user_driver_funcs struct. user32: Use user_driver_funcs to expose user driver function from drivers. win32u: Use user_driver_funcs to pass driver to __wine_set_display_driver. win32u: Move null user driver implementation from user32. win32u: Move NtUserCountClipboardFormats implementation from user32. win32u: Move NtUserGetClipboardFormatName implementation from user32. win32u: Move NtUserIsClipboardFormatAvailable implementation from user32. win32u: Move NtUserGetClipboardOwner implementation from user32. win32u: Move NtUserGetClipboardViewer implementation from user32. win32u: Move NtUserGetUpdatedClipboardFormats implementation from user32. win32u: Move NtUserGetClipboardSequenceNumber implementation from user32. win32u: Move NtUserAddClipboardFormatListener and NtUserRemoveClipboardFormatListener implementations from user32. win32u: Move NtUserGetPriorityClipboardFormat implementation from user32. win32u: Move NtUserAttachThreadInput implementation from user32. win32u: Move NtUserGetKeyState implementation from user32. win32u: Move NtUserGetKeyboardState implementation from user32. win32u: Move NtUserSetKeyboardState implementation from user32. win32u: Move NtUserVkKeyScanEx implementation from user32. win32u: Move NtUserMapVirtualKeyEx implementation from user32. win32u: Move NtUserGetKeyboardLayout implementation from user32. win32u: Move NtUserGetKeyNameText implementation from user32. win32u: Move NtUserGetOpenClipboardWindow implementation from user32. win32u: Move NtUserToUnicodeEx implementation from user32. win32u: Move NtUserActivateKeyboardLayout implementation from user32. win32u: Move NtUserGetKeyboardLayoutList implementation from user32. win32u: Move NtUserUnregisterHotKey implementation from user32. win32u: Move NtUserGetMouseMovePointsEx implementation from user32. win32u: Move NtUserScrollDC implementation from user32. user32: Don't load cursor inside user lock in register_builtin. user32: Move register_builtin_classes call to GetDesktopWindow. Jan Sikorski (5): wined3d: Acquire references to blend states in deferred contexts. wined3d: Acquire references to rasterizer states in deferred contexts. wined3d: Acquire references to depth stencil states in deferred contexts. wined3d: Acquire references to shaders in deferred contexts. wined3d: Acquire references to samplers in deferred contexts. Jinoh Kang (11): win32u: Remove EMFDRV_StretchDIBits and EMFDRV_SetDIBitsToDevice. gdi32/tests: Add tests for recording StretchDIBits in EMFs. gdi32/tests: Add tests for recording SetDIBitsToDevice in EMFs. gdi32: Fix bounding box calculation for EMR_STRETCHDIBITS. gdi32: Allow passing BITMAPINFO with bmiHeader.biSizeImage == 0 for EMF DC. gdi32: Calculate effective number of scan lines and truncate bitmap bits for EMR_SETDIBITSTODEVICE. winedbg: Report current thread ID to GDB for all stop replies. winedbg: Set reuseaddr flag for gdb remote socket. winedbg: Replace packet_realloc() with realloc(). winedbg: Use unsigned int for offset/length in GDB qXfer handler. winedbg: Escape special characters in GDB packet reply. Louis Lenders (4): wbemprox: Add empty DNSDomain to Win32_NetworkAdapterConfiguration. combase: Add stub for RoOriginateError. msctfmonitor: Add stub dll. msctfmonitor: Add stub for InitLocalMsCtfMonitor. Mark Jansen (1): comctl32: Safely handle large wParam in SB_GETPARTS. Martin Storsjö (20): ntdll/tests: Remove an accidental, unused macro in arm64 exception tests. ntdll: Print an error if unable to unwind due to missing libunwind on arm64. ntdll: Don't blindly increment Sp by 8 in leaf functions on arm64. kernel32: Update arch availability for Rtl* forwards to ntdll. ntdll: Implement RtlVirtualUnwind for arm. ntdll/tests: Add tests for RtlVirtualUnwind for arm. winedump: Print the whole multibyte unwind opcode for arm. winedump: Distinguish between 16 and 32 bit nop opcodes in ARM unwind data. winedump: Fix printing of the prologue version of the "ldr lr, [sp], #offset" opcode. winedump: Rewrite dumping of packed ARM unwind info. ntdll: Fix arm call_user_exception_dispatcher with kernel stack for syscalls. ntdll: Save context->Lr in the arm version of RtlRaiseException. ntdll: Include d0-d15 in RtlCaptureContext. ntdll: Remove stack gap in syscalls on arm. ntdll: Implement stack unwinding on arm. ntdll: Implement __C_specific_handler and __jump_unwind for arm. ucrtbase: Hook up __intrinsic_setjmpex for arm. msvcrt: Don't set frame to 0 in arm and arm64 setjmp. ntdll: Error out if unwinding isn't progressing on arm. ntdll: Subtract an offset from pc if dispatch->ControlPcIsUnwound on arm. Mohamad Al-Jaf (2): kernelbase: Implement AppPolicyGetMediaFoundationCodecLoading. kernel32: Forward AppPolicyGetMediaFoundationCodecLoading to kernelbase. Nikolay Sivov (17): mf/session: Implement IsRateSupported(). mf/session: Get rid of some interface pointers casts. mfplay: Fix leaks on error paths (Coverity). evr/mixer: Fix rectangle scaling helper argument check (Coverity). evr/mixer: Preserve frame aspect ratio when rendering. evr/presenter: Remove logic related to picture aspect ratio adjustment. evr/presenter: Add missing break in get_FramesDrawn() (Coverity). mf/tests: Add some more tests for session rate control. mf/session: Expose rate control interfaces. propsys/tests: Add a VT_UI4 test for PropVariantCompareEx(). evr/mixer: Implement repainting requests. evr/mixer: Flush on MFT_MESSAGE_NOTIFY_END_STREAMING. d3d10/effect: Add initial support for indexing expressions. d3d10core/tests: Add a test for DXGI_FORMAT_R8G8_UINT support in vertex buffers. d3d11/tests: Add a test for DXGI_FORMAT_R8G8_UINT support in vertex buffers. wined3d: Add R8G8_UINT to vertex formats list. d3d10/effect: Fix a trace message. Paul Gofman (3): msiexec: Append .msi extension to file name if file is not found. winex11.drv: Check if the surface is in list in wine_vk_surface_release(). bcrypt: Validate secret size in BCryptGenerateSymmetricKey(). Piotr Caban (6): msvcp140: Fix _Winerror_message test failures. msvcp140: Fix _Winerror_map test failures. msvcrt: Skip small-block heap tests if _set_sbh_threshold is not available. ucrtbase: Fix fma test failures. msvcp_win: Add stub dll. msvcp_win: Forward to msvcp140. Rémi Bernon (60): dinput: Always call the device internal poll callback. dinput: Enumerate HID joystick with dinput <= 7 and device type 0. dinput8/tests: Check setting DIPROP_AUTOCENTER on force-feedback joystick. dinput: Pretend that DIPROP_AUTOCENTER is supported. dinput: Check for DIEFFECT_DX6 size when DIEP_STARTDELAY is set. dinput: Support both DIEFFECT_DX5 and DIEFFECT_DX6 parameters. propsys: Fix VT_UI4 comparison, use ulVal instead of uiVal. include: Add some MPEG4 container attributes to mfidl.idl. winebus.sys: Use +hid debug channel. hidparse.sys: Use +hid debug channel. hid: Use +hid debug channel instead of +hidp. winexinput.sys: Use +xinput channel. dinput: Fix HID joystick GetEffectInfo / GetCapabilities flags. dinput: Improve object dwOfs values for dinput version <= 0x700. dinput8/tests: Make test_device_input tests more predictable. dinput8/tests: Add older dinput HID force-feedback tests. dinput8/tests: Add more force-feedback effect direction tests. dinput: Allow DIEFF_CARTESIAN directions when cAxes matches. dinput: Check for DIEFF_POLAR axes count before capacity. dinput: Only convert DIEFFECT directions to spherical when needed. dinput: Fix DIEFF_CARTESIAN to DIEFF_SPHERICAL conversion. dinput: Only call internal poll callback when device is acquired. dinput: Support up to 6 effect conditions. dinput: Use a specific buffer for set envelope output report. server: Wait for process exit more often and using increasing delay. services: Terminate all service processes on shutdown. winspool.drv: Fix incorrect read of enumerated printer count. dinput8/tests: Improve HID joystick tests output. dinput8/tests: Test effect creation with unacquired device. dinput8/tests: Introduce new create_dinput_device helper. dinput8/tests: Test device types with older dinput versions. dinput8/tests: Make sure SetCooperativeLevel window is foreground. dinput: Implement HID joystick object names from their usages. dinput: Stub support for DIPROP_AUTOCENTER property. dinput8/tests: Add some IDirectInput(8)_EnumDevices tests. dinput: Implement IDirectInput_EnumDevices with IDirectInput8_EnumDevices. dinput: Implement IDirectInputJoyConfig8_GetConfig with EnumDevices. dinput: Implement EnumDevicesBySemantics with EnumDevices. dinput: Handle device types and flags directly in EnumDevices. dinput8/tests: Add some HID device gain report tests. dinput: Stub support for the DIPROP_FFGAIN property. winebus.sys: Add a PID device gain output report. dinput: Look for the PID device gain output report. dinput: Write PID device gain reports when necessary. winebus.sys: Implement PID device gain for SDL devices. winebus.sys: Implement PID device gain for UDEV lnxev devices. dinput8/tests: Add some more (Get|Set)Property tests. dinput: Move HID joystick extra caps to struct dinput_device. dinput: Reset axis and pov values on object property change. dinput: Guard (Get|Set)Property logic within the device CS. dinput: Factor (Get|Set)Property checks together. dinput: Move SetProperty implementation to the generic device. dinput: Move GetProperty implementation for objects to generic device. dinput: Stub support for the DIPROP_CALIBRATIONMODE property. winebus.sys: Use last report length in IOCTL_HID_GET_INPUT_REPORT. winebus.sys: Remove effect gain from the crafted PID reports. dinput: Only scale parameter value if its physical range is defined. winebus.sys: Avoid unnecessary scaling of effect parameter values. win32u: Guard font unused_entry against race condition. dinput8/tests: Add tests for device managed effect creation. Serge Gautherie (1): riched20: Check font_cache in select_style() too. Stefan Dösinger (5): include: Add more dummy msvc SAL macros. include: _InterlockedExchangePointer is an intrinsic on x86 in newer MSVC versions. d3d8/tests: Port the filling convention test to d3d8. d3drm/tests: Do not depend on a todo_wine result more than necessary. ddraw/tests: Port test_filling_convention to ddraw. Thomas Faber (6): comctl32/tests: Test SB_GETPARTS with large wParam. msvcrt/tests: Show that spawn does not require locking of fds. dbghelp: Accept NULL search path in SymSetSearchPath. dbghelp/tests: Add tests for SymSetSearchPath. dbghelp: Use . instead of concrete path for search path. dbghelp: Use _NT_ALT_SYMBOL_PATH. Torge Matthies (1): shell32: Fix getting file attributes from the file system in SHELL32_GetItemAttributes. Zebediah Figura (40): winegstreamer: Implement INSSBuffer::GetBuffer(). winegstreamer: Implement INSSBuffer::GetMaxLength(). winegstreamer: Implement INSSBuffer::SetLength(). winegstreamer: Implement IWMReader::Open(). winegstreamer: Implement IWMOutputMediaProps::GetType(). wined3d: Reference vertex buffer objects only after calling context_update_stream_info(). wined3d: Make the "buffer_object" field of struct wined3d_buffer a wined3d_bo pointer. wined3d: Introduce a wined3d_buffer_update_sub_resource() helper. wined3d: Parse ISG1, PSG1 and OSG1 signatures. wined3d: Introduce wined3d_context_gl_reference_buffer(). wined3d: Avoid accessing the "bo" member of struct wined3d_buffer_gl. wined3d: Allocate all OpenGL buffer BOs from heap. wined3d: Try to allocate new Vulkan BOs from the client thread for DISCARD maps. winegstreamer: Implement IWMSyncReader::SetStreamsSelected(). winegstreamer: Implement IWMReaderAdvanced::SetStreamsSelected(). winegstreamer: Implement IWMSyncReader::GetStreamSelected(). winegstreamer: Implement IWMReaderAdvanced::GetStreamSelected(). wmvcore/tests: Add tests for stream selection. winegstreamer: Implement IWMReaderAdvanced::SetAllocateForOutput(). wmvcore/tests: Add tests for user-allocated samples. winegstreamer: Implement IWMReaderAdvanced::SetReceiveStreamSamples(). winegstreamer: Implement IWMReaderAdvanced::SetAllocateForStream(). winegstreamer: Implement IWMSyncReader::SetReadStreamSamples(). winegstreamer: Implement IWMReaderAdvanced::GetMaxStreamSampleSize(). winegstreamer: Add IWMMediaProps to the stream config object. winegstreamer: Implement IWMMediaProps::GetMediaType() for the stream config object. winegstreamer: Call IWMReaderCallbackAdvanced::OnTime() when using a user clock. wined3d: Make the "buffer_object" field of struct wined3d_bo_address a wined3d_bo pointer. wined3d: Make the "buffer_object" field of struct wined3d_const_bo_addr a wined3d_bo pointer. wined3d: Make the "counter_bo" field of struct wined3d_unordered_access_view a wined3d_bo pointer. ntdll: Implement NtAlertThreadByThreadId and NtWaitForAlertByThreadId. ntdll/tests: Add basic tests for thread-id alert functions. ntdll: Implement thread-ID alerts using futexes if possible. ntdll: Implement thread-ID alerts using Mach semaphores on Mac. ntdll: Reimplement Win32 futexes on top of thread-ID alerts. ntdll: Reimplement the critical section fast path on top of Win32 futexes. ntdll: Get rid of the direct futex path for condition variables. ntdll: Reimplement SRW locks on top of Win32 futexes. wined3d: Add a helper to calculate the vertex attribute address for a stream element. wined3d: Allow OpenGL transform feedback buffer objects to be suballocated from a larger buffer. Zhiyi Zhang (12): comctl32/button: Use correct state for BS_3STATE and BS_AUTO3STATE buttons. comctl32/button: Use correct state for default buttons. comctl32/button: Support BS_PUSHLIKE for themed check boxes and radio buttons. comctl32/button: Correctly align parts in group boxes with BS_PUSHLIKE when theming is off. comctl32/button: Support BS_PUSHLIKE for themed group boxes. comctl32/button: Support BS_PUSHLIKE for themed command links. shell32: Check This->sPathTarget before calling get_display_name(). uxtheme: Support more progress bar parts. light.msstyles: Fix incorrect progress bar chunk color. light.msstyles: Add more progress bar parts. uxtheme: Do not overwrite system metrics when loading the same theme. comctl32/button: Use client rectangle as content rectangle for themed group boxes. Ziqing Hui (2): d3dx10: Implement D3DX10CreateTextureFromFile{A,W}. d3dx10: Implement D3DX10CreateTextureFromResource{A,W}. Łukasz Wojniłowicz (1): po: Update Polish translation. -- Alexandre Julliard julliard@winehq.org