Zhiyi Zhang (@zhiyi) commented about dlls/user32/tests/monitor.c:
- ok(!!event1, "OpenEventA failed, error %#lx\n", GetLastError());
- event2 = CreateEventW(NULL, FALSE, FALSE, L"test_ChangeDisplaySettingsEx_event2");
- ok(!!event2, "OpenEventA failed, error %#lx\n", GetLastError());
- memset(&startup, 0, sizeof(startup));
- startup.cb = sizeof(startup);
- startup.dwFlags = STARTF_USESHOWWINDOW;
- startup.wShowWindow = SW_SHOWNORMAL;
- /* Test that if the most recent ChangeDisplaySettingsEx call had
* CDS_FULLSCREEN set, the the settings are restored when the caller
* process exits */
- snprintf(buffer, sizeof(buffer), "%s monitor fullscreen %s %s %s", myARGV[0], devices[0].name,
"test_ChangeDisplaySettingsEx_event2", "test_ChangeDisplaySettingsEx_event0");
- res = CreateProcessA(NULL, buffer, NULL, NULL, FALSE, 0, NULL, NULL, &startup, &info0);
Please introduce a helper that launches the child process. For example, test_child_process_ChangeDisplaySettingsEx(CHAR *adapter_name, DWORD flags). Then you can use the helper to launch processes and call ChangeDisplaySettingsEx() with or without CDS_FULLSCREEN for the specified GDI adapter name. You can also call the helper in a different order and test that the last call to ChangeDisplaySettingsEx() CDS_FULLSCREEN wins and the registry display settings should be restored in such order.