Fixes https://bugs.winehq.org/show_bug.cgi?id=55640.
The lightening/darkening values are loosely based on Qt 6's fallback code: https://github.com/qt/qtbase/blob/ba98644180bcaf40341a9005abe93575cf45cc5a/….
The values are not perfect, technically it should use Software\Microsoft\Windows\DWM\AccentColor. But since to my knowledge, wine doesn't use AccentColor in any way, this should do the trick for now. `COLOR_HIGHLIGHT` should be roughly the same color as the accent color in most cases. Qt 6 uses the accent color as its highlight color anyways.
--
v2: dmime: Implement DirectMusicSeqTrack IPersistStream_Load.
dmime: Get rid of the IDirectMusicSeqTrack typedef.
dmband: Rewrite band track IPersistStream_Load.
dmband: Rewrite band track DBMT chunk parsing.
dmband: Rewrite band track lbdl/lbnd lists parsing.
msado15: Recordset::Open - Correctly update count/index values.
winecoreaudio: Stop using the deprecated kAudioObjectPropertyElementMaster constant.
user32/tests: Fix WM_WINDOWPOSCHANGED entries.
uiautomationcore: Handle EVENT_SYSTEM_ALERT in IProxyProviderWinEventHandler::RespondToWinEvent() for MSAA providers.
uiautomationcore: Add stub IProxyProviderWinEventHandler implementation for MSAA providers.
uiautomationcore: Implement IRawElementProviderFragmentRoot::GetFocus for MSAA providers.
uiautomationcore: Pass through failure HRESULTS on MSAA accState based property IDs for MSAA providers.
uiautomationcore/tests: Increase wait timeout for cross-process event with navigation.
dmusic: Keep the original instrument patch in the entry.
dmusic/tests: Fixup chunk alignment in steam_end_chunk.
dmime/tests: Test band track and DMUS_PATCH_PMSG.
dmime/tests: Test sequence track and DMUS_NOTE_PMSG.
dmime/tests: Test wave segments and DMUS_WAVE_PMSG.
dmime/tests: Add some DMUS_NOTIFICATION_PMSG tests.
msvcp90: Silence FIXME in _Locinfo::_Locinfo_ctor and _Locinfo::_Locinfo_Addcats functions.
mshtml: Use the event_target vtbl's handle_event for all nodes.
mshtml: Use the dispex's invoke for all nodes.
mshtml: Use the dispex's get_name for all nodes.
mshtml: Use the dispex's get_dispid for all nodes.
mshtml: Use the dispex's destructor for all nodes.
d3d10core/tests: Test performing a full clear after a draw.
wined3d: Pass a wined3d_stateblock_state to wined3d_device_validate_device().
d3d11/tests: Properly mark the indexed sample position test as succeeding with the Vulkan backend.
wined3d: Don't validate the frontbuffer's DRAWABLE location in wined3d_swapchain_resize_buffers() when NO3D is set.
d3drm: Correctly query for the returned interface.
dsound: Use malloc and free instead of _recalloc.
wineps.drv: Don't crash if specified font is missing required table in T42_download_header.
wineps.drv: Remove unused hmtx_tab field from TYPE42 structure.
kernel32/tests: Update dll characteristics to make the module loadable on ARM64.
kernel32/tests: Unaligned SRW locks crash on ARM platforms.
kernel32/tests: Don't make assumptions about argv[0] of the main process.
kernel32/tests: Comment out one more test that can crash on Windows.
ntdll: Remove unneeded SEH annotations in Unix code.
vcomp: Add SEH annotations to ARM64 assembly code.
rpcrt4: Add SEH annotations to ARM64 assembly code.
oleaut32: Add SEH annotations to ARM64 assembly code.
winmm/tests: Avoid truncating the handle passed to waveInGetDevCapsW().
msi: Use CreateFileW() for handling path from cabinet_open() instead.
wshom: Use the wcsdup function instead of reimplementing it.
shell32: Use the wcsdup function instead of reimplementing it.
ncrypt: Use the wcsdup function instead of reimplementing it.
msvfw32: Use CRT allocation functions.
mciwave: Use CRT allocation functions.
gameux: Use CRT allocation functions.
advpack: Use CRT allocation functions.
oleaut32: Use CRT allocation functions in typelib.c.
oleaut32: Use CRT allocation functions in olepicture.c.
oleaut32: Use CRT allocation functions in hash.c.
oleaut32: Use CRT allocation functions in connpt.c.
ntdll: Allow empty application nodes in actctx.
msvcp140_atomic_wait: Add __std_acquire_shared_mutex_for_instance implementation.
uiautomationcore: Don't return oleacc proxy IAccessibles from GetIAccessible for MSAA providers.
uiautomationcore: Implement IRawElementProviderFragment::get_FragmentRoot for MSAA providers.
uiautomationcore: Add a common helper function for querying IServiceProvider on IAccessible interfaces.
uiautomationcore: Add stub IRawElementProviderFragmentRoot implementation for MSAA providers.
uiautomationcore/tests: Add support for debug printing Provider method calls.
uiautomationcore/tests: Add support for debug printing Accessible method calls.
uiautomationcore/tests: Add method expect definitions for all Accessible test interfaces.
dmime: Use segment_append_track in Clone and parse_track_form.
dmime: Rewrite segment IDirectMusicSegment_RemoveTrack.
dmime: Rewrite segment IDirectMusicSegment_InsertTrack.
dmime: Rewrite segment IDirectMusicSegment_GetTrackGroup.
dmime: Rewrite segment IDirectMusicSegment_GetTrack.
dmime: Avoid leaking tracks in IDirectMusicSegment_Release.
dmime: Get rid of the IDirectMusicSegmentImpl typedef.
dmime: Use one-liners for segment parameter checks.
dmime: Rename IDirectMusicSegment8Impl method prefix to segment.
dmband: Rewrite band IPersistStream_Load.
dmband: Rewrite band dmbd chunk parsing.
dmband: Rewrite band lbil list parsing.
dmband: Rewrite band lbin list parsing.
dmband: Avoid leaking collection on band release.
dmband: Avoid leaking bands on band track Release.
dmband: Get rid of the IDirectMusicBandTrack typedef.
dmband: Get rid of the IDirectMusicBandImpl typedef.
dmband: Rename IDirectMusicBandImpl prefix to band.
mshtml: Use the dispex's query_interface for the remaining nodes.
mshtml: Use the dispex's query_interface for DOMTextNodes.
mshtml: Use the dispex's query_interface for Document nodes and fragments.
mshtml: Use the dispex's query_interface for DocumentType nodes.
mshtml: Use specific dispex for each SVG element.
mshtml: Use specific dispex vtbls for remaining HTML elements.
ntdll/tests: Test both FileLinkInformation and FileLinkInformationEx in test_file_link_information.
include: Add flags to FILE_LINK_INFORMATION used by FileLinkInformationEx.
ntdll/tests: Test both FileRenameInformation and FileRenameInformationEx in test_file_rename_information.
include: Add flags to FILE_RENAME_INFORMATION used by FileRenameInformationEx.
user32: Add hotpatchable wrapper for GetWindowLongA.
user32: Make CallWindowProcA hotpatchable.
gdi32: Make GetStockObject hotpatchable.
include: Update the d3d12 headers from vkd3d.
winebuild: Make the syscall thunks position-independent on ARM64.
winebuild: Add a few more SEH annotations.
winebuild: Remove unnecessary .cfi_startproc/endproc annotations.
winebuild: Add a separate helper for .seh annotations.
include: Move RTL functions that belong in winnt.h from winternl.h to winnt.h.
gdiplus: Fix GdipCreateFont character set initialization.
gdiplus/tests: Test GdipCreateFont character set initialization.
msvcr110: Use Context blocking functions in _StructuredTaskCollection class.
msvcr110: Simplify _StructuredTaskCollection finished task counter updating.
msvcp110: Add _Winerror_map implementation.
mshtml: Get rid of useless element destructors.
mshtml: Move node vtbl destructor methods down.
mshtml: Move node vtbl QI methods around.
mshtml: Move some SelectElement methods up.
mshtml: Move some ObjectElement methods up.
mshtml: Move some IFrame methods down.
mshtml: Move some FrameElement methods down.
mshtml: Move some FormElement methods up.
mshtml: Move some AreaElement methods up.
mshtml: Move some AnchorElement methods up.
mshtml: Move some Element methods around.
dmime: Pass the DMUS_PMSG through the performance graph.
dmime: Rename DMUS_PMSGToItem to message_from_DMUS_PMSG.
dmime: Remove unnecessary struct message members.
dmime: Use a struct list to keep performance messages.
dmime: Get rid of the DMUS_PMSGItem typedef.
dmime: Convert DMUS_PMSG music and reference times in SendPMsg.
dmime/tests: Test that SendPMsg also converts reference time.
dbghelp: Check that dwarf unwinder did actually unwind.
include: Add missing WinEvent definitions.
server: Return WSAEOPNOTSUPP on listen() if the socket's type is SOCK_DGRAM.
user32/tests: Account for some messages from dual-monitor setups.
mfreadwrite/reader: Update to IMFSourceReaderEx.
wbemprox: Fix out-of-bounds access caused by codepoints above U+00FF.
d3d10/effect: Implement 'mov' opcode for expressions.
dmusic: Implement instrument articulation downloads.
dmusic: Parse instrument regions articulation lists.
dmusic: Implement downloading wave to port.
dmusic: Keep an internal ref on the instrument's collection.
dmusic: Parse collection wave lists.
dmusic: Parse collection wave table.
dmusic: Rewrite downloading instrument to port.
dmusic: Avoid swallowing collection Load failures.
gdiplus: Copy the compound array in GdipClonePen().
uiautomationcore: Implement UiaHasServerSideProvider.
uiautomationcore: Add a common helper function for creating HUIANODEs.
uiautomationcore: Add UiaHasServerSideProvider stub.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3931