winspool.drv: Cast-qual warnings fix.
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index d340705..1cb3adc 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -3727,7 +3727,7 @@
static BOOL WINSPOOL_GetDriverInfoFromReg(
HKEY hkeyDrivers,
LPWSTR DriverName,
- LPWSTR pEnvironment,
+ LPCWSTR pEnvironment,
DWORD Level,
LPBYTE ptr, /* DRIVER_INFO */
LPBYTE pDriverStrings, /* strings buffer */
@@ -3774,7 +3774,7 @@
((PDRIVER_INFO_2A) ptr)->cVersion = (GetVersion() & 0x80000000) ? 0 : 3; /* FIXME: add 1, 2 */
if(!pEnvironment)
- pEnvironment = (LPWSTR)DefaultEnvironmentW;
+ pEnvironment = DefaultEnvironmentW;
if(unicode)
size = (lstrlenW(pEnvironment) + 1) * sizeof(WCHAR);
else
@@ -6567,17 +6567,30 @@
/*****************************************************************************
* StartDocDlgA [WINSPOOL.@]
*/
- LPSTR WINAPI StartDocDlgA( HANDLE hPrinter, DOCINFOA *doc )
+LPSTR WINAPI StartDocDlgA( HANDLE hPrinter, DOCINFOA *doc )
{
UNICODE_STRING usBuffer;
DOCINFOW docW;
LPWSTR retW;
+ LPWSTR docnameW = NULL, outputW = NULL, datatypeW = NULL;
LPSTR ret = NULL;
docW.cbSize = sizeof(docW);
- docW.lpszDocName = asciitounicode(&usBuffer, doc->lpszDocName);
- docW.lpszOutput = asciitounicode(&usBuffer, doc->lpszOutput);
- docW.lpszDatatype = asciitounicode(&usBuffer, doc->lpszDatatype);
+ if (doc->lpszDocName)
+ {
+ docnameW = asciitounicode(&usBuffer, doc->lpszDocName);
+ if (!(docW.lpszDocName = docnameW)) return NULL;
+ }
+ if (doc->lpszOutput)
+ {
+ outputW = asciitounicode(&usBuffer, doc->lpszOutput);
+ if (!(docW.lpszOutput = outputW)) return NULL;
+ }
+ if (doc->lpszDatatype)
+ {
+ datatypeW = asciitounicode(&usBuffer, doc->lpszDatatype);
+ if (!(docW.lpszDatatype = datatypeW)) return NULL;
+ }
docW.fwType = doc->fwType;
retW = StartDocDlgW(hPrinter, &docW);
@@ -6590,9 +6603,9 @@
HeapFree(GetProcessHeap(), 0, retW);
}
- HeapFree(GetProcessHeap(), 0, (LPWSTR)docW.lpszDatatype);
- HeapFree(GetProcessHeap(), 0, (LPWSTR)docW.lpszOutput);
- HeapFree(GetProcessHeap(), 0, (LPWSTR)docW.lpszDocName);
+ HeapFree(GetProcessHeap(), 0, datatypeW);
+ HeapFree(GetProcessHeap(), 0, outputW);
+ HeapFree(GetProcessHeap(), 0, docnameW);
return ret;
}