Module: wine Branch: master Commit: b6b8d5f49c06394a5edffa392928a3a577db75ad URL: https://gitlab.winehq.org/wine/wine/-/commit/b6b8d5f49c06394a5edffa392928a3a...
Author: Piotr Caban piotr@codeweavers.com Date: Thu Oct 5 14:56:34 2023 +0200
localspl: Add ResetPrinter implementation.
---
dlls/localspl/provider.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-)
diff --git a/dlls/localspl/provider.c b/dlls/localspl/provider.c index 762f61dbf57..26e9c66bea0 100644 --- a/dlls/localspl/provider.c +++ b/dlls/localspl/provider.c @@ -2472,6 +2472,36 @@ static BOOL WINAPI fpDeleteMonitor(LPWSTR pName, LPWSTR pEnvironment, LPWSTR pMo return FALSE; }
+static BOOL WINAPI fpResetPrinter(HANDLE hprinter, PRINTER_DEFAULTSW *def) +{ + printer_t *printer = (printer_t *)hprinter; + + if (!printer || printer->header.type != HANDLE_PRINTER) + { + SetLastError(ERROR_INVALID_HANDLE); + return FALSE; + } + + if (!def) + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } + + free(printer->datatype); + if (def->pDatatype) + printer->datatype = wcsdup(def->pDatatype); + else + printer->datatype = NULL; + + free(printer->devmode); + if (def->pDevMode) + printer->devmode = dup_devmode(def->pDevMode); + else + printer->devmode = NULL; + return TRUE; +} + /***************************************************************************** * fpDeletePort [exported through PRINTPROVIDOR] * @@ -4111,7 +4141,7 @@ static const PRINTPROVIDOR backend = { NULL, /* fpPrinterMessageBox */ fpAddMonitor, fpDeleteMonitor, - NULL, /* fpResetPrinter */ + fpResetPrinter, NULL, /* fpGetPrinterDriverEx */ NULL, /* fpFindFirstPrinterChangeNotification */ NULL, /* fpFindClosePrinterChangeNotification */