2 * PROJECT: ReactOS Local Spooler API Tests Injected DLL
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * PURPOSE: Tests for fpSetJob
5 * COPYRIGHT: Copyright 2017 Colin Finck (colin@reactos.org)
10 #define WIN32_NO_STATUS
18 #include "../localspl_apitest.h"
21 extern PWSTR
GetDefaultPrinterFromRegistry(VOID
);
22 extern BOOL
GetLocalsplFuncs(LPPRINTPROVIDOR pp
);
24 /* From printing/include/spoolss.h */
25 #define MAX_PRINTER_NAME 220
29 HANDLE hPrinter
= NULL
;
31 PWSTR pwszDefaultPrinter
= NULL
;
33 if (!GetLocalsplFuncs(&pp
))
36 // Verify that fpSetJob returns ERROR_INVALID_HANDLE when nothing is provided.
37 ok(!pp
.fpSetJob(NULL
, 0, 0, NULL
, 0), "fpSetJob returns TRUE\n");
38 ok(GetLastError() == ERROR_INVALID_HANDLE
, "fpSetJob returns error %lu!\n", GetLastError());
40 // Get the default printer.
41 pwszDefaultPrinter
= GetDefaultPrinterFromRegistry();
42 if (!pwszDefaultPrinter
)
44 skip("Could not determine the default printer!\n");
48 if (!pp
.fpOpenPrinter(pwszDefaultPrinter
, &hPrinter
, NULL
))
50 skip("Could not open a handle to the default printer, last error is %lu!\n", GetLastError());
54 // Verify that fpSetJob returns ERROR_INVALID_PARAMETER if only a printer handle is provided.
55 ok(!pp
.fpSetJob(hPrinter
, 0, 0, NULL
, 0), "fpSetJob returns TRUE\n");
56 ok(GetLastError() == ERROR_INVALID_PARAMETER
, "fpSetJob returns error %lu!\n", GetLastError());
59 if (pwszDefaultPrinter
)
60 HeapFree(GetProcessHeap(), 0, pwszDefaultPrinter
);
63 pp
.fpClosePrinter(hPrinter
);