Andrew Talbot : winspool.drv: Eliminate some W-to-A cross calls.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Feb 28 08:19:06 CST 2007


Module: wine
Branch: master
Commit: 54d578ba2143bc82e161bfbcffb6a75fbae5591b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=54d578ba2143bc82e161bfbcffb6a75fbae5591b

Author: Andrew Talbot <Andrew.Talbot at talbotville.com>
Date:   Tue Feb 27 23:06:30 2007 +0000

winspool.drv: Eliminate some W-to-A cross calls.

---

 dlls/winspool.drv/info.c |   28 +++++++++++++++++-----------
 1 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 891d661..9f07f59 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -2822,6 +2822,12 @@ HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter)
     HANDLE retval;
     HKEY hkeyPrinter, hkeyPrinters, hkeyDriver, hkeyDrivers;
     LONG size;
+    static const WCHAR attributesW[]      = {'A','t','t','r','i','b','u','t','e','s',0},
+                       default_devmodeW[] = {'D','e','f','a','u','l','t',' ','D','e','v','M','o','d','e',0},
+                       priorityW[]        = {'P','r','i','o','r','i','t','y',0},
+                       start_timeW[]      = {'S','t','a','r','t','T','i','m','e',0},
+                       statusW[]          = {'S','t','a','t','u','s',0},
+                       until_timeW[]      = {'U','n','t','i','l','T','i','m','e',0};
 
     TRACE("(%s,%d,%p)\n", debugstr_w(pName), Level, pPrinter);
 
@@ -2845,7 +2851,7 @@ HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter)
 	return 0;
     }
     if(!RegOpenKeyW(hkeyPrinters, pi->pPrinterName, &hkeyPrinter)) {
-	if (!RegQueryValueA(hkeyPrinter,"Attributes",NULL,NULL)) {
+	if (!RegQueryValueW(hkeyPrinter, attributesW, NULL, NULL)) {
 	    SetLastError(ERROR_PRINTER_ALREADY_EXISTS);
 	    RegCloseKey(hkeyPrinter);
 	    RegCloseKey(hkeyPrinters);
@@ -2884,7 +2890,7 @@ HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter)
 	RegCloseKey(hkeyPrinters);
 	return 0;
     }
-    RegSetValueExA(hkeyPrinter, "Attributes", 0, REG_DWORD,
+    RegSetValueExW(hkeyPrinter, attributesW, 0, REG_DWORD,
 		   (LPBYTE)&pi->Attributes, sizeof(DWORD));
     set_reg_szW(hkeyPrinter, DatatypeW, pi->pDatatype);
 
@@ -2928,7 +2934,7 @@ HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter)
     if (dmW)
     {
         dmA = DEVMODEdupWtoA(GetProcessHeap(), dmW);
-        RegSetValueExA(hkeyPrinter, "Default DevMode", 0, REG_BINARY, 
+        RegSetValueExW(hkeyPrinter, default_devmodeW, 0, REG_BINARY,
                        (LPBYTE)dmA, dmA->dmSize + dmA->dmDriverExtra);
         HeapFree(GetProcessHeap(), 0, dmA);
         if(!pi->pDevMode)
@@ -2942,16 +2948,16 @@ HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter)
     set_reg_szW(hkeyPrinter, PortW, pi->pPortName);
     set_reg_szW(hkeyPrinter, Print_ProcessorW, pi->pPrintProcessor);
     set_reg_szW(hkeyPrinter, Printer_DriverW, pi->pDriverName);
-    RegSetValueExA(hkeyPrinter, "Priority", 0, REG_DWORD,
-		   (LPBYTE)&pi->Priority, sizeof(DWORD));
+    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);
-    RegSetValueExA(hkeyPrinter, "StartTime", 0, REG_DWORD,
-		   (LPBYTE)&pi->StartTime, sizeof(DWORD));
-    RegSetValueExA(hkeyPrinter, "Status", 0, REG_DWORD,
-		   (LPBYTE)&pi->Status, sizeof(DWORD));
-    RegSetValueExA(hkeyPrinter, "UntilTime", 0, REG_DWORD,
-		   (LPBYTE)&pi->UntilTime, sizeof(DWORD));
+    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-cvs mailing list