winspool: doc title
Huw D M Davies
h.davies1 at physics.ox.ac.uk
Thu Jul 14 09:11:58 CDT 2005
Huw Davies <huw at codeweavers.com>
Set the default doc title to that of Windows
Pass cups the doc title.
--
Huw Davies
huw at codeweavers.com
Index: dlls/winspool/info.c
===================================================================
RCS file: /home/wine/wine/dlls/winspool/info.c,v
retrieving revision 1.117
diff -u -p -r1.117 info.c
--- dlls/winspool/info.c 13 Jul 2005 14:14:37 -0000 1.117
+++ dlls/winspool/info.c 14 Jul 2005 14:10:01 -0000
@@ -160,6 +160,9 @@ static const WCHAR CUPS_Port[] = {'C','U
static const WCHAR FILE_Port[] = {'F','I','L','E',':',0};
static const WCHAR LPR_Port[] = {'L','P','R',':',0};
+static const WCHAR default_doc_title[] = {'L','o','c','a','l',' ','D','o','w','n','l','e','v','e','l',' ',
+ 'D','o','c','u','m','e','n','t',0};
+
static HKEY WINSPOOL_OpenDriverReg( LPVOID pEnvironment, BOOL unicode);
static BOOL WINSPOOL_GetPrinterDriver(HANDLE hPrinter, LPWSTR pEnvironment,
DWORD Level, LPBYTE pDriverInfo,
@@ -181,7 +184,7 @@ static inline PWSTR asciitounicode( UNIC
return NULL;
}
-static LPWSTR strdupW(LPWSTR p)
+static LPWSTR strdupW(LPCWSTR p)
{
LPWSTR ret;
DWORD len;
@@ -1328,7 +1331,7 @@ BOOL WINAPI AddJobW(HANDLE hPrinter, DWO
len = strlenW(filename);
job->filename = HeapAlloc(GetProcessHeap(), 0, (len + 1) * sizeof(WCHAR));
memcpy(job->filename, filename, (len + 1) * sizeof(WCHAR));
- job->document_title = NULL;
+ job->document_title = strdupW(default_doc_title);
list_add_tail(&printer->jobs, &job->entry);
*pcbNeeded = (len + 1) * sizeof(WCHAR) + sizeof(*addjob);
@@ -4905,12 +4908,12 @@ static BOOL schedule_lpr(LPCWSTR printer
/*****************************************************************************
* schedule_cups
*/
-static BOOL schedule_cups(LPCWSTR printer_name, LPCWSTR filename)
+static BOOL schedule_cups(LPCWSTR printer_name, LPCWSTR filename, LPCWSTR document_title)
{
#if HAVE_CUPS_CUPS_H
if(pcupsPrintFile)
{
- char *unixname, *queue;
+ char *unixname, *queue, *doc_titleA;
DWORD len;
BOOL ret;
@@ -4921,9 +4924,13 @@ static BOOL schedule_cups(LPCWSTR printe
queue = HeapAlloc(GetProcessHeap(), 0, len);
WideCharToMultiByte(CP_ACP, 0, printer_name, -1, queue, len, NULL, NULL);
+ len = WideCharToMultiByte(CP_ACP, 0, document_title, -1, NULL, 0, NULL, NULL);
+ doc_titleA = HeapAlloc(GetProcessHeap(), 0, len);
+ WideCharToMultiByte(CP_ACP, 0, document_title, -1, doc_titleA, len, NULL, NULL);
+
TRACE("printing via cups\n");
- /* FIXME: get job title from GetJob */
- ret = pcupsPrintFile(queue, unixname, "Wine print job", 0, NULL);
+ ret = pcupsPrintFile(queue, unixname, doc_titleA, 0, NULL);
+ HeapFree(GetProcessHeap(), 0, doc_titleA);
HeapFree(GetProcessHeap(), 0, queue);
HeapFree(GetProcessHeap(), 0, unixname);
return ret;
@@ -5058,7 +5065,7 @@ BOOL WINAPI ScheduleJob( HANDLE hPrinter
}
else if(!strncmpW(pi5->pPortName, CUPS_Port, strlenW(CUPS_Port)))
{
- schedule_cups(pi5->pPortName + strlenW(CUPS_Port), job->filename);
+ schedule_cups(pi5->pPortName + strlenW(CUPS_Port), job->filename, job->document_title);
}
else if(!strncmpW(pi5->pPortName, FILE_Port, strlenW(FILE_Port)))
{
More information about the wine-patches
mailing list