Gets the name of the next enumerated printer.
Restriction: This routine is not currently supported on UNIX platforms.
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 the printer name returned.
-
cblte-pn-name
- The actual 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.