From 6d149d85d81b52f9ff66b7ed28c99da08c22a16c Mon Sep 17 00:00:00 2001
From: Huw D M Davies <h.davies1@physics.ox.ac.uk>
Date: Sun, 28 Nov 1999 19:47:58 +0000
Subject: [PATCH] Use RegQueryInfoKey to count number of printers.

---
 dlls/winspool/info.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/dlls/winspool/info.c b/dlls/winspool/info.c
index 2f8fa3111c9..f55e84f03d6 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) {
-- 
GitLab