Vitaly Perov : winspool.drv: Set the printer name in AddJobW.
Alexandre Julliard
julliard at winehq.org
Mon Sep 13 17:14:46 CDT 2010
Module: wine
Branch: master
Commit: e1b9a5c8925d0e453da9f3e1a09a9a1a9ad535f5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e1b9a5c8925d0e453da9f3e1a09a9a1a9ad535f5
Author: Vitaly Perov <vitperov at etersoft.ru>
Date: Mon Sep 13 19:28:56 2010 +0400
winspool.drv: Set the printer name in AddJobW.
---
dlls/winspool.drv/info.c | 31 +++++++++++++++++++++++++++++++
1 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 8c6486b..7f6d12c 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -99,6 +99,7 @@ typedef struct {
WCHAR *filename;
WCHAR *portname;
WCHAR *document_title;
+ WCHAR *printer_name;
} job_t;
@@ -2296,6 +2297,7 @@ BOOL WINAPI AddJobW(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf, LPD
job->filename = HeapAlloc(GetProcessHeap(), 0, (len + 1) * sizeof(WCHAR));
memcpy(job->filename, filename, (len + 1) * sizeof(WCHAR));
job->document_title = strdupW(default_doc_title);
+ job->printer_name = strdupW(printer->name);
list_add_tail(&printer->queue->jobs, &job->entry);
*pcbNeeded = (len + 1) * sizeof(WCHAR) + sizeof(*addjob);
@@ -7073,6 +7075,20 @@ static BOOL get_job_info_1(job_t *job, JOB_INFO_1W *ji1, LPBYTE buf, DWORD cbBuf
space = FALSE;
*pcbNeeded += size;
+ if (job->printer_name)
+ {
+ string_to_buf(job->printer_name, ptr, left, &size, unicode);
+ if(space && size <= left)
+ {
+ ji1->pPrinterName = (LPWSTR)ptr;
+ ptr += size;
+ left -= size;
+ }
+ else
+ space = FALSE;
+ *pcbNeeded += size;
+ }
+
return space;
}
@@ -7104,6 +7120,20 @@ static BOOL get_job_info_2(job_t *job, JOB_INFO_2W *ji2, LPBYTE buf, DWORD cbBuf
space = FALSE;
*pcbNeeded += size;
+ if (job->printer_name)
+ {
+ string_to_buf(job->printer_name, ptr, left, &size, unicode);
+ if(space && size <= left)
+ {
+ ji2->pPrinterName = (LPWSTR)ptr;
+ ptr += size;
+ left -= size;
+ }
+ else
+ space = FALSE;
+ *pcbNeeded += size;
+ }
+
return space;
}
@@ -7537,6 +7567,7 @@ BOOL WINAPI ScheduleJob( HANDLE hPrinter, DWORD dwJobID )
}
list_remove(cursor);
HeapFree(GetProcessHeap(), 0, job->document_title);
+ HeapFree(GetProcessHeap(), 0, job->printer_name);
HeapFree(GetProcessHeap(), 0, job->portname);
HeapFree(GetProcessHeap(), 0, job->filename);
HeapFree(GetProcessHeap(), 0, job);
More information about the wine-cvs
mailing list