Zhiyi Zhang (@zhiyi) commented about dlls/comctl32/treeview.c:
> !(item->state & TVIS_EXPANDEDONCE));
> if (sendsNotifications)
> {
> - if (!TREEVIEW_SendExpanding(infoPtr, item, TVE_EXPAND))
> - {
> - TRACE(" TVN_ITEMEXPANDING returned TRUE, exiting...\n");
> - return FALSE;
> - }
> + if (!TREEVIEW_SendExpanding(infoPtr, item, TVE_EXPAND))
Let's change TREEVIEW_SendExpanding to return the return value from TREEVIEW_SendTreeviewNotify() so we don't to need negate the return value twice and it's more intuitive this way.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6218#note_78098
Zhiyi Zhang (@zhiyi) commented about dlls/comctl32/tests/treeview.c:
> }
> case TVN_ITEMEXPANDINGA:
> {
> - UINT newmask = pTreeView->itemNew.mask & ~TVIF_CHILDREN;
> + UINT newmask;
> + if (tvn_itemexpanding_ret)
> + {
> + tvn_itemexpanding_ret = 0;
Let's use a similar naming convention like other global variables, for example, g_reject_tvn_itemexpanding. And let parent_wnd_proc always return TRUE when g_reject_tvn_itemexpanding is TRUE and then reset the variable to zero in test_expandnotify() after your tests.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6218#note_78093
Adding PSN_QUERYINITIALFOCUS helped fix some focus issues with the property sheet in bug 54862. Previously the listview in the tab control did not get focus from the start when it should have.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54862
--
v12: comctl32: Add handling for PSN_QUERYINITIALFOCUS in prop.c.
comctl32/tests: Add test for PSN_QUERYINITIALFOCUS for the propsheet.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6145
Because WINENV is limited (32767 bytes), and HOSTENV can be much larger,
a whitelisting approach is used to keep WINENV as small as possible.
Currently, only the following envvars are propagated from the host env to WINENV
WINEPATH, WINEPWD, WINEHOME, WINETEMP, WINETMP, WINEQT_, WINEVK_, WINEXDG_SESSION_TYPE
Moreover, the NIXENV (env for running wine processes - not applications) on the
host system is not produced from WINENV anymore, but the global ENV
is propagated to all wine processes and threads.
This might be an alternative approach to MR!5231, MR!6140, bug #56941
and should provide a more deterministic behaviour of wine, because unrelated
envvars do have no influence on the env for running windows applications.
Initial tests (winemine, notepad, cmd, etc) seem to run fine, but some envvars might need additional
consideration. XVDK_* was mentioned, WINE*, MESA_*, VK_*, QT_*, LIBGL_* are other suspects.
Moreover, this is my first merge request, so your feedback is highly appreciated.
--
v15: ntdll: main_envp has been replaced by environ
ntdll: remove is_dynamic_env_var(...) because it is not needed anymore
ntdll: remove unused vars
ntdll: remove dead code
ntdll: conversion from HOSTENV to WINENV is now using whitelisting instead of blacklisting of envvars currently only envvars "WINE"<special_var> (as defined in is_special_env_var() ) are whitelisted.
ntdll: separate env for windows applications (WINENV) from env for wine processes (NIXENV) WINENV is typically limited to 32767 WCHAR, the host environment where wine processes are running can be much larger. Keeping the two envs separate enables a more granula handling of envvars. (see also MR!5231, MR!6140, bug #56941)
https://gitlab.winehq.org/wine/wine/-/merge_requests/6166
Superseding https://gitlab.winehq.org/wine/wine/-/merge_requests/6188
--
v3: mf/tests: Test 2D buffers can override stride.
mf/tests: Test differing height attributes.
mf/tests: Test 1D/2D output on 2D buffers.
mf/tests: Test video processor with 2D buffers.
mf/tests: Cleanup the video processor test list.
mfplat: Implement MFCreateMediaBufferFromMediaType for video formats.
mfplat/tests: Add more tests for MFCreateMediaBufferFromMediaType.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6220
Because WINENV is limited (32767 bytes), and HOSTENV can be much larger,
a whitelisting approach is used to keep WINENV as small as possible.
Currently, only the following envvars are propagated from the host env to WINENV
WINEPATH, WINEPWD, WINEHOME, WINETEMP, WINETMP, WINEQT_, WINEVK_, WINEXDG_SESSION_TYPE
Moreover, the NIXENV (env for running wine processes - not applications) on the
host system is not produced from WINENV anymore, but the global ENV
is propagated to all wine processes and threads.
This might be an alternative approach to MR!5231, MR!6140, bug #56941
and should provide a more deterministic behaviour of wine, because unrelated
envvars do have no influence on the env for running windows applications.
Initial tests (winemine, notepad, cmd, etc) seem to run fine, but some envvars might need additional
consideration. XVDK_* was mentioned, WINE*, MESA_*, VK_*, QT_*, LIBGL_* are other suspects.
Moreover, this is my first merge request, so your feedback is highly appreciated.
--
v14: dnsapi/tests: Update tests for winehq.org DNS changes.
mshtml: Add support for script element prototype objects.
mshtml: Add support for object and embed element prototype objects.
mshtml: Add support for link element prototype objects.
mshtml: Add support for input elements prototype objects.
mshtml: Add support for head elements prototype objects.
mshtml: Add support for frame elements prototype objects.
mshtml: Add support for form element prototype objects.
mshtml: Add support for area element prototype objects.
mshtml: Add support for anchor element prototype objects.
mshtml/tests: Use winetest.js helpers in xhr.js.
rsaenh: Don't crash when decrypting empty strings.
d3d9/tests: Add comprehensive fog tests.
wined3d: Use 1.0 for position W when using the FFP.
d3d9/tests: Test position attribute W when using the FFP.
wined3d: Feed point scale constants through a push constant buffer.
wined3d: Hardcode 1.0 point size for shader model >= 4.
wined3d: Store the normal matrix as a struct wined3d_matrix.
wined3d: Feed the precomputed normal matrix through a push constant buffer.
wined3d: Pass d3d_info and stream_info pointers to wined3d_ffp_get_[vf]s_settings().
ntdll: Try to use page size from host_page_size() for macOS.
include: Add DECLSPEC_CHPE_PATCHABLE definition.
user32: Implement EVENT_OBJECT_STATECHANGE for BST_PUSHED.
ntdll: Raise exception on failed CS wait.
hidclass: Start the HID device thread with the FDO.
hidclass: Pass HIDP_DEVICE_DESC to find_report_with_type_and_id.
hidclass: Use a single lock for PDO queues and removed flag.
hidclass: Read reports with the largest input report size over TLCs.
hidclass: Use poll_interval == 0 for non-polled devices.
mshtml: Add support for MutationObserver consturctor and prototype objects.
mshtml: Use host object script bindings for Option constructor object.
mshtml: Add support for option element prototype objects.
mshtml: Use host constructor script bindings for XMLHttpRequest constructor object.
mshtml: Use host constructor script bindings for Image constructor object.
jscript: Introduce HostConstructor function type.
mshtml: Add support for image element prototype objects.
configure: Test PE compilers after setting their target argument.
shell32: Make SHGetStockIconInfo() attempt to set icon.
kernelbase: Implement GetTempPath2A() and GetTempPath2W().
win32u: Force updating the display cache when virtual desktop state changes.
ntdll: Implement NtQuerySystemInformationEx( SystemProcessorIdleCycleTimeInformation ) on Linux.
kernel32: Implement QueryIdleProcessorCycleTime[Ex]().
ntdll: Stub NtQuerySystemInformation[Ex]( SystemProcessorIdleCycleTimeInformation ).
include: Always declare _setjmp in setjmp.h on i386 targets.
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/6166
The existing video_processor tests were modified to also test 2D
buffers (in addition to the existing 1D buffer tests).
Because 2D buffers offer both a 1D view and 2D view of the buffer data,
additional checks were also added to test the 2D view of the data.
2D buffers can also include their own stride value. So additional tests
were added to ensure that a 2D buffer can override the stride settings of
the input/output media attributes of a transform.
And finally, tests for transforming from a buffer with a smaller input height
to a greater output height were also added.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6188
When the listview expands or collapses an item it notifies the parent using the TVN_ITEMEXPANDING message. The parent can return true on this message and it prevents the treeview from expanding or collapsing the item. WINE does not let you deny TVN_ITEMEXPANDING by returning true.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53727
--
v3: comctl32/treeview: Allow treeview parent to deny treeview expansion.
comctl32/tests: Add test to check if treeview expansion can be denied.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6218
Superseding https://gitlab.winehq.org/wine/wine/-/merge_requests/6188
--
v2: mf/tests: Test 2D buffers can override stride.
mf/tests: Test differing height attributes.
mf/tests: Test 1D/2D output on 2D buffers.
mf/tests: Test video processor with 2D buffers.
mf/tests: Cleanup the video processor test list.
mfplat: Implement MFCreateMediaBufferFromMediaType for video formats.
mfplat/tests: Add more tests for MFCreateMediaBufferFromMediaType.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6220
I think it would be very nice to have something like that to reduce the burden of implementing COM interfaces. This shows for instance on the windows.gaming.input module a 30% LoC reduction (from ~6800 to ~4700), even though the module already had a boilerplate helper macros already.
The MR introduces macros to automatically implement each IUnknown method, as well as all of them at once. It also includes a helper to implement IInspectable methods at once, as well as macros to forward both interface methods to a base interface or an outer object. Last, it provides higher-level macros to implement a main interface and any number of sub interfaces and generate IUnknown, forwarding and vtables for all of them at once, with IInspectable support when needed.
It uses widl to generate additional per-interface macros, for things like inheritance and vtable generation. The rest of the macros are otherwise shared in a Wine-specific header.
The implementation is split to show individual macro being used, although they are later replaced by higher-level macros. The individual helpers are still useful in some corner cases where specific behavior needs to be implemented, or for aggregating classes.
--
v2: windows.gaming.input: Use the new COM macros everywhere possible.
include: Introduce new macros for COM heritage implementation.
widl: Generate some INTERFACE_IMPL/FWD helper macros.
include: Introduce new macros for IInspectable WinRT implementation.
include: Introduce new macros for COM IUnknown implementation.
include: Introduce new macros for COM QueryInterface implementation.
widl: Generate some QUERY_INTERFACE helper macros.
include: Introduce new macros for COM AddRef/Release implementation.
include: Introduce new helper macros for COM implementation.
windows.gaming.input: Use the new INTERFACE_VTBL macros.
widl: Generate some INTERFACE_VTBL helper macros.
windows.gaming.input: Use a separate interface for IAgileObject.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6207
When the listview expands or collapses an item it notifies the parent using the TVN_ITEMEXPANDING message. The parent can return true on this message and it prevents the treeview from expanding or collapsing the item. WINE does not let you deny TVN_ITEMEXPANDING by returning true.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53727
--
v2: comctl32/treeview: Allow treeview parent to deny treeview expansion.
comctl32/tests: Add test to check if treeview expansion can be denied.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6218
This merge request implements the `httpapi.dll` `HttpResponseSendEntityBody` function and associated tests. API documentation was written by me by paraphrasing/re-writing what I had read for the function from the MSDN documentation. I am adding this function to enable the remote API component of the Space Engineers Dedicated Server.
Implementation notes:
- I mainly copied the relevant portion of `HttpSendHttpResponse` for `HttpResponseSendEntityBody`.
- I updated the `http_response` struct to add a field `response_flags`
- This field tracks the flags passed in to `HttpSendHttpResponse` and `HttpResponseSendEntityBody`.
- This was needed because the clean-up steps in `http.sys` need to be skipped when `HTTP_SEND_RESPONSE_FLAG_MORE_DATA` is set.
- I updated `HttpSendHttpResponse` to handle the `HTTP_SEND_RESPONSE_FLAG_MORE_DATA` flag by omitting the `Content-Length` header and setting the `response_flags` field in the `response` object passed to `http.sys`.
- The `Content-Length` header is omitted by the Windows implementation and thus I omitted it here for conformance purposes.
- I updated `http_send_response` in `http.sys` to skip the connection clean up steps if the `HTTP_SEND_RESPONSE_FLAG_MORE_DATA` flag was set. This works for both `HttpSendHttpResponse` and `HttpResponseSendEntityBody` as either could set the flag to continue to send more data.
- It is not 100% clear to me what the cleanup steps are doing. In particular, I am uncertain what lines 1011-1016 and 1023-1027 are doing, but based on context it seemed appropriate to keep them with the other connection cleanup steps.
For testing, I duplicated the existing `HttpSendHttpResponse` test but modified it to set the `HTTP_SEND_RESPONSE_FLAG_MORE_DATA` flag and then followed up with a call to `HttpResponseSendEntityBody` with new data. The validation ensures that data from both the initial response and follow up response are contained in the final response obtained via `recv()`. On Windows 11 this happens immediately without any delay, but in Wine I had to add a `Sleep(100)` to give enough time for the follow up response to be received in the socket buffer by the time the `recv()` call was made in the test. I could have looped the `recv()` call to collect all of the response, but that felt more complicated than adding a minor delay. The tests were verified against Windows 11 Pro (build 22621.3880).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6216
--
v2: mshtml: Add support for MutationObserver consturctor and prototype objects.
mshtml: Use host object script bindings for Option constructor object.
mshtml: Add support for option element prototype objects.
mshtml: Use host constructor script bindings for XMLHttpRequest constructor object.
mshtml: Use host constructor script bindings for Image constructor object.
jscript: Introduce HostConstructor function type.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6212
Tested using C&C Red Alert 2; selection of interface and network communication worked as expected. IPX traffic correctly sent to the selected interface only, as confirmed by **tcpdump(8)**.

--
v4: ws2_32: Fully implement socket options IPX_ADDRESS and IPX_MAX_ADAPTER_NUM on Linux
https://gitlab.winehq.org/wine/wine/-/merge_requests/6191
Tested using C&C Red Alert 2; selection of interface and network communication worked as expected. IPX traffic correctly sent to the selected interface only, as confirmed by **tcpdump(8)**.

--
v2: ws2_32: Fully implement socket options IPX_ADDRESS and IPX_MAX_ADAPTER_NUM on Linux
https://gitlab.winehq.org/wine/wine/-/merge_requests/6191
Otherwise, with multi-TLC devices, concurrent PDO threads would steal
reports from each other, which causes random timeouts in the tests.
Fixes: c65d5b094825afdafba462a4050a490426f3cd51
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6214
I have opened https://gitlab.winehq.org/wine/wine/-/merge_requests/6213 which I believe should fix the issue in a simpler way.
Note that it's not completely correct in any case, and there might be some unexpected behavior if applications rely on monitor display settings. We still allow different virtual desktop window sizes while the underlying virtual desktop size should always be the same as the monitor rectangles, which is normally (on Windows) the same across all the desktops of the interactive window station.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6150#note_77860
Move implementation of these 2 options into ntdll, and add 2 ioctl codes
for calling from ws2_32.
Query configured IPX interfaces by reading /proc/net/ipx/interface of
Linux procfs, enabling applications to iterate multiple IPX interfaces.
This can be useful when a node have multiple IPX interfaces, and
application need to receive/send packets from/to a non-primary IPX
interface.
Signed-off-by: WHR <whr(a)rivoreo.one>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6191
I think it would be very nice to have something like that to reduce the burden of implementing COM interfaces. This shows for instance on the windows.gaming.input module a 30% LoC reduction (from ~6800 to ~4700), even though the module already had a boilerplate helper macros already.
The MR introduces macros to automatically implement each IUnknown method, as well as all of them at once. It also includes a helper to implement IInspectable methods at once, as well as macros to forward both interface methods to a base interface or an outer object. Last, it provides higher-level macros to implement a main interface and any number of sub interfaces and generate IUnknown, forwarding and vtables for all of them at once.
It uses widl to generate additional per-interface macros, for things like inheritance and vtable generation. The rest of the macros are otherwise shared in a Wine-specific header.
The implementation is split to show individual macro being used, although they are later replaced by higher-level macros. The individual helpers are still useful in some corner cases where specific behavior needs to be implemented, or for aggregating classes.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6207
Fix the wayland side of https://bugs.winehq.org/show_bug.cgi?id=55336
### Exit menu key by default:
That's the actual behavior, any non-special key will exit the menu key, and be sent to the client.
I was also wondering if we should add `menu_sys_key = f10_key = 0;` when receiving a `WM_ACTIVATE` in `win32u/defwnd.c`'s `default_window_proc` but I guess not ?
### Fix repeated key for no reason:
For some reason when ALT is pressed, it is spammed and thus spams SYS_COMMAND. This fix that, but I don't know what I am doing here. I don't see any repeating key spamming with winex11 but I could be wrong. However alt/SYS_COMMAND should not be repeated.
That wasn't happening with winex11.drv.
### Fix release_all_keys modifier filtering:
That was the main reason why alt-tab leads to the menu key, NtUserGetAsyncKeyboardState also uses left and right system keys.
### Fix release_all_keys scan value:
This one is incomplete, the scan code or something else is broken, at least with the down arrow on a french azerty keyboard. Even though release_all_keys sends the input for the down arrow, it is not transmitted to NtUserTranslateMessage.
keyboard_handle_key send a key=28 and scan=0x150, but release_all_keys sends key=28 and scan=0x50. Winex11 sends 0x50, but internally NtUserTranslateMessage receives 0x150.
This results in the down arrow kept being repeated while being focused out, and after focusing in, pressing again the arrow is needed.
I tried changing things but ultimately it doesn't change anything.
Maybe NtUserMapVirtualKeyEx is broken or is it the handling of the keyboard layout ? Or is it actually keyboard_handle_key ?
Winex11 and winemac uses `if !(NtUserGetAsyncKeyboardState(state)) return;` but I guess here we don't need to as we want to release all keys even if it fails ?
--
v2: winewayland.drv: Fix release_all_keys scan value
winewayland.drv: Fix release_all_keys modifier filtering
server: Fix repeated key for no reason
https://gitlab.winehq.org/wine/wine/-/merge_requests/6199
Currently shell32 only transfers the plain icon for `Shell_NotifyIcon` calls, ignoring balloon icons. This patch allows transferring both images to explorer.exe tray.
--
v7: shell32: add support for balloon icon copying
https://gitlab.winehq.org/wine/wine/-/merge_requests/2875
> virtual monitor is different than physical monitor,it has no builtin resolution. it is a window on host. for example, wine explorer.exe /desktop=123x456 can also show. so it has no need for apply builtin mode.
Of course, the virtual monitor window doesn't have any real resolution. However, it's a virtual monitor, its purpose is to simulate a physical monitor. That's why we added a bunch of fake resolutions so that functions like ChangeDisplaySettings() can succeed. The initial resolution/size of the virtual monitor should be the one specified by the user, either via the registry or command line.
> we can chat by weixin, my weixinhao fan-wenjie
You can use #winehackers at libera IRC. So that others can see and maybe join the conversation.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6150#note_77734
Rémi Bernon (@rbernon) commented about dlls/winebus.sys/main.c:
> RtlEnterCriticalSection(&ext->cs);
> list_add_tail(&ext->reports, &report->entry);
>
> - if (!ext->collection_desc.ReportIDs[0].ReportID) last_report = ext->last_reports[0];
> + for ( i = 0; i < ext->collection_desc.CollectionDescLength; ++i )
> + {
> + HIDP_COLLECTION_DESC *desc = &ext->collection_desc.CollectionDesc[i];
> + for ( j = 0; j < ext->collection_desc.ReportIDsLength; ++j )
> + {
> + if (ext->collection_desc.ReportIDs[j].CollectionNumber != desc->CollectionNumber) continue;
> + if (!ext->collection_desc.ReportIDs[j].ReportID) last_report = ext->last_reports[0];
> else last_report = ext->last_reports[report_buf[0]];
> memcpy(last_report->buffer, report_buf, report_len);
> + break;
> + }
> + }
I'm not sure to understand this. Is it to cover the case where some of the TLC use report IDs while other don't, and I don't think that can happen?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6074#note_77776
The UK Kalender program was crashing when a new event was created as stated in the bug report. The fix is to create all the property sheet pages from the beginning instead of when they are selected.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54861
--
v6: comctl32/propsheet: Create pages with PSP_PREMATURE on initialization.
comctl32/tests: Add test for propsheet page creation when propsheet gets initialized.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6146
Adding PSN_QUERYINITIALFOCUS helped fix some focus issues with the property sheet in bug 54862. Previously the listview in the tab control did not get focus from the start when it should have.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54862
--
v10: comctl32: Add handling for PSN_QUERYINITIALFOCUS in prop.c.
comctl32/tests: Add test for PSN_QUERYINITIALFOCUS for the propsheet.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6145
Since LoadIconW returns NULL on an error anyway, we should try LoadIconW. This fixes a crash with the Affinity V2 installers.
--
v10: shell32: make SHGetStockIconInfo() attempt to set hIcon.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6189
> Please merge this. Like I previously explained I'm not interested in fighting over code, forcing anyone into doing something they don't want, or in endless and pointless ideological discussions.
>
> I'm now pretty much convinced that GStreamer is not a good choice as a backend because of the impedance mismatch and the amount of dogma that apparently comes with it. I will probably start looking into other options.
All else aside, there is no dogma about winegstreamer. As maintainer, I tried to use my experience working with the component to architect the best design that accommodates all of the necessary fixes and features. As reviewer, I seek to point out functional problems with any new patches. 5998 has some of these functional problems.
Fundamentally the question is one of expediency and correctness, not ideology. 5988 makes use of existing code to fix the same bugs as 5998 proposes to rewrite the entire DLL to fix, and it avoids the problems that 5998 introduces.
GStreamer is a poor fit in some ways, in particular its asynchronous nature and its use of callbacks from new Unix threads. For these reasons, I've never loved it. However, it is also a very good choice in some other ways: it is heavily developed, has extensive codec support, has a stable API, and the project leadership is very open to new APIs. The only other library I know of with extensive enough codec support is ffmpeg, which does *not* have a stable API. Between the two options, I believe that GStreamer is the better one, especially because it already exists and works well.
Moreover, those problems with GStreamer have already been solved, and I've also talked to the project leadership about extending GStreamer to solve them on the other side and simplify our code anyway.
Between (1) GStreamer and Wine as it exists now, (2) GStreamer with future extensions to simplify Wine code, and (3) writing the whole component from scratch in some other library, it is eminently much more expedient to choose the first option, perhaps with an eye to the second, than switching to some other library.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5340#note_77742
Because WINENV is limited (32767 bytes), and HOSTENV can be much larger,
a whitelisting approach is used to keep WINENV as small as possible.
Currently, only the following envvars are propagated from the host env to WINENV
WINEPATH, WINEPWD, WINEHOME, WINETEMP, WINETMP, WINEQT_, WINEVK_, WINEXDG_SESSION_TYPE
Moreover, the NIXENV (env for running wine processes - not applications) on the
host system is not produced from WINENV anymore, but the global ENV
is propagated to all wine processes and threads.
This might be an alternative approach to MR!5231, MR!6140, bug #56941
and should provide a more deterministic behaviour of wine, because unrelated
envvars do have no influence on the env for running windows applications.
Initial tests (winemine, notepad, cmd, etc) seem to run fine, but some envvars might need additional
consideration. XVDK_* was mentioned, WINE*, MESA_*, VK_*, QT_*, LIBGL_* are other suspects.
Moreover, this is my first merge request, so your feedback is highly appreciated.
--
v9: mmdevapi: Remove unused critical section from MMDevice.
iphlpapi: Add stub for SetCurrentThreadCompartmentId.
gdi32: Fix out-of-bounds write in EMR_ALPHABLEND handling.
kernel32/tests: Test ReadProcessMemory on PAGE_NOACCESS memory.
ntdll: Optimize NtReadVirtualMemory for in-process reads.
maintainers: Remove shdocvw from WebBrowser control section.
msvcrt: Reuse standard streams after they are closed.
jscript: Allow using MSHTML constructors in instanceof expressions.
mshtml: Use proper prototype names.
mshtml: Store name in dispex_data_t.
mshtml: Don't expose prototype properties directly from object instances.
mshtml: Add initial support for MSHTML prototype objects.
mshtml: Factor out init_dispatch_from_desc.
mshtml: Split ensure_dispex_info.
mshtml: Store vtbl in dispex_data_t.
mshtml: Add initial constructor implementation.
odbc32: Forward SQLGetInfo() to the Unicode version if needed.
odbc32: Forward SQLGetDescField() to the Unicode version if needed.
odbc32: Forward SQLGetDescRec() to the Unicode version if needed.
odbc32: Forward SQLGetDescField() to the Unicode version if needed.
odbc32: Forward SQLGetCursorName() to the Unicode version if needed.
odbc32: Forward SQLGetConnectOption() to the Unicode version if needed.
odbc32: Forward SQLGetConnectAttr() to the Unicode version if needed.
mmdevapi/tests: Add test for IAudioSessionEnumerator.
mmdevapi: Add implementation for IAudioSessionEnumerator.
mmdevapi: Return stub interface from ASM_GetSessionEnumerator().
jscript: Implement arguments.caller.
comctl32: Fix sorting for listview.
comctl32/tests: Add test for listview sorting order.
d3dx9/tests: Add some tests for D3DXEFFECT_DESC fields.
propsys: Initially implement VariantToPropVariant.
propsys/tests: Add tests for VariantToPropVariant.
propsys: Add stubs for variant conversion functions.
win32u: Merge drivers CreateLayeredWindow with CreateWindowSurface.
win32u: Avoid sending WM_PAINT to layered window surfaces.
winemac: Rely on win32u previous surface reuse.
winemac: Remove unnecessary old window surface bounds copy.
winewayland: Rely on win32u previous surface reuse.
wineandroid: Rely on win32u previous surface reuse.
winex11: Rely on win32u previous surface reuse.
win32u: Simplify offscreen surface previous surface reuse check.
odbc32: In get_drivers simplify loop condition.
odbc32: In get_drivers prevent memory leak in error case (coverity).
nsiproxy.sys: Only get owning pid when needed in udp_endpoint_enumerate_all().
nsiproxy.sys: Fix the build on non-Apple, non-Linux systems.
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/6166