|
Overview |
|
|
|
Group |
|
|
|
Quick Info
Windows NT
| Yes
| Win95
| Yes
| Win32s
| No
| Import Library
| winspool.lib
| Header File
| winspool.h
| Unicode
| WinNT
| Platform Notes
| None
|
|
|
SetPrinter
The SetPrinter function sets the state of the specified printer by pausing printing,
resuming printing, or clearing all print jobs. The function can also be used to set
printer data.
BOOL SetPrinter(
HANDLE hPrinter,
| // handle of printer object
| DWORD Level,
| // structure level
| LPBYTE pPrinter,
| // address of array containing printer data
| DWORD Command
| // printer-state command
| );
|
|
Parameters
hPrinter
Handle to the printer of interest.
Level
Windows 95: Specifies the type of data contained in pPrinter. This parameter must be 0, 2, 3, 4, or 5. This parameter must be zero if Command is not equal to zero.
Windows NT: Specifies the type of data contained in pPrinter. This parameter must be 0, 2, 3, 5, or 6. This parameter must be zero if Command is not equal to zero.
pPrinter
This is either a DWORD value indicating the printer status, or a pointer to an
array of bytes that may contain printer data.
If Level is 0, and the Command parameter is PRINTER_CONTROL_SET_STATUS, pPrinter must contain a DWORD value that specifies the new printer status to set. For
a list of the possible status values, see the Status member of the PRINTER_INFO_2 structure. Note that PRINTER_STATUS_PAUSED and
PRINTER_STATUS_PENDING_DELETION are not valid status values to set.
If Level is 0, but the Command parameter is not PRINTER_CONTROL_SET_STATUS, pPrinter must be NULL.
Windows 95: If Level is 2, 3, 4, or 5, pPrinter points to an array that contains PRINTER_INFO_2, PRINTER_INFO_3,
PRINTER_INFO_4, or PRINTER_INFO_5 structures, respectively.
Windows NT: If Level is 2, 3, 5, or 6, pPrinter points to an array that contains PRINTER_INFO_2, PRINTER_INFO_3,
PRINTER_INFO_5, or PRINTER_INFO_6 structures, respectively.
Command
This parameter can be zero or one of the following values. If it is zero, the
printer retains its original state and the printer data is reconfigured by
using the structure to which pPrinter points.
Value
| Meaning
| PRINTER_CONTROL_PAUSE
| Pauses the printer.
| PRINTER_CONTROL_PURGE
| Deletes all print jobs in the printer.
| PRINTER_CONTROL_RESUME
| Resumes a paused printer.
| PRINTER_CONTROL_SET_STATUS
| Sets the printer status.
|
If Command is any of the above values, Level must be zero.
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error
information, call GetLastError.
Remarks
You can obtain the handle hPrinter is by calling the OpenPrinter function.
To modify the current printer settings, an application should call GetPrinter to retrieve the current settings into a PRINTER_INFO_2 structure, modify the members of that structure as necessary, and then call
the SetPrinter function.
The SetPrinter function ignores the following members of a PRINTER_INFO_2 structure:
pServerName, AveragePPM, Status, and cJobs
Pausing a printer suspends scheduling of all print jobs for that printer,
except for the one print job that may be currently printing. Print jobs can be
submitted to a paused printer, but no jobs will be scheduled to print on that
printer until printing is resumed. If a printer is cleared, all print jobs for that
printer are deleted, except for the current print job.
If the printer data structure contains a pointer to a security descriptor,
only those components of the security descriptor that the caller has permission to
write should be present. An application that wants to write particular
security descriptor components must open the printer with sufficient access permission
to modify those components. The following table shows the security descriptor
components that can be modified for particular access permission values:
Access Permission
| Modifiable Security Descriptor Components
| WRITE_OWNER
| Owner, primary proup
| WRITE_DAC
| Discretionary access-control list (ACL)
| ACCESS_SYSTEM_SECURITY
| System ACL
|
If the calling application lacks a required permission, SetPrinter fails. Those components of a security descriptor that an application does not
wish to modify should be NULL or not be present, as appropriate. If you do not
want to modify the security descriptor, and are calling SetPrinter with a PRINTER_INFO_2 structure, set the pSecurityDescriptor member of that structure to NULL.
Windows 95: SetPrinter does not update the pShareName member in the PRINTER_INFO_2 structure.
Windows 95: SetPrinter is not supported when called against a Windows NT printer from a Windows 95
machine using the printer's UNC name.
See Also
AddPrinter, GetPrinter, OpenPrinter, PRINTER_INFO_2, PRINTER_INFO_3, PRINTER_INFO_4, PRINTER_INFO_5, PRINTER_INFO_6
| Last news from Greatis Software |
 |
|
Nostalgia .Net |
|
.Net is powerful, but not all-powerful, so sometimes we need to use Win32 API for our .Net applications. It's simple enough with Platform Invoke if you have Win32 skill, but we do not always have time to dig the ancient documentation, declare the special types that are compatible with Win32, find the values of the Win32's constants and so on. Nostalgia .Net offers several simple-to-use classes, and components that will allow you to forget about the headache of Win32 and just use the power of Win32 in your application the same way as you use the native. Net classes. More » |
| Recommended software for developers |
 |
|
Ultimate Pack |
|
Component pack for Delphi and C++ Builder that contains runtime form designer, runtime object inspector, print suite and much more for the very special price. More » |
 |
|
Form Designer .Net |
|
Unique runtime form design solution that allows to edit any form in .Net WinForms application at runtime with full source codes for only 300 euro! More » |
 |
|
Print Suite .Net |
|
Print Suite .Net is a set of components for easy printing texts, images and grids from your WinForms applications. Full C# source codes are available More » |
 |
|
Gradient Controls .Net |
|
Gradient Controls .Net offers controls with gradient background feature. Labels, panels and so on... Full C# source codes are available More » |
 |
|
Greatis iGrid |
|
iGrid plots drawing grid right over your desktop, so you can use it everywhere, with any drawing application without any special plugins for different graphic editors. More » |
All the contacts and projectsDmitry Vasiliev (just.dmitry)
Related LinksSoftware for Visual Studio .NET developers Software for Delphi and C++ Builder developers Software for Visual Basic 6 developers Delphi Tips&Tricks MegaDetailed.NET More Online Helps Win32 Programmer's Reference Win32 Multimedia Programmer's Reference OLE Programmer's Reference Microsoft Windows Pen API Programmer's Reference Microsoft Windows Sockets 2 Reference Microsoft Windows Telephony API (TAPI) Programmer's Reference Unix Manual Pages
|