From: Colin Finck Date: Wed, 10 May 2017 13:03:08 +0000 (+0000) Subject: [PRINTING] X-Git-Tag: ReactOS-0.4.6~722 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=a366e71f50b70890ff5cea3f618b6aabaf4ffca4 [PRINTING] SetDefaultPrinterW needs to fail with ERROR_INVALID_PRINTER_NAME if the input parameter is invalid. Also add a test for that. svn path=/trunk/; revision=74518 --- diff --git a/reactos/win32ss/printing/base/winspool/printers.c b/reactos/win32ss/printing/base/winspool/printers.c index 53b113f8370..5b95cbc47da 100644 --- a/reactos/win32ss/printing/base/winspool/printers.c +++ b/reactos/win32ss/printing/base/winspool/printers.c @@ -817,7 +817,7 @@ SetDefaultPrinterW(LPCWSTR pszPrinter) dwErrorCode = (DWORD)RegQueryValueExW(hDevicesKey, pszPrinter, NULL, NULL, NULL, &cbPrinterValueData); if (dwErrorCode == ERROR_FILE_NOT_FOUND) { - // The caller gave us an invalid printer name, return with ERROR_FILE_NOT_FOUND. + dwErrorCode = ERROR_INVALID_PRINTER_NAME; goto Cleanup; } else if (dwErrorCode != ERROR_SUCCESS) diff --git a/rostests/apitests/winspool/GetDefaultPrinter.c b/rostests/apitests/winspool/GetDefaultPrinter.c index 1559913931d..381e34416ef 100644 --- a/rostests/apitests/winspool/GetDefaultPrinter.c +++ b/rostests/apitests/winspool/GetDefaultPrinter.c @@ -45,5 +45,10 @@ START_TEST(GetDefaultPrinter) ok(SetDefaultPrinterW(pwszDefaultPrinter), "SetDefaultPrinterW returns FALSE!\n"); ok(GetLastError() == ERROR_SUCCESS, "SetDefaultPrinterW returns error %lu!\n", GetLastError()); + // SetDefaultPrinterW with an invalid printer name needs to fail with ERROR_INVALID_PRINTER_NAME. + SetLastError(0xDEADBEEF); + ok(!SetDefaultPrinterW(L"INVALID PRINTER NAME!!!"), "SetDefaultPrinterW returns TRUE!\n"); + ok(GetLastError() == ERROR_INVALID_PRINTER_NAME, "SetDefaultPrinterW returns error %lu!\n", GetLastError()); + HeapFree(GetProcessHeap(), 0, pwszDefaultPrinter); }