Previous Topic Next topic Print topic


PC_PRINTER_ENUM_NEXT

Gets the name of the next enumerated printer.

Syntax:

call "PC_PRINTER_ENUM_NEXT" using by value enum-handle
                                   by reference printer-name

Parameters

enum-handle
Call prototype (see Key): cblt-pointer
Picture: pointer.
printer-name
A group predefined as
01 printer-name typedef.
  03 cblte-pn-name-len  pic x(2) comp-5. 
  03 cblte-pn-name      pic x(n).

On Entry:

enum-handle
Valid enum-handle returned from PC_PRINTER_ENUM_START.
cblte-pn-name-len
The length of cblte-pn-name.
cblte-pn-name
Not set.

On Exit:

cblte-pn-name-len
The length of cblte-pn-name returned.
cblte-pn-name
The printer name.
return-value
One of:
0
Enumeration started
29
End of enumeration
30
cblte-pn-name is too small
or another PC_PRINTER error code

Example

01 enum-handle           pointer.
01 printer-name.
   03 p-name-len           pic x(2) comp-5. 
   03 p-name               pic x(255).
01 enum-flags              pic x(4) comp-5 value 0.
01 enum-printers-found     pic x(4) comp-5 value 0.
01 p-counter      binary-long.

procedure division.
  move 1 to p-counter
  set p-name-len to length of p-name
  call "PC_PRINTER_ENUM_START" using
          by reference enum-handle
          by value enum-flags
          by reference enum-printers-found
  end-call
  if return-code not equal 0
       display "RC: Enum-Start : " return-code
  end-if
  display "Printers found : " enum-printers-found
  perform until return-code not equal 0
       set p-name-len to length of p-name
       call "PC_PRINTER_ENUM_NEXT" using
              by value enum-handle
              by reference printer-name
       end-call
       if return-code not equal 0
              display "RC: Enum-Next : " return-code
       else
              display p-counter " " p-name(1:p-name-len)
                   " size " p-name-len
       end-if
       add 1 to p-counter
  end-perform

  call "PC_PRINTER_ENUM_CLOSE" using
                  by reference enum-handle
  end-call

Comments

If cblte-pn-name-len is zero on entry, then cblte-pn-name-len is updated with the size required for cblte-pn-name (not the size of the group) and the enumeration remains on the current entry.

Previous Topic Next topic Print topic