From: Colin Finck Date: Fri, 17 Jul 2015 14:34:23 +0000 (+0000) Subject: [WINSPOOL] X-Git-Tag: backups/colins-printing-for-freedom@73041~18 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=e50cdc21c6c1d699c0e4ebe4f8cade48e5ea9ee2 [WINSPOOL] The pDevModeContainer parameter of _RpcOpenPrinter is not optional, but its contents may be null. You can see this in the IDL file (pDevModeContainer is not marked with the "unique" attribute) or refer to https://msdn.microsoft.com/en-us/library/cc244808.aspx svn path=/branches/colins-printing-for-freedom/; revision=68412 --- diff --git a/reactos/win32ss/printing/base/winspool/printers.c b/reactos/win32ss/printing/base/winspool/printers.c index c447778d6d7..d8edf5e26ec 100644 --- a/reactos/win32ss/printing/base/winspool/printers.c +++ b/reactos/win32ss/printing/base/winspool/printers.c @@ -436,8 +436,7 @@ OpenPrinterW(LPWSTR pPrinterName, LPHANDLE phPrinter, LPPRINTER_DEFAULTSW pDefau HANDLE hPrinter; PSPOOLER_HANDLE pHandle; PWSTR pDatatype = NULL; - WINSPOOL_DEVMODE_CONTAINER DevModeContainer; - WINSPOOL_DEVMODE_CONTAINER* pDevModeContainer = NULL; + WINSPOOL_DEVMODE_CONTAINER DevModeContainer = { 0 }; ACCESS_MASK AccessRequired = 0; // Prepare the additional parameters in the format required by _RpcOpenPrinter @@ -446,14 +445,13 @@ OpenPrinterW(LPWSTR pPrinterName, LPHANDLE phPrinter, LPPRINTER_DEFAULTSW pDefau pDatatype = pDefault->pDatatype; DevModeContainer.cbBuf = sizeof(DEVMODEW); DevModeContainer.pDevMode = (BYTE*)pDefault->pDevMode; - pDevModeContainer = &DevModeContainer; AccessRequired = pDefault->DesiredAccess; } // Do the RPC call RpcTryExcept { - dwErrorCode = _RpcOpenPrinter(pPrinterName, &hPrinter, pDatatype, pDevModeContainer, AccessRequired); + dwErrorCode = _RpcOpenPrinter(pPrinterName, &hPrinter, pDatatype, &DevModeContainer, AccessRequired); } RpcExcept(EXCEPTION_EXECUTE_HANDLER) {