Starting with Windows 10, the APIs which support third-party print providers are deprecated. Microsoft does not recommend any investment into third-party print providers. Additionally, on Windows 8 and newer products where the v4 print driver model is available, third-party print providers may not create or manage queues which use v4 print drivers.
HRESULT AddPrintDeviceObject( HANDLE hPrinter, HANDLE *phDeviceObject );
A HANDLE to an open printer. This should be a HANDLE returned by the AddPrinter or OpenPrinter spooler functions.
A HANDLE to the device object, if it was created successfully.
The AddPrintDeviceObject function returns S_OK, if the device object was created successfully. Otherwise it returns an error.
The AddPrintDeviceObject function should be called in the following situations:
User installs a Printer
- The print provider should call this function after installing the printer.
- The function must be called by impersonating the user who is installing the printer.
The print provider should call this function for each previously-installed Printer owned by the provider. During this time, AddPrintDeviceObject doesn't have to impersonate the user context when it is called.Note Any device object that is added using AddPrintDeviceObject will persist until you remove it using RemovePrintDeviceObject, or until the spooler service restarts. And when the spooler services stops, all the device objects are automatically deleted.
|Header||winsplp.h (include Winspool.h)|