BOOL DrvSendPage(
IN SURFOBJ *pso | |
); |
DrvSendPage requests that the raw bits from the indicated surface be sent to the printer.
The return value is TRUE if the function is successful. Otherwise, it is FALSE, and an error code is logged.
Typically, DrvSendPage calls EngWritePrinter to request that the data be sent to the printer. However, if the hardcopy device is accessed via I/O ports, then a base driver should be used instead to gain access to the needed ports.
If the surface is a bitmap on which the drawing has been accumulated, the driver should access the bits via SURFOBJXxx service routines. If a driver has used a device-managed surface and sent the bits to the printer as the drawing orders came in, this call does not send out the drawing.
The control code that causes a page to be ejected from the printer should be sent as a result of this call.
If this function is slow, the driver should allow the user to abort the print job. In this case, the driver should call EngCheckAbort at least once every ten seconds to check whether printing should be terminated. If EngCheckAbort returns TRUE, processing of the page should be stopped and DrvSendPage should return FALSE.
DrvSendPage is required for printer drivers.