PRINTER_INFO_4
The PRINTER_INFO_4
structure specifies general printer information.
The structure
can be used to retrieve minimal printer information on a call to EnumPrinters
typedef struct _PRINTER_INFO_4 { // pri4
LPTSTR pPrinterName;
LPTSTR pServerName;
DWORD Attributes;
} PRINTER_INFO_4;
Members
pPrinterName
Points to a
null-terminated string that specifies the name of the printer (local or
remote).
pServerName
Points to a
null-terminated string that is the name of the server.
Attributes
Specifies
information about the returned data.
Value |
Meaning |
PRINTER_ATTRIBUTE_LOCAL |
The printer
is a local printer. |
PRINTER_ATTRIBUTE_NETWORK |
The printer
is a remote printer. |
Remarks
The PRINTER_INFO_4
structure provides an easy and extremely fast way to retrieve the names of the
printers installed on a local machine, as well as the remote connections that a
user has established. When EnumPrinters is called with a PRINTER_INFO_4
data structure, that function queries the registry for the specified
information, then returns immediately. This differs from the behavior of EnumPrinters
when called with other levels of PRINTER_INFO_xxx data structures. In
particular, when EnumPrinters is called with a level 2 (PRINTER_INFO_2)
data structure, it performs an OpenPrinter call on each remote
connection. If a remote connection is down, if the remote server no longer
exists, or if the remote printer no longer exists, the function must wait for
RPC to time out and consequently fail the OpenPrinter call. This can
take a while. Passing a PRINTER_INFO_4 structure lets an application
retrieve a bare minimium of required information; if more detailed information
is desired, a subsequent EnumPrinter level 2 call can be made.
See Also