PC_PRINTER_SET_DEFAULT

プリンタが開く前に、プロセス全体のデフォルトプリンタを設定する。

構文:
call "PC_PRINTER_SET_DEFAULT" using by value default-option
                              by reference   default-struct
                              returning      status-code
パラメタ:
呼び出しプロトタイプ使用時 (  説明の読み方) PIC (32ビットシステム)
default-option cblt-x4-comp5 pic x(4) comp-5.
default-option が1に設定されている場合
default-struct 以下を含むcblte-pd-printer-nameとして事前定義された集団: 以下を含む集団項目:
  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).
default-optionが2に設定されている場合
default-struct 以下を含むcblte-pd-printer-browseとして事前定義された集団: 以下を含む集団項目:
  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  説明の読み方参照
入力パラメタ:
default-option default-optionを指定する。
1 使用するデフォルトプリンタを設定する。
2 デフォルトプリンタを閲覧する(本オプションはWindowsNTのみで使用)。
default-optionが1に設定されている場合:
printer-name-length printer-nameの長さ
printer-name プリンタの名称
default-optionが2に設定されている場合:
browser-hwnd プリンタブラウザのハンドル
出力パラメタ:

default-optionが2に設定されている場合:

printer-name-length printer-nameの長さ
printer-name プリンタの名称
reserved 確保
status-code  ステータスコード
説明:

default-option2を設定した場合、本関数はユーザーが選択したプリンタへ返すが、デフォルトプリンタとしての設定はしない。

WindowsNTでは、プリンタ名はUNCフォーマットにて入力されなければならない(すなわち、ネットワークで表示されるデバイスのフルネーム)。

例:

例1:

以下の例では、デフォルトプリンタの設定におけるPC_PRINTER_SET_DEFAULTの使用方法を示す。

 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
     .

例2:

以下の例では、プリンタを閲覧するためのPC_PRINTER_SET_DEFAULTの使用方法を示す。この例はWindowsNTのみに対応している。

 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
     .