* :--------------------------------------- * ------------------------: CopyBook for GETPRINTERS API * : This api is used to get a table of * : printers available to the current * : machine. * : The information returned is provided * : by the Windows EnumPrinters api call * : but is presented in a cobol friendly * : tabular form. * :--------------------------------------- * * :Client Server:------------------------- * : You may use this in all applications * : but will find it essential determine * : printers on the CLIENT when the * : application is running under the * : client server layer. * : To force it to run on the server side * : you can include this line: * : SET WIN32API-EXECUTE-API-ON-SERVER * : TO TRUE. * :--------------------------------------- * To use: * * COPY WIN32API. * COPY GETPRINT. * . * . * * SET GP-GET-ALL-MY-PRINTERS TO TRUE * SET GP-PRINT-MAX TO TRUE * SET GP-INFO-BASIC TO TRUE * MOVE LOW-VALUES TO GP-PRINTER-TABLE-AREA * * ------------------------: Call the GUI ScreenIO API routine: * * SET API-GETPRINTERS TO TRUE * CALL 'GSWINAPI' USING WIN32API-PARMS * GP-SERVER-HOST-NAME * GP-INFO-LEVEL * GP-PRINT-COUNT * GP-PRINTER-TABLE-AREA * DUMMY * DUMMY * * IF WIN32API-FAILED * -- invalid directory name or non-existant drive letter * or invalid path strucutre or no rights to create... * WIN32API-ERROR-CODE will contain actual code from * microsoft * END-IF * * ---------------------------------------------------------------- * * : Input: Which servers should be checked * : Name of server who's printer list 01 GP-SERVER-HOST-NAME PIC X(80). 88 GP-GET-ALL-MY-PRINTERS VALUE LOW-VALUES. 88 GP-GET-ONLY-MY-DEFAULT-PRINTER VALUE 'DEFAULT'. * : Input: The level of detail you want 01 GP-INFO-LEVEL PIC S9(9) COMP-5 VALUE 2. 88 GP-INFO-BASIC VALUE 5. * : Very fast, and very limited. Only on * : winnt or later. (System will convert * : to info basic if you try this on 9x) 88 GP-INFO-NT2KXP VALUE 4. 88 GP-INFO-DETAILED VALUE 2. * : Output: the number of printers found * : You can choose to return fewer than 25 01 GP-PRINT-COUNT PIC S9(9) COMP-5 VALUE 25. 88 GP-PRINT-MAX VALUE 25. 88 GP-PRINT-VALID VALUES 1 THRU 25. * : Output: 01 GP-PRINTER-TABLE-AREA. 02 GP-PRINTER-TABLE-ENTRY OCCURS 25 INDEXED BY GPPRTDEX. * : Zero = False 1 = true 05 GP-PRINTER-ATTRIBUTES. 10 GP-ATT-FAX PIC 9. 10 GP-ATT-PUBLISHED PIC 9. 10 GP-ATT-RAW-ONLY PIC 9. 10 GP-ATT-ENABLE-BIDI PIC 9. 10 GP-ATT-WORK-OFFLINE PIC 9. 10 GP-ATT-DOCOMPLETEFIRST PIC 9. 10 GP-ATT-KEEPJOBS PIC 9. 10 GP-ATT-ENABLE-DEVQ PIC 9. 10 GP-ATT-LOCAL PIC 9. 10 GP-ATT-HIDDEN PIC 9. 10 GP-ATT-NETWORK PIC 9. 10 GP-ATT-SHARED PIC 9. 10 GP-ATT-DEFAULT PIC 9. 10 GP-ATT-DIRECT-NO-SPOOL PIC 9. 10 GP-ATT-QUEUED PIC 9. 05 GP-PRINTER-NAME PIC X(100). 05 GP-PORT-NAME PIC X(100). *- - - - - - - - - - Nothing below this line is - - - - - - - - - * is returned for info-basic 05 GP-SERVER-NAME PIC X(100). 05 GP-SHARE-NAME PIC X(100). 05 GP-PRINTER-DRIVER-NAME PIC X(100). 05 GP-PRINTER-COMMENT PIC X(100). 05 GP-PRINTER-LOCATION PIC X(100). 05 GP-PRINTER-DEVMODE PIC X(40). 05 GP-PRINTER-SEPFILE PIC X(40). 05 GP-PRINTER-PRINTPROCESSOR PIC X(40). 05 GP-PRINTER-DATATYPE PIC X(40). 05 GP-PRINTER-PARAMETERS PIC X(40). * : Zero = False 1 = true 05 GP-PRINTER-STATUS. 10 GP-STAT-POWER-SAVE PIC 9. 10 GP-STAT-SERVER-UNKNOWN PIC 9. 10 GP-STAT-DOOR-OPEN PIC 9. 10 GP-STAT-OUT-OF-MEMORY PIC 9. 10 GP-STAT-USER-INTERVENTION PIC 9. 10 GP-STAT-PAGE-PUNT PIC 9. 10 GP-STAT-NO-TONER PIC 9. 10 GP-STAT-TONER-LOW PIC 9. 10 GP-STAT-WARMING-UP PIC 9. 10 GP-STAT-INITIALIZING PIC 9. 10 GP-STAT-PROCESSING PIC 9. 10 GP-STAT-NOT-AVAILABLE PIC 9. 10 GP-STAT-WAITING PIC 9. 10 GP-STAT-OUTPUT-BIN-FULL PIC 9. 10 GP-STAT-PRINTING PIC 9. 10 GP-STAT-BUSY PIC 9. 10 GP-STAT-IO-ACTIVE PIC 9. 10 GP-STAT-OFFLINE PIC 9. 10 GP-STAT-PAPER-PROBLEM PIC 9. 10 GP-STAT-MANUAL-FEED PIC 9. 10 GP-STAT-PAPER-OUT PIC 9. 10 GP-STAT-PAPER-JAM PIC 9. 10 GP-STAT-PENDING-DELETION PIC 9. 10 GP-STAT-ERROR PIC 9. 10 GP-STAT-PAUSED PIC 9. 05 GP-JOB-COUNT-PENDING PIC S9(9) COMP-5.