[winspool 5/6] More completely finish adding a printer before invoking DocumentProperties

Jeremy White jwhite at codeweavers.com
Wed Dec 23 14:21:01 CST 2009


---
 dlls/winspool.drv/info.c |   37 +++++++++++++++++++------------------
 1 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 936599e..8598ddb 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -2818,6 +2818,25 @@ HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter)
 		   (LPBYTE)&pi->Attributes, sizeof(DWORD));
     set_reg_szW(hkeyPrinter, DatatypeW, pi->pDatatype);
 
+    set_reg_szW(hkeyPrinter, DescriptionW, pi->pComment);
+    set_reg_szW(hkeyPrinter, LocationW, pi->pLocation);
+    set_reg_szW(hkeyPrinter, NameW, pi->pPrinterName);
+    set_reg_szW(hkeyPrinter, ParametersW, pi->pParameters);
+
+    set_reg_szW(hkeyPrinter, PortW, pi->pPortName);
+    set_reg_szW(hkeyPrinter, Print_ProcessorW, pi->pPrintProcessor);
+    set_reg_szW(hkeyPrinter, Printer_DriverW, pi->pDriverName);
+    RegSetValueExW(hkeyPrinter, priorityW, 0, REG_DWORD,
+                   (LPBYTE)&pi->Priority, sizeof(DWORD));
+    set_reg_szW(hkeyPrinter, Separator_FileW, pi->pSepFile);
+    set_reg_szW(hkeyPrinter, Share_NameW, pi->pShareName);
+    RegSetValueExW(hkeyPrinter, start_timeW, 0, REG_DWORD,
+                   (LPBYTE)&pi->StartTime, sizeof(DWORD));
+    RegSetValueExW(hkeyPrinter, statusW, 0, REG_DWORD,
+                   (LPBYTE)&pi->Status, sizeof(DWORD));
+    RegSetValueExW(hkeyPrinter, until_timeW, 0, REG_DWORD,
+                   (LPBYTE)&pi->UntilTime, sizeof(DWORD));
+
     /* See if we can load the driver.  We may need the devmode structure anyway
      *
      * FIXME:
@@ -2863,24 +2882,6 @@ HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter)
         if(!pi->pDevMode)
             HeapFree(GetProcessHeap(), 0, dmW);
     }
-    set_reg_szW(hkeyPrinter, DescriptionW, pi->pComment);
-    set_reg_szW(hkeyPrinter, LocationW, pi->pLocation);
-    set_reg_szW(hkeyPrinter, NameW, pi->pPrinterName);
-    set_reg_szW(hkeyPrinter, ParametersW, pi->pParameters);
-
-    set_reg_szW(hkeyPrinter, PortW, pi->pPortName);
-    set_reg_szW(hkeyPrinter, Print_ProcessorW, pi->pPrintProcessor);
-    set_reg_szW(hkeyPrinter, Printer_DriverW, pi->pDriverName);
-    RegSetValueExW(hkeyPrinter, priorityW, 0, REG_DWORD,
-                   (LPBYTE)&pi->Priority, sizeof(DWORD));
-    set_reg_szW(hkeyPrinter, Separator_FileW, pi->pSepFile);
-    set_reg_szW(hkeyPrinter, Share_NameW, pi->pShareName);
-    RegSetValueExW(hkeyPrinter, start_timeW, 0, REG_DWORD,
-                   (LPBYTE)&pi->StartTime, sizeof(DWORD));
-    RegSetValueExW(hkeyPrinter, statusW, 0, REG_DWORD,
-                   (LPBYTE)&pi->Status, sizeof(DWORD));
-    RegSetValueExW(hkeyPrinter, until_timeW, 0, REG_DWORD,
-                   (LPBYTE)&pi->UntilTime, sizeof(DWORD));
 
     RegCloseKey(hkeyPrinter);
     RegCloseKey(hkeyPrinters);



More information about the wine-patches mailing list