Detlef Riekenberg : winspool: Add always the Win9x and the NT printerdriver .

Alexandre Julliard julliard at wine.codeweavers.com
Thu Aug 23 07:25:53 CDT 2007


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

Author: Detlef Riekenberg <wine.dev at web.de>
Date:   Wed Aug 22 20:24:35 2007 +0200

winspool: Add always the Win9x and the NT printerdriver.

---

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

diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 56203da..1ed05fd 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -470,31 +470,35 @@ static BOOL add_printer_driver(const char *name)
 {
     DRIVER_INFO_3A di3a;
 
-    static char driver_path[]       = "wineps16",
-                data_file[]         = "<datafile?>",
-                config_file[]       = "wineps16",
-                help_file[]         = "<helpfile?>",
-                dep_file[]          = "<dependent files?>\0",
-                monitor_name[]      = "<monitor name?>",
+    static char driver_9x[]         = "wineps16.drv",
+                driver_nt[]         = "wineps.drv",
+                env_9x[]            = "Windows 4.0",
+                env_nt[]            = "Windows NT x86",
+                data_file[]         = "generic.ppd",
                 default_data_type[] = "RAW";
 
-    di3a.cVersion = (GetVersion() & 0x80000000) ? 0 : 3; /* FIXME: add 1, 2 */
+    ZeroMemory(&di3a, sizeof(DRIVER_INFO_3A));
+    di3a.cVersion         = 3;
     di3a.pName            = (char *)name;
-    di3a.pEnvironment     = NULL;      /* NULL means auto */
-    di3a.pDriverPath      = driver_path;
+    di3a.pEnvironment     = env_nt;
+    di3a.pDriverPath      = driver_nt;
     di3a.pDataFile        = data_file;
-    di3a.pConfigFile      = config_file;
-    di3a.pHelpFile        = help_file;
-    di3a.pDependentFiles  = dep_file;
-    di3a.pMonitorName     = monitor_name;
+    di3a.pConfigFile      = driver_nt;
     di3a.pDefaultDataType = default_data_type;
 
-    if (!AddPrinterDriverA(NULL, 3, (LPBYTE)&di3a))
+    if (AddPrinterDriverA(NULL, 3, (LPBYTE)&di3a))
     {
-        ERR("Failed adding driver (%d)\n", GetLastError());
-        return FALSE;
+        di3a.cVersion     = 0;
+        di3a.pEnvironment = env_9x;
+        di3a.pDriverPath  = driver_9x;
+        di3a.pConfigFile  = driver_9x;
+        if (AddPrinterDriverA(NULL, 3, (LPBYTE)&di3a))
+        {
+            return TRUE;
+        }
     }
-    return TRUE;
+    ERR("Failed adding driver %s: %u\n", debugstr_a(di3a.pDriverPath), GetLastError());
+    return FALSE;
 }
 
 #ifdef SONAME_LIBCUPS




More information about the wine-cvs mailing list