Detlef Riekenberg : winspool: Return a failure code in ClosePrinter.
Module: wine Branch: master Commit: b611acc7369f4a260ec7d4b260b221524f04d440 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b611acc7369f4a260ec7d4b260... Author: Detlef Riekenberg <wine.dev(a)web.de> Date: Tue Nov 1 23:21:41 2016 +0100 winspool: Return a failure code in ClosePrinter. Signed-off-by: Detlef Riekenberg <wine.dev(a)web.de> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/winspool.drv/info.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c index 2f0ff3d..2b2e0fc 100644 --- a/dlls/winspool.drv/info.c +++ b/dlls/winspool.drv/info.c @@ -3315,7 +3315,6 @@ BOOL WINAPI ClosePrinter(HANDLE hPrinter) { UINT_PTR i = (UINT_PTR)hPrinter; opened_printer_t *printer = NULL; - BOOL ret = FALSE; TRACE("(%p)\n", hPrinter); @@ -3331,10 +3330,6 @@ BOOL WINAPI ClosePrinter(HANDLE hPrinter) TRACE("closing %s (doc: %p)\n", debugstr_w(printer->name), printer->doc); - if (printer->backend_printer) { - backend->fpClosePrinter(printer->backend_printer); - } - if(printer->doc) EndDocPrinter(hPrinter); @@ -3348,12 +3343,19 @@ BOOL WINAPI ClosePrinter(HANDLE hPrinter) HeapFree(GetProcessHeap(), 0, printer->queue); } + if (printer->backend_printer) { + backend->fpClosePrinter(printer->backend_printer); + } + free_printer_entry( printer ); printer_handles[i - 1] = NULL; - ret = TRUE; + LeaveCriticalSection(&printer_handles_cs); + return TRUE; } + LeaveCriticalSection(&printer_handles_cs); - return ret; + SetLastError(ERROR_INVALID_HANDLE); + return FALSE; } /*****************************************************************************
participants (1)
-
Alexandre Julliard