This operation code retrieves information about a particular printer. It does not alter any of the current printer settings.
CALL "WIN$PRINTER" USING WINPRINT-GET-PRINTER-INFO, WINPRINT-SELECTION GIVING RESULT
WINPRINT-SELECTION | Group item defined in
winprint.def as follows:
01 WINPRINT-SELECTION. 03 WINPRINT-NAME PIC X(80). 03 WINPRINT-PORT PIC X(80). 03 WINPRINT-DRIVER PIC X(80). 03 WINPRINT-DRV-VERSION SIGNED-INT. 03 WINPRINT-NO-OF-PRINTERS SIGNED-SHORT. 88 WPRTERR-NO-PRINTERS VALUE -1. 03 WINPRINT-IS-DEFAULT SIGNED-SHORT. 88 WPRT-IS-NOT-DEFAULT VALUE 0. 88 WPRT-IS-DEFAULT VALUE 1. 03 WINPRINT-COPIES SIGNED-SHORT. 88 WPRT-HAS-NO-COPY VALUE 1. 03 WINPRINT-ORIENTATION SIGNED-SHORT. 88 WPRT-HAS-NO-LANDSCAPE VALUE 0. 88 WPRT-HAS-LANDSCAPE VALUE 1. 03 WINPRINT-QUALITY SIGNED-SHORT. 03 WINPRINT-CURR-ORIENTATION SIGNED-SHORT. 03 WINPRINT-CURR-COPIES SIGNED-SHORT. |
Device names up to 80 characters in length will be stored. If a name is wider than 80 characters, it will be truncated from the rightmost position. These names may contain embedded spaces. The following information will be returned:
WINPRINT-NAME | Holds the name of the selected printer as given in the Printers folder under Settings. |
WINPRINT-PORT | Holds the name of the selected port (or UNC address) as given in the properties of the printer. |
WINPRINT-DRIVER | Holds the name of the assigned driver as seen in the properties of the printer. Note that for remote printers, this name will almost always be given as winspool. |
WINPRINT-DRV-VERSION | Holds the version number of the driver for the requested printer. |
WINPRINT-NO-OF-PRINTERS | Holds the number of the current printer. Remember, this number is based on the order of printers in the computer's internal printer list, and may change from time to time. It is not recommended to identify a printer by number unless you first enumerate the printers by calling WINPRINT-GET-NO-PRINTERS. |
WINPRINT-IS-DEFAULT | Holds the value of 1 if the printer is the Windows default printer, otherwise it is set to 0. |
WINPRINT-COPIES | Holds the maximum number of copies the printer is able to provide. The most common value is 99. If a printer is not copy capable, it will have the value of 1. |
WINPRINT-CURR-COPIES | Returns the current number of copies the driver is set to print. Note that some printers return a value of 1, indicating that the original is copy number 1. Other printers appear to return a value of 0, indicating an original plus 0 copies. You can change this value to the number of copies you wish to print. |
WINPRINT-QUALITY | Returns the current setting for the varying grades of print quality.
This value applies to dot-matrix printers. Most inkjet and laser printers do not support this method of determining the level of print quality. |
WINPRINT-ORIENTATION |
Holds a value indicating the orientation ability of the printer. If portrait and landscape modes are supported, this value is set to 1. If only portrait mode is supported, it is set to 0. |
WINPRINT-CURR-ORIENTATION | Returns the current orientation set in the driver, if portrait mode is active, the value is set to 1. If landscape mode is active, the value is set to 2. A value of 0 uses the printer's default setting. You can change this value to set the orientation you prefer. |
Calling the op-code WINPRINT-GET-NO-PRINTERS before calling WINPRINT-GET-PRINTER-INFO is recommended. However, it is not necessary to perform WINPRINT-GET-NO-PRINTERS each time you run WINPRINT-GET-PRINTER-INFO. You can perform the operation once and store the data until it is needed.