winspool: StartDocPrinterA -> W
Huw D M Davies
h.davies1 at physics.ox.ac.uk
Thu Jun 30 09:30:15 CDT 2005
Huw Davies <huw at codeweavers.com>
Forward StartDocPrinterA to StartDocPrinterW
Improve trace in the unicode version.
--
Huw Davies
huw at codeweavers.com
Index: dlls/winspool/info.c
===================================================================
RCS file: /home/wine/wine/dlls/winspool/info.c,v
retrieving revision 1.108
diff -u -p -r1.108 info.c
--- dlls/winspool/info.c 28 Jun 2005 13:51:14 -0000 1.108
+++ dlls/winspool/info.c 30 Jun 2005 14:24:48 -0000
@@ -1587,8 +1587,39 @@ BOOL WINAPI EndPagePrinter(HANDLE hPrint
*/
DWORD WINAPI StartDocPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo)
{
- FIXME("(hPrinter=%p, Level=0x%lx, pDocInfo=%p): stub\n", hPrinter, Level, pDocInfo);
- return FALSE;
+ UNICODE_STRING usBuffer;
+ DOC_INFO_2W doc2W;
+ DOC_INFO_2A *doc2 = (DOC_INFO_2A*)pDocInfo;
+ DWORD ret;
+
+ /* DOC_INFO_1, 2 and 3 all have the strings in the same place with either two (DOC_INFO_2)
+ or one (DOC_INFO_3) extra DWORDs */
+
+ switch(Level) {
+ case 2:
+ doc2W.JobId = doc2->JobId;
+ /* fall through */
+ case 3:
+ doc2W.dwMode = doc2->dwMode;
+ /* fall through */
+ case 1:
+ doc2W.pDocName = asciitounicode(&usBuffer, doc2->pDocName);
+ doc2W.pOutputFile = asciitounicode(&usBuffer, doc2->pOutputFile);
+ doc2W.pDatatype = asciitounicode(&usBuffer, doc2->pDatatype);
+ break;
+
+ default:
+ SetLastError(ERROR_INVALID_LEVEL);
+ return FALSE;
+ }
+
+ ret = StartDocPrinterW(hPrinter, Level, (LPBYTE)&doc2W);
+
+ HeapFree(GetProcessHeap(), 0, doc2W.pDatatype);
+ HeapFree(GetProcessHeap(), 0, doc2W.pOutputFile);
+ HeapFree(GetProcessHeap(), 0, doc2W.pDocName);
+
+ return ret;
}
/*****************************************************************************
@@ -1596,7 +1627,11 @@ DWORD WINAPI StartDocPrinterA(HANDLE hPr
*/
DWORD WINAPI StartDocPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo)
{
- FIXME("(hPrinter=%p, Level=0x%lx, pDocInfo=%p): stub\n", hPrinter, Level, pDocInfo);
+ DOC_INFO_2W *doc = (DOC_INFO_2W *)pDocInfo;
+
+ FIXME("(hPrinter = %p, Level = %ld, pDocInfo = %p {pDocName = %s, pOutputFile = %s, pDatatype = %s}): stub\n",
+ hPrinter, Level, doc, debugstr_w(doc->pDocName), debugstr_w(doc->pOutputFile),
+ debugstr_w(doc->pDatatype));
return FALSE;
}
More information about the wine-patches
mailing list