winspool.drv: There is no need to speculate about wineps.drv default DEVMODE. (Take 2)

Dmitry Timoshkov dmitry at baikal.ru
Tue Feb 12 01:21:26 CST 2013


The driver will update registry with real values.

This version fixes a typo.
---
 dlls/winspool.drv/info.c       | 71 +++++++++---------------------------------
 dlls/winspool.drv/tests/info.c |  2 +-
 2 files changed, 15 insertions(+), 58 deletions(-)

diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 60b621e..27a6edd 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -3986,63 +3986,20 @@ static BOOL WINSPOOL_GetStringFromReg(HKEY hkey, LPCWSTR ValueName, LPBYTE ptr,
  *    WINSPOOL_GetDefaultDevMode
  *
  * Get a default DevMode values for wineps.
- * FIXME - use ppd.
- */
-
-static void WINSPOOL_GetDefaultDevMode(
-	LPBYTE ptr,
-	DWORD buflen, DWORD *needed)
-{
-    DEVMODEW	dm;
-    static const WCHAR szWwps[] = {'w', 'i', 'n', 'e', 'p', 's', '.', 'd', 'r', 'v', 0 };
-
-	/* fill default DEVMODE - should be read from ppd... */
-	ZeroMemory( &dm, sizeof(dm) );
-	memcpy(dm.dmDeviceName,szWwps,sizeof szWwps);
-	dm.dmSpecVersion = DM_SPECVERSION;
-	dm.dmDriverVersion = 1;
-	dm.dmSize = sizeof(DEVMODEW);
-	dm.dmDriverExtra = 0;
-	dm.dmFields =
-		DM_ORIENTATION | DM_PAPERSIZE |
-		DM_PAPERLENGTH | DM_PAPERWIDTH |
-		DM_SCALE |
-		DM_COPIES |
-		DM_DEFAULTSOURCE | DM_PRINTQUALITY |
-		DM_YRESOLUTION | DM_TTOPTION;
-
-	dm.u1.s1.dmOrientation = DMORIENT_PORTRAIT;
-	dm.u1.s1.dmPaperSize = DMPAPER_A4;
-	dm.u1.s1.dmPaperLength = 2970;
-	dm.u1.s1.dmPaperWidth = 2100;
-
-	dm.u1.s1.dmScale = 100;
-	dm.u1.s1.dmCopies = 1;
-	dm.u1.s1.dmDefaultSource = DMBIN_AUTO;
-	dm.u1.s1.dmPrintQuality = DMRES_MEDIUM;
-	/* dm.dmColor */
-	/* dm.dmDuplex */
-	dm.dmYResolution = 300; /* 300dpi */
-	dm.dmTTOption = DMTT_BITMAP;
-	/* dm.dmCollate */
-	/* dm.dmFormName */
-	/* dm.dmLogPixels */
-	/* dm.dmBitsPerPel */
-	/* dm.dmPelsWidth */
-	/* dm.dmPelsHeight */
-	/* dm.u2.dmDisplayFlags */
-	/* dm.dmDisplayFrequency */
-	/* dm.dmICMMethod */
-	/* dm.dmICMIntent */
-	/* dm.dmMediaType */
-	/* dm.dmDitherType */
-	/* dm.dmReserved1 */
-	/* dm.dmReserved2 */
-	/* dm.dmPanningWidth */
-	/* dm.dmPanningHeight */
-
-    if(buflen >= sizeof(DEVMODEW))
-        memcpy(ptr, &dm, sizeof(DEVMODEW));
+ */
+static void WINSPOOL_GetDefaultDevMode(LPBYTE ptr, DWORD buflen, DWORD *needed)
+{
+    static const WCHAR winepsW[] = { 'w','i','n','e','p','s','.','d','r','v',0 };
+
+    if (buflen >= sizeof(DEVMODEW))
+    {
+        DEVMODEW *dm = (DEVMODEW *)ptr;
+
+        /* the driver will update registry with real values */
+        memset(dm, 0, sizeof(*dm));
+        dm->dmSize = sizeof(*dm);
+        lstrcpyW(dm->dmDeviceName, winepsW);
+    }
     *needed = sizeof(DEVMODEW);
 }
 
diff --git a/dlls/winspool.drv/tests/info.c b/dlls/winspool.drv/tests/info.c
index 25ee9c4..1c98d4d 100644
--- a/dlls/winspool.drv/tests/info.c
+++ b/dlls/winspool.drv/tests/info.c
@@ -2989,7 +2989,7 @@ todo_wine
 
 START_TEST(info)
 {
-    hwinspool = GetModuleHandleA("winspool.drv");
+    hwinspool = LoadLibrary("winspool.drv");
     pAddPortExA = (void *) GetProcAddress(hwinspool, "AddPortExA");
     pEnumPrinterDriversW = (void *) GetProcAddress(hwinspool, "EnumPrinterDriversW");
     pGetDefaultPrinterA = (void *) GetProcAddress(hwinspool, "GetDefaultPrinterA");
-- 
1.8.1.3




More information about the wine-patches mailing list