[PATCH 1/2] winspool: Return a failure code in ClosePrinter
Detlef Riekenberg
wine.dev at web.de
Tue Nov 1 17:21:41 CDT 2016
--
bye bye ... Detlef
Signed-off-by: Detlef Riekenberg <wine.dev at web.de>
---
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;
}
/*****************************************************************************
--
2.7.4
More information about the wine-patches
mailing list