WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

Printer Controller

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Printer Extender News

Keywords:	printer control extender


Version 10000   Dec 1, 1998

      Initial public release	

Version 10001

  pAddPrtConn and pDelPrtConn now accept the "server" parameter in the
  format "SERVER" or "\\SERVER".

  If there is no default printer already installed, pSetDefPrt will fail.
  Use pSetDefPrtEx instead.

  On failure, pSetDefPrt and pSetDefPrtEx will return a negative error
  code, not necessarily -1.


Version 10002

  Fixed pDelPrtConn.


Version 10003

  If there is no default printer already set, pAddPrinter and pAddPrtConn
  will now set the newly-added printer as the default printer.


Version 10004

  Added new request # to pGetDefPrtInf:

    Request   Returns             Example
    -------   -------             -------
       4      Printer share UNC   \\SERVER\LASER4

      Under Windows NT, if the default printer is controlled by a remote
      server, this will return the UNC of the print share on the remote
      server.  If the default printer is controlled locally, it will return
      a blank string ("").

      Under Windows 95/98, this request # is identical to request #3, and
      will return the printer port to which the default printer is mapped.

  Changed the format of the list returned by pGetPrtList(1) to:

    printer-name|port-name|driver-name|printer-share-UNC

      "printer-share-UNC" is the same value that's returned by pGetDefPrtInf(4).

  Increased the maximum list length that can be returned by pGetPrtList from
  4K to 64K.


Version 10005

  New functions:

    pGetPrtInfo(s:printer-name, i:request)
      Gets information about a printer.

      "printer-name" can specify a local printer, or a network printer UNC.

      "request" determines the information to be returned, and can be one of
      the following:

        Request   Meaning
        -------   -------
           1 *    (s) Server name, or "" if local printer.
           2      (s) Printer name.
           3      (s) Share name, or "" if not shared.
           4      (s) Port name(s), separated with commas if more than one port.
           5      (s) Driver name.
           6      (s) Comment.
           7      (s) Location.
           8      (s) File name used to create the separator page.
           9      (s) Print processor.
          10      (s) Data type used to record the print job.
          11      (s) Default print-processor parameters.
          12      (i) Printer attributes -- one or more of the following bits:

                           1  PRINTER_ATTRIBUTE_QUEUED
                           2  PRINTER_ATTRIBUTE_DIRECT
                           4  PRINTER_ATTRIBUTE_DEFAULT
                           8  PRINTER_ATTRIBUTE_SHARED
                          16  PRINTER_ATTRIBUTE_NETWORK
                          32  PRINTER_ATTRIBUTE_HIDDEN
                          64  PRINTER_ATTRIBUTE_LOCAL
                         128  PRINTER_ATTRIBUTE_ENABLE_DEVQ
                         256  PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS
                         512  PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST
                        1024  PRINTER_ATTRIBUTE_WORK_OFFLINE
                        2048  PRINTER_ATTRIBUTE_ENABLE_BIDI
                        4096  PRINTER_ATTRIBUTE_RAW_ONLY
                        8192  PRINTER_ATTRIBUTE_PUBLISHED

          13      (i) Priority value that the spooler uses to route print jobs.
          14      (i) Default priority value assigned to each print job.
          15      (i) Earliest time the printer will print a job (specified as minutes elapsed since 12:00 AM GMT)
          16      (i) Latest time the printer will print a job (specified as minutes elapsed since 12:00 AM GMT)
          17 *    (i) Printer status -- one or more of the following bits:

                               1  PRINTER_STATUS_PAUSED
                               2  PRINTER_STATUS_ERROR
                               4  PRINTER_STATUS_PENDING_DELETION
                               8  PRINTER_STATUS_PAPER_JAM
                              16  PRINTER_STATUS_PAPER_OUT
                              32  PRINTER_STATUS_MANUAL_FEED
                              64  PRINTER_STATUS_PAPER_PROBLEM
                             128  PRINTER_STATUS_OFFLINE
                             256  PRINTER_STATUS_IO_ACTIVE
                             512  PRINTER_STATUS_BUSY
                            1024  PRINTER_STATUS_PRINTING
                            2048  PRINTER_STATUS_OUTPUT_BIN_FULL
                            4096  PRINTER_STATUS_NOT_AVAILABLE
                            8192  PRINTER_STATUS_WAITING
                           16384  PRINTER_STATUS_PROCESSING
                           32768  PRINTER_STATUS_INITIALIZING
                           65536  PRINTER_STATUS_WARMING_UP
                          131072  PRINTER_STATUS_TONER_LOW
                          262144  PRINTER_STATUS_NO_TONER
                          524288  PRINTER_STATUS_PAGE_PUNT
                         1048576  PRINTER_STATUS_USER_INTERVENTION
                         2097152  PRINTER_STATUS_OUT_OF_MEMORY
                         4194304  PRINTER_STATUS_DOOR_OPEN
                         8388608  PRINTER_STATUS_SERVER_UNKNOWN
                        16777216  PRINTER_STATUS_POWER_SAVE

          18 *    (i) Number of print jobs queued for the printer.
          19 *    (i) Average pages per minute that have been printed on the printer.

          * These items cannot be changed using pSetPrtInfo.

      Returns a string or integer value, as indicated.

    pSetPrtInfo(s:printer-name, i:request, s/i:value)
      Sets information for a printer.

      "value" specifies the new value to be set for the item.

      See pGetPrtInfo for additional parameter information.  Note that items
      marked with a (*) are non-writable and cannot be changed using this function.

      Returns 1 on success; 0 if a non-writable item was specified.


Version 31000   Jan 1, 2001

      The Printer Control extender has been updated to a new format to allow more 
      descriptive function names and additional parameters.  This version of the 
      extender requires WinBatch 2001A or newer to run.  It will not work on 
      WinBatch 2000C or older.
      
      In addition, so as not to affect existing scripts using a previous version of
      this extender, the extender DLL has been renamed to include a 34I in the DLL
      name instead of a 32I.  Old and new versions of this extender can *usually*
      co-exist side by side.
      
      To use the new extender with old scripts and with WinBatch 2001A or newer you will
      need to change the AddExtender line in the script to reflect the new DLL name.
      e.g.
         AddExtender("wwprt32i.dll")
      should become
         AddExtender("wwprt34i.dll")

Version 32000  Feb 27, 2001

      Version number change for tracking purposes for 2001 release.
      

Version 32001  Mar 6, 2001

  pGetPrtList no longer adds a tab to the end of the list.

Version 34000

  Fixed problem with pGetPrtInfo and pSetPrtInfo returning "access denied"
  errors under Windows 2000.

Version 36000

  pGetPrtAttrib and pSetPrtAttrib now return WIL errors if an error occurs.

Version 38001  Nov 13, 2002

  Added an optional "mode" parameter to pGetPrtAttrib and pSetPrtAttrib:

    pGetPrtAttrib(s:attrib [, i:mode])
    pSetPrtAttrib(s:attrib, i:value [, i:mode])

    In Windows 2000 and Windows XP, "mode" can be set to 1 to specify global
    printer settings, or 2 to specify per-user printer settings.  It can
    also be set to 0 to specify standard behavior as in previous Windows
    versions.  In other Windows versions, it is ignored and treated as 0.


Version 38002   Nov 14, 2002

  Fixed problem with pGetPrtAttrib and pSetPrtAttrib returning "access denied"
  errors under Windows 2000 and XP.


Version 39000   Nov 18, 2002

   If you call pGetPrtAttrib with "mode" == 2, and no user-level device
   mode settings are found, it returns the global-level device mode
   settings (the same as mode 1 would have).

   If you call pSetPrtAttrib with "mode" == 2, and no user-level device
   mode settings are found, it copies the global-level settings (mode 1)
   to the user-level settings then applies the desired change.

Version 39001 Dec 17, 2002
   Adjusting pPrtSetAttrib to requiest a higher level of security that some
   machines seem to desire.

Version 39002   Dec 26, 2002

  New function:

    pMediaTypes(s:printer-name, i:request) (Windows XP only)

      Returns a list of available media types for a printer.

        "printer-name" can specify a printer, or "" for the default printer.

        The format of the list depends upon "request":

          Request   Meaning
          -------   -------
             0      Media-type names
             1      Media types and names, in the form:
                      type|name

        The return value is a tab-delimited list of items.

  Added new attributes for pGetPrtAttrib and pSetPrtAttrib (Windows 95/98/Me/2000/XP):

    DitherType

      Specifies how dithering is to be done.  This can be one of the
      following predefined values, or a driver-defined value >= 256:

           1   No dithering
           2   Dithering with a coarse brush
           3   Dithering with a fine brush
           4   Line art dithering
           5   Error diffusion dithering (Windows 95/98/Me)
          10   Device does gray scaling
        (256+) Device-specific dithering types

    MediaType

      Specifies the type of media being printed on.  This can be one of the
      following predefined values, or a driver-defined value >= 256:

           1   Plain paper
           2   Transparent film
           3   Glossy paper
        (256+) Device-specific media types

        The return value will be 0 if not supported by the device driver.

        To determine the appropriate media type, you can use pMediaTypes()
        under Windows XP, or you can set the media type manually using the
        printer configuration dialog, and then use pGetPrtAttrib to find out
        what the value was set to.


Version 39003  (Test version)

  Improved pSetDefPrt under Windows 2000/XP.


Version 39004  July 08, 2003

  Added new request # to pGetPrtInfo:

    Request   Meaning
    -------   -------
      20 *    (i) Number of print jobs queued for the printer (alternate method).
 
Version 39006   June 28, 2003

  First release of the 44I version of this extender

  Fixed problem with pGetPrtInfo (request 1) erroneously returning a non-blank
  string in some situations.


Version 39007    (Yest Version)

  New functions:

    pGetPublish(s:printer-name) (Windows 2000/XP only)

      Gets the published status of a printer's data in the directory service.

        "printer-name" can specify a local printer, or a network printer UNC.

      Returns one of the following status codes:

             Status   Name                Meaning
             ------   ----                -------
                  1   DSPRINT_PUBLISH     The printer is published.
                  4   DSPRINT_UNPUBLISH   The printer is not published.
        -2147483648   DSPRINT_PENDING     Indicates that the system is attempting to complete a
                                          publish or unpublish operation.

    pSetPublish(s:printer-name, i:action) (Windows 2000/XP only)

      Publishes or unpublishes a printer's data in the directory service.

        "printer-name" can specify a local printer, or a network printer UNC.

        "action" specifies the action to perform, and can be one of the following:

          Action   Name                Meaning
          ------   ----                -------
             1     DSPRINT_PUBLISH     Publishes the printer's data in the DS.
             2     DSPRINT_UPDATE      Updates the printer's published data in the DS.
             4     DSPRINT_UNPUBLISH   Removes the printer's published data from the DS.
             8     DSPRINT_REPUBLISH   The DS data for the printer is unpublished and then
                                       published again, refreshing all properties in the published printer
                                       Re-publishing also changes the GUID of the published printer.

      Returns 1 on success; 2 on possible success after the action completes in the background.


Version 39008    (Test Version)

  pSetDefPrt and pSetDefPrtEx are no longer case-sensitive.

Version 39009    July 11, 2005

  Fixed problem with pGetPrtInfo requests 1 and 3 not returning blank
  strings when they should have.



Article ID:   W14189

Filename:   !!NEWSFLASH!!.txt
File Created: 2011:09:16:11:40:26
Last Updated: 2011:09:16:11:40:26