Zhiyi Zhang (@zhiyi) commented about dlls/user32/tests/monitor.c:
+ { + ok(0, "too few arguments.\n"); + return; + } + + event0 = OpenEventA(EVENT_MODIFY_STATE, FALSE, myARGV[4]); + ok(!!event0, "OpenEventA failed, error %#lx\n", GetLastError()); + event1 = OpenEventA(SYNCHRONIZE, FALSE, myARGV[5]); + ok(!!event1, "OpenEventA failed, error %#lx\n", GetLastError()); + + memset(&dm, 0, sizeof(dm)); + dm.dmSize = sizeof(dm); + dm.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT; + dm.dmPelsWidth = 640; + dm.dmPelsHeight = 480; + res = ChangeDisplaySettingsExA(myARGV[3], &dm, NULL, CDS_FULLSCREEN, NULL); Please also test that scenario that one process calls ChangeDisplaySettingsExA() with CDS_FULLSCREEN and another process without CDS_FULLSCREEN and their results when either of them exits first.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/5060#note_64537