diff --git a/dlls/user32/sysparams.c b/dlls/user32/sysparams.c index c43720eca87..74158f6aae0 100644 --- a/dlls/user32/sysparams.c +++ b/dlls/user32/sysparams.c @@ -4509,7 +4509,17 @@ LONG WINAPI QueryDisplayConfig(UINT32 flags, UINT32 *numpathelements, DISPLAYCON DISPLAYCONFIG_TOPOLOGY_ID *topologyid) { FIXME("(%08x %p %p %p %p %p)\n", flags, numpathelements, pathinfo, numinfoelements, modeinfo, topologyid); - return ERROR_CALL_NOT_IMPLEMENTED; + + if (!numpathelements || !numinfoelements) + return ERROR_INVALID_PARAMETER; + + if (!*numpathelements || !*numinfoelements) + return ERROR_INVALID_PARAMETER; + + if (!flags) + return ERROR_INVALID_PARAMETER; + + return ERROR_NOT_SUPPORTED; } /*********************************************************************** diff --git a/dlls/user32/tests/monitor.c b/dlls/user32/tests/monitor.c index 2a9c5c39847..7c034c823ac 100644 --- a/dlls/user32/tests/monitor.c +++ b/dlls/user32/tests/monitor.c @@ -1275,8 +1275,6 @@ static void test_query_display_config(void) DISPLAYCONFIG_MODE_INFO mi[20]; LONG ret; - todo_wine - { ret = pQueryDisplayConfig(QDC_ALL_PATHS, NULL, NULL, NULL, NULL, NULL); ok(ret == ERROR_INVALID_PARAMETER, "got %d\n", ret); @@ -1324,7 +1322,6 @@ static void test_query_display_config(void) ok(ret == ERROR_INSUFFICIENT_BUFFER || ret == ERROR_NOT_SUPPORTED, "got %d\n", ret); ok (paths == 1, "got %u\n", paths); ok (modes == 1, "got %u\n", modes); - } } static void test_display_config_get_device_info(void)