diff --git a/dlls/winspool/info.c b/dlls/winspool/info.c index 2f8fa3111c9ceab6c1a735ce82b186cb78abdd09..f55e84f03d60a466bbe19a5fc0f1cbebc20dc84f 100644 --- a/dlls/winspool/info.c +++ b/dlls/winspool/info.c @@ -1034,9 +1034,12 @@ BOOL WINAPI EnumPrintersA( return FALSE; } - while(RegEnumKeyA(hkeyPrinters, number, NULL, 0) == ERROR_SUCCESS) - number++; - + if(RegQueryInfoKeyA(hkeyPrinters, NULL, NULL, NULL, &number, NULL, NULL, + NULL, NULL, NULL, NULL, NULL) != ERROR_SUCCESS) { + RegCloseKey(hkeyPrinters); + ERR("Can't query Printers key\n"); + return FALSE; + } TRACE("Found %ld printers\n", number); switch(dwLevel) {