winspool: Add always the Win9x and the NT printerdriver
Detlef Riekenberg
wine.dev at web.de
Wed Aug 22 13:32:46 CDT 2007
Changelog:
winspool: Add always the Win9x and the NT printerdriver
Fixes bug 9411
Things to do:
- Use UNICODE (see bug 6437)
- Use the ppd-file from CUPS for di.pDataFile
--
By by ... Detlef
-------------- next part --------------
>From d9a9a8b21e3af3f5c891500ce09e8fa4e4960002 Mon Sep 17 00:00:00 2001
From: Detlef Riekenberg <wine.dev at web.de>
Date: Wed, 22 Aug 2007 20:24:35 +0200
Subject: [PATCH] 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 cha
{
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
--
1.4.1
More information about the wine-patches
mailing list