Sets a process-wide default printer before a printer is opened.
call "PC_PRINTER_SET_DEFAULT" using by value default-option by reference default-struct returning status-code
Using call prototype (see Library Routines - Key) | Picture (32-bit systems) | ||||
---|---|---|---|---|---|
default-option | cblt-x4-comp5 | pic x(4) comp-5. | |||
When default-option set to 1 | |||||
default-struct | Group predefined as cblte-pd-printer-name containing: | Group containing: | |||
cblte-pd-printer-name-len | cblt-x2-comp5 | pic x(2) comp-5. | |||
cblte-pd-printer-name | pic x(cblte-pd-printer-name-len). | pic x(printer-name-length). | |||
When default-option set to 2 | |||||
default-struct | Group predefined as cblte-pd-printer-browse containing: | Group containing: | |||
cblte-pd-printer-browse-hwnd | cblt-x4-comp5 | pic x(4) comp-5. | |||
cblte-pd-printer-browse-namelen | cblt-x2-comp5 | pic x(2) comp-5. | |||
cblte-pd-reserved | cblt-x2-comp5 | pic x(2) comp-5. | |||
cblte-pd-printer-browse-name | pic x(cblte-pd-printer-browse-namelen). | pic x(printer-name-length). | |||
status-code | See Library Routines - Key |
default-option | Specifies the default option:
| ||||
Whendefault-option is set to 1: | |||||
printer-name-length | The length of the printer-name | ||||
printer-name | The name of the printer | ||||
When default-option is set to 2: | |||||
browser-hwnd | The handle for the printer browser |
When default-option is set to 2:
printer-name-length | The length of the printer-name |
printer-name | The name of the printer |
reserved | Reserved. |
status-code | Printer Handling Routines Return Codes |
If you set default-option to 2, this function returns the user-selected printer but does not set it as the default printer.
On Windows NT, the printer name must be entered as UNC format (that is, the device's full name as it appears on the network).
Example 1:
The following example shows how to use PC_PRINTER_SET_DEFAULT to set the default printer.
working-storage section. 01 MyDocumentInfo. 03 filename. 05 len pic x(2) comp-5. 05 body pic x(128). 03 document. 05 len pic x(2) comp-5. 05 body pic x(128). 03 document-flags pic x(4) comp-5. 03 window-hwnd pic x(4) comp-5. 01 Printer-RetCode pic 9(4) comp-5. 78 USE-OPEN-DIALOG value 1. 78 USE-FONT-DIALOG value 2. 78 USE-FORCE-PORTRAIT value 4. 78 USE-FORCE-LANDSCAPE value 8. 78 USE-PROGRESS-DIALOG value 16. 01 default-info. 03 option pic x(4) comp-5. 03 ourprinter. 05 len pic x(2) comp-5. 05 body pic x(128). 78 SET-DEFAULT-PRINTER value h"0001". procedure division. move "My Color PS" to body of ourprinter of default-info move 11 to len of ourprinter of default-info move SET-DEFAULT-PRINTER to option of default-info call "PC_PRINTER_SET_DEFAULT" using by value option of default-info, by reference ourprinter of default-info returning Printer-RetCode end-call if Printer-RetCode not equal zero display "Unable to setup a default printer" display " + Retcode = " Printer-RetCode stop run end-if move "c:\config.sys" to body of filename move 13 to len of filename move "My Config.sys" to body of document move 13 to len of document move USE-PROGRESS-DIALOG to document-flags move zero to window-hwnd call "PC_PRINT_FILE" using by reference filename by reference document by value document-flags by value window-hwnd returning Printer-RetCode end-call if Printer-RetCode not equal zero display "PC_PRINT_FILE failed.. " Printer-RetCode else display "PC_PRINT_FILE: OK" end-if .
Example 2:
The following example shows how to use PC_PRINTER_SET_DEFAULT to browse for a printer. This example only works on Windows NT.
working-storage section. 01 MyDocumentInfo. 03 filename. 05 len pic x(2) comp-5. 05 body pic x(128). 03 document. 05 len pic x(2) comp-5. 05 body pic x(128). 03 document-flags pic x(4) comp-5. 03 window-handle pic x(4) comp-5. 01 MyDefaultPrinter. 03 hwnd pic x(4) comp-5. 03 len pic x(2) comp-5. 03 reserved pic x(2) comp-5. 03 body pic x(128). 01 Printer-RetCode pic 9(4) comp-5. 78 USE-OPEN-DIALOG value 1. 78 USE-FONT-DIALOG value 2. 78 USE-FORCE-PORTRAIT value 4. 78 USE-FORCE-LANDSCAPE value 8. 78 USE-PROGRESS-DIALOG value 16. 01 default-info. 03 option pic x(4) comp-5. 03 ourprinter. 05 len pic x(2) comp-5. 05 body pic x(128). 78 SET-DEFAULT-PRINTER value h"0001". 78 BROWSE-DEFAULT-PRINTER value h"0002". linkage section. 01 lnk-hwnd pic x(4) comp-5. procedure division using by value lnk-hwnd. move BROWSE-DEFAULT-PRINTER to option of default-info move lnk-hwnd to hwnd of MyDefaultPrinter move 127 to len of MyDefaultPrinter call "PC_PRINTER_SET_DEFAULT" using by value option of default-info by reference hwnd returning Printer-RetCode end-call if Printer-RetCode not equal zero display "Unable to browse for a default printer" display " + Retcode = " Printer-RetCode stop run end-if display "Browse Printer : " body of MyDefaultPrinter(1:len of MyDefaultPrinter) move SET-DEFAULT-PRINTER to option of default-info move len of MyDefaultPrinter to len of ourprinter move body of MyDefaultPrinter(1:len of MyDefaultPrinter) to body of ourprinter call "PC_PRINTER_SET_DEFAULT" using by value option of default-info by reference ourprinter of default-info returning Printer-RetCode end-call if Printer-RetCode not equal zero display "Unable to set a default printer" display " + Retcode = " Printer-RetCode stop run end-if move "c:\config.sys" to body of filename move 13 to len of filename move "My Config.sys" to body of document move 13 to len of document move USE-PROGRESS-DIALOG to document-flags move zero to window-handle call "PC_PRINT_FILE" using by reference filename by reference document by value document-flags by value window-handle returning Printer-RetCode end-call if Printer-RetCode not equal zero display "PC_PRINT_FILE failed.. " Printer-RetCode else display "PC_PRINT_FILE: OK" end-if .