reactos/rostests/apitests/winspool
Colin Finck a82d7577b3 [PRINTING]
- Implement GetPrinterDataA, GetPrinterDataExA, GetPrinterDataExW, GetPrinterDataW, SetPrinterDataA, SetPrinterDataExA, SetPrinterDataExW, SetPrinterDataW.
  They support all features for Print Server and Printer Handles (minus security checks!)
  I've also added tests for them.
- Store Printer data in SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers instead of SYSTEM\CurrentControlSet\Control\Print\Printers and create a registry symlink from the former path to the new one just like Windows does.
  According to https://social.technet.microsoft.com/Forums/windowsserver/en-US/a683ab54-c43c-4ebe-af8f-1f7a65af2a51, this is needed when having >900 printers to work around a size limit of the SYSTEM registry hive. And if Windows has both locations, we need both for compatibility anyway.
- Add several settings which are queried by the new Printer Data APIs when working with Print Server Handles.
- Store the job directory in the Windows-compatible "DefaultSpoolDirectory" setting and make use of it.
- Revert the ASSERTs in LocalEnumPrinters again to let us verify the NULL pointer exceptions in localspl_apitest (thanks Serge! CORE-13433)
- Translate ERROR_INVALID_NAME to ERROR_INVALID_PRINTER_NAME in all cases in OpenPrinterW (thanks Victor! CORE-13412)
- Make EnumMonitorsW and EnumPortsW in spoolss more robust against failing Print Monitors.
- Remove the wrong !phPrinter check in OpenPrinterW to make Print Server Handles work for real.
- Fix error handling when memory allocation fails: HeapAlloc doesn't set last error, so it's just wrong to query or return it.

One more item done from https://reactos.org/wiki/Printing !
This is all still a big Work-in-Progress, with many subtle bugs deep down in ReactOS, for which I need to open additional tickets. But I didn't want to make this commit even bigger..

svn path=/trunk/; revision=75125
2017-06-19 14:18:19 +00:00
..
ClosePrinter.c Time to commit some Work-In-Progress stuff before my diff gets too large.. 2015-05-22 15:29:07 +00:00
CMakeLists.txt [PRINTING] 2017-06-19 14:18:19 +00:00
EnumPrinters.c [WINSPOOL] 2017-04-17 13:40:51 +00:00
EnumPrintProcessorDatatypes.c [WINSPOOL_APITEST] 2015-06-04 12:19:06 +00:00
GetDefaultPrinter.c [PRINTING] 2017-05-10 13:03:08 +00:00
GetPrinterData.c [PRINTING] 2017-06-19 14:18:19 +00:00
GetPrintProcessorDirectory.c [LOCALSPL] 2016-11-24 19:24:27 +00:00
IsValidDevmode.c [WINSPOOL] 2016-01-15 04:36:31 +00:00
OpenPrinter.c [WINSPOOL_APITEST] 2015-05-24 16:55:20 +00:00
StartDocPrinter.c [WINSPOOL_APITEST] 2015-05-24 16:55:20 +00:00
testlist.c [PRINTING] 2017-06-19 14:18:19 +00:00