home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / detk45he.zip / PMDJP.H < prev    next >
C/C++ Source or Header  |  1999-04-30  |  26KB  |  537 lines

  1. /****************************** Module Header ******************************\
  2. *
  3. * Module Name: PMDJP.H
  4. *
  5. * OS/2 Presentation Manager Dynamic Job Properties
  6. *
  7. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  8. *
  9. * ===========================================================================
  10. *
  11. * The following symbols are used in this file for conditional sections.
  12. *
  13. * ===========================================================================
  14. *
  15. * Comments at the end of each typedef line give the name tags used in
  16. * the assembler include version of this file.
  17. *
  18. * The assembler include version of this file excludes lines between NOINC
  19. * and INC comments.
  20. *
  21. \***************************************************************************/
  22. /* NOINC */
  23. #if __IBMC__ || __IBMCPP__
  24.    #pragma info( none )
  25.    #ifndef __CHKHDR__
  26.       #pragma info( none )
  27.    #endif
  28.    #pragma info( restore )
  29. #endif
  30. #ifdef __cplusplus
  31.       extern "C" {
  32. #endif
  33. /* INC */
  34.  
  35. #ifndef DJP_INCLUDED
  36.    
  37.    /* NOINC */
  38.    #define DJP_INCLUDED
  39.    /* INC */
  40.    
  41.    /* -----------------------------------------------------------------
  42.    ** Tuple Item used for QUERYSIZE
  43.    */
  44.    typedef struct _djpQueryTuple   /* djpQRT */
  45.    {
  46.       ULONG       ulProperty;     /* I - Property                      */
  47.       LONG        lType;          /* I - type (DJP_ALL or DJP_CURRENT) */
  48.       /*                                                               */
  49.    } QUERYTUPLE, *PQUERYTUPLE;
  50.    
  51.    /* -----------------------------------------------------------------
  52.    ** Query Size Structure for DEVESC_QUERYSIZE
  53.    */
  54.    typedef struct _djpQuerySize   /* djpQRS */
  55.    {
  56.       ULONG       cb;             /* I - Size of entire structure      */
  57.       ULONG       ulSizeNeeded;   /* O - Size returned;                */
  58.       QUERYTUPLE  aTuples[1];     /* I - Start of tuple list           */
  59.       /*                                 use DJP_NONE for end of list  */
  60.    } QUERYSIZE, *PQUERYSIZE;
  61.    
  62.    #define QUERYSIZE_HEADER_SIZE  (sizeof (QUERYSIZE) - sizeof (((PQUERYSIZE)NULL)->aTuples))
  63.    
  64.    /* -----------------------------------------------------------------
  65.    ** Dynamic Job Property Item
  66.    */
  67.    typedef struct _djpItem   /* djpITM */
  68.    {
  69.       ULONG       cb;             /* I/O - sizeof DJP_ITEM structure   */
  70.       ULONG       ulProperty;     /* I   - Which property              */
  71.       LONG        lType;          /* I/O - DJP_ALL or DJP_CURRENT.     */
  72.       /*                                   DJP_ERROR_XXX if error.     */
  73.       ULONG       ulNumReturned;  /* O   - How many elements have been */
  74.       /*                                   returned                    */
  75.       ULONG       ulValue;        /* O   - Variably sized based on     */
  76.       /*                                   ulProperty.  The smallest   */
  77.       /*                                   is a ULONG in size          */
  78.    } DJP_ITEM, *PDJP_ITEM;
  79.    
  80.    #define DJP_HEADER_SIZE        (sizeof (DJP_ITEM) - sizeof (((PDJP_ITEM)NULL)->ulValue))
  81.    #define DJP_NEXT_STRUCTP(p)    ((PDJP_ITEM)((PBYTE)(p) + (p)->cb))
  82.    #define DJP_ELEMENTP(s,t)      ((t*)&((s).ulValue))
  83.    #define DJP_SET_ELEMENT(s,t,e) (*DJP_ELEMENTP (s,t) = (e))
  84.    
  85.    /* -----------------------------------------------------------------
  86.    ** Types of Dynamic Job Properties
  87.    **
  88.    ** To see if the driver is enabled use,
  89.    **     DevEscape      (DEVESC_QUERYESCSUPPORT,
  90.    **                     DEVESC_STARTDOC_WPROP, ...)
  91.    ** and DevQueryDevice (DEVQRY_QUERYSUPPORT,
  92.    **                     DEVESC_QUERYJOBPROPERTIES, ...)
  93.    **
  94.    ** NOTE: The C/S in the defines indicate the complexity or size of
  95.    **       the information.  If it is s, then the size is ULONG sized
  96.    **       and no special processing for the next element needs to be
  97.    **       done.
  98.    **       The J/P in the defines indicate the class.  J stands for job
  99.    **       properties and P stands for printer properties.
  100.    */
  101.    #define DJP_NONE                          0L     /* also End Of List marker */
  102.    #define DJP_SJ_ORIENTATION                1L
  103.    #define DJP_CJ_RESOLUTION                 2L
  104.    #define DJP_SJ_BITSPERPEL                 3L
  105.    #define DJP_SJ_COLOR                      4L
  106.    #define DJP_SJ_PRINTQUALITY               5L
  107.    #define DJP_SJ_PAPERSIZE                  6L
  108.    #define DJP_SJ_TRAYTYPE                   7L
  109.    #define DJP_SJ_MEDIA                      8L
  110.    #define DJP_SJ_MEDIA_COLOR                9L
  111.    #define DJP_CJ_FORM                      10L
  112.    #define DJP_CJ_MIXEDFORMS                11L
  113.    #define DJP_SJ_FONTDOWNLOADING           12L
  114.    #define DJP_SJ_DUPLEX                    13L
  115.    #define DJP_SJ_COLLATE                   14L
  116.    #define DJP_SJ_FEED                      15L
  117.    #define DJP_SJ_COPIES                    16L
  118.    #define DJP_SJ_SCALING                   17L
  119.    #define DJP_SJ_FORMFEEDCONTROL           18L
  120.    #define DJP_SJ_N_UP                      19L
  121.    #define DJP_CJ_OUTPUTBIN                 20L
  122.    #define DJP_CJ_TRAYNAME                  21L
  123.    
  124.    /* Types for DEVESC_QUERYJOBPROPERTIES / DEVESC_SETJOBPROPERTIES
  125.    */
  126.    #define DJP_ALL                           1L  /* enumerate the property */
  127.    #define DJP_CURRENT                       2L  /* from job properties    */
  128.    
  129.    /* Errors for DEVESC_QUERYJOBPROPERTIES / DEVESC_SETJOBPROPERTIES
  130.    */
  131.    #define DJP_ERROR_NOT_SUPPORTED          -1L  /* driver doesnt support that property */
  132.    #define DJP_ERROR_OUT_OF_RANGE           -2L  /* not in the valid range              */
  133.    #define DJP_ERROR_NOT_ENUM               -3L  /* not enumerateable                   */
  134.    #define DJP_ERROR_INV_PARMS              -4L  /* field not proper value              */
  135.    
  136.    /* -----------------------------------------------------------------
  137.    ** DJP_SJ_ORIENTATION
  138.    */
  139.    #define DJP_ORI_PORTRAIT                  1L
  140.    #define DJP_ORI_LANDSCAPE                 2L
  141.    #define DJP_ORI_REV_PORTRAIT              3L
  142.    #define DJP_ORI_REV_LANDSCAPE             4L
  143.    
  144.    typedef ULONG DJPT_ORIENTATION;
  145.    typedef ULONG *PDJPT_ORIENTATION;
  146.    
  147.    /* -----------------------------------------------------------------
  148.    ** DJP_CJ_RESOLUTION
  149.    */
  150.    typedef struct _djpResolution   /* djpRES */
  151.    {
  152.       USHORT     usXResolution;    /* X resolution (in dots per inch) */
  153.       USHORT     usYResolution;    /* Y resolution (in dots per inch) */
  154.    } DJPT_RESOLUTION, *PDJPT_RESOLUTION;
  155.    
  156.    /* -----------------------------------------------------------------
  157.    ** DJP_SJ_BITSPERPEL
  158.    */
  159.    typedef ULONG DJPT_BITSPERPEL;
  160.    typedef ULONG *PDJPT_BITSPERPEL;
  161.    
  162.    /* -----------------------------------------------------------------
  163.    ** DJP_SJ_COLOR
  164.    */
  165.    #define DJP_CLR_MONOCHROME                1L
  166.    #define DJP_CLR_COLOR                     2L
  167.    
  168.    typedef ULONG DJPT_COLOR;
  169.    typedef ULONG *PDJPT_COLOR;
  170.    
  171.    /* -----------------------------------------------------------------
  172.    ** DJP_SJ_PRINTQUALITY
  173.    **
  174.    ** Note: DJP_PQL_DRAFT is the worst quality.  In the future, there
  175.    **       may be better qualities (such as DJP_PQL_ULTRA_HIGH) which
  176.    **       will be numerically greater than DJP_PQL_HIGH.
  177.    */
  178.    #define DJP_PQL_DRAFT                     1L
  179.    #define DJP_PQL_LOW                       2L
  180.    #define DJP_PQL_MEDIUM                    3L
  181.    #define DJP_PQL_HIGH                      4L
  182.    #define DJP_PQL_LAST                      DJP_PQL_HIGH
  183.    
  184.    typedef ULONG DJPT_PRINTQUALITY;
  185.    typedef ULONG *PDJPT_PRINTQUALITY;
  186.    
  187.    /* -----------------------------------------------------------------
  188.    ** DJP_SJ_PAPERSIZE
  189.    **
  190.    ** Note: it is recommended to use DJP_CJ_FORM to chage the papersize.
  191.    **                                               approximate size
  192.    */                                           /*  inches       millimeters */
  193.    #define DJP_PSI_NONE                      0L
  194.    #define DJP_PSI_LETTER                    1L /*  8.5  x 11    216 x 279   */
  195.    #define DJP_PSI_LEGAL                     2L /*  8.5  x 14    216 x 356   */
  196.    #define DJP_PSI_WIDE                      3L /* 13.58 x 11    345 x 279   */
  197.    #define DJP_PSI_CSHEET                    4L /* 17    x 22    431 x 558   */
  198.    #define DJP_PSI_DSHEET                    5L /* 22    x 34    558 x 863   */
  199.    #define DJP_PSI_ESHEET                    6L /* 34    x 44    863 x 1117  */
  200.    #define DJP_PSI_LETTERSMALL               7L /*                           */
  201.    #define DJP_PSI_TABLOID                   8L /* 11    x 17    279 x 431   */
  202.    #define DJP_PSI_LEDGER                    9L /* 17    x 11    431 x 279   */
  203.    #define DJP_PSI_STATEMENT                10L /*  5.5  x  8.5  139 x 216   */
  204.    #define DJP_PSI_EXECUTIVE                11L /*  7.25 x 10.5  184 x 266   */
  205.    #define DJP_PSI_A0                       12L /* 33.11 x 46.81 841 x 1189  */
  206.    #define DJP_PSI_A1                       13L /* 23.39 x 33.11 594 x 841   */
  207.    #define DJP_PSI_A2                       14L /* 16.54 x 23.39 420 x 594   */
  208.    #define DJP_PSI_A3                       15L /* 11.7  x 16.54 297 x 420   */
  209.    #define DJP_PSI_A4                       16L /*  8.3  x 11.7  210 x 297   */
  210.    #define DJP_PSI_A4_SMALL                 17L /*                           */
  211.    #define DJP_PSI_A5                       18L /*  5.83 x  8.27 148 x 210   */
  212.    #define DJP_PSI_B4                       19L /*  9.84 x 13.94 250 x 354   */
  213.    #define DJP_PSI_B5                       20L /*  7.17 x 10.12 182 x 257   */
  214.    #define DJP_PSI_FOLIO                    21L /*  8.5  x 13    216 x 330   */
  215.    #define DJP_PSI_QUATRO                   22L /*  8.46 x 10.83 215 x 275   */
  216.    #define DJP_PSI_10X14                    23L /* 10    x 14    254 x 355   */
  217.    #define DJP_PSI_11X17                    24L /* 11    x 17    279 x 431   */
  218.    #define DJP_PSI_NOTE                     25L /*                           */
  219.    #define DJP_PSI_ENV_9                    26L /*                           */
  220.    #define DJP_PSI_ENV_10                   27L /*                           */
  221.    #define DJP_PSI_ENV_11                   28L /*                           */
  222.    #define DJP_PSI_ENV_12                   29L /*                           */
  223.    #define DJP_PSI_ENV_14                   30L /*                           */
  224.    #define DJP_PSI_ENV_DL                   31L /*                           */
  225.    #define DJP_PSI_ENV_A2                   32L /*                           */
  226.    #define DJP_PSI_ENV_C3                   33L /*                           */
  227.    #define DJP_PSI_ENV_C4                   34L /*                           */
  228.    #define DJP_PSI_ENV_C5                   35L /*                           */
  229.    #define DJP_PSI_ENV_C6                   36L /*                           */
  230.    #define DJP_PSI_ENV_C65                  37L /*                           */
  231.    #define DJP_PSI_ENV_C9                   38L /*                           */
  232.    #define DJP_PSI_ENV_C10                  39L /*                           */
  233.    #define DJP_PSI_ENV_B4                   40L /*                           */
  234.    #define DJP_PSI_ENV_B5                   41L /*                           */
  235.    #define DJP_PSI_ENV_B6                   42L /*                           */
  236.    #define DJP_PSI_ENV_ITALY                43L /*                           */
  237.    #define DJP_PSI_ENV_MONARCH              44L /*                           */
  238.    #define DJP_PSI_ENV_PERSONAL             45L /*                           */
  239.    #define DJP_PSI_FANFOLD_US               46L /*                           */
  240.    #define DJP_PSI_FANFOLD_STD_GERMAN       47L /*                           */
  241.    #define DJP_PSI_FANFOLD_LGL_GERMAN       48L /*                           */
  242.    #define DJP_PSI_ARCHITECT_BSHEET         49L /*                           */
  243.    #define DJP_PSI_ARCHITECT_CSHEET         50L /*                           */
  244.    #define DJP_PSI_ARCHITECT_DSHEET         51L /*                           */
  245.    #define DJP_PSI_ARCHITECT_ESHEET         52L /*                           */
  246.    #define DJP_PSI_CARD_A6                  53L /*                           */
  247.    #define DJP_PSI_CARD_4X6                 54L /*                           */
  248.    #define DJP_PSI_CARD_5X8                 55L /*                           */
  249.    #define DJP_PSI_CARD_HAGAKI              56L /*                           */
  250.    #define DJP_PSI_LABEL_STANDARD           57L /*  1.10 x 3.50   28 x 89    */
  251.    #define DJP_PSI_LABEL_SHIPPING           58L /*  3.98 x 2.13  101 x 54    */
  252.    #define DJP_PSI_LABEL_DISK               59L /*  2.76 x 2.13   70 x 54    */
  253.    #define DJP_PSI_LABEL_EURO               60L /*  3.50 x 1.42   89 x 36    */
  254.    #define DJP_PSI_CARD_OUFUKU_HAGAKI       61L /*                           */
  255.    #define DJP_PSI_B0                       62L /*                           */
  256.    #define DJP_PSI_B1                       63L /*                           */
  257.    #define DJP_PSI_B2                       64L /*                           */
  258.    #define DJP_PSI_B3                       65L /*                           */
  259.    #define DJP_PSI_B6                       66L /*                           */
  260.    #define DJP_PSI_B7                       67L /*                           */
  261.    #define DJP_PSI_B8                       68L /*                           */
  262.    #define DJP_PSI_B9                       69L /*                           */
  263.    #define DJP_PSI_B10                      70L /*                           */
  264.    #define DJP_PSI_B0_JIS                   71L /*                           */
  265.    #define DJP_PSI_B1_JIS                   72L /*                           */
  266.    #define DJP_PSI_B2_JIS                   73L /*                           */
  267.    #define DJP_PSI_B3_JIS                   74L /*                           */
  268.    #define DJP_PSI_B4_JIS                   75L /*                           */
  269.    #define DJP_PSI_B5_JIS                   76L /*                           */
  270.    #define DJP_PSI_B6_JIS                   77L /*                           */
  271.    #define DJP_PSI_B7_JIS                   78L /*                           */
  272.    #define DJP_PSI_B8_JIS                   79L /*                           */
  273.    #define DJP_PSI_B9_JIS                   80L /*                           */
  274.    #define DJP_PSI_B10_JIS                  81L /*                           */
  275.    #define DJP_PSI_LAST                     DJP_PSI_B10_JIS
  276.    
  277.    typedef LONG DJPT_PAPERSIZE;
  278.    typedef LONG *PDJPT_PAPERSIZE;
  279.    
  280.    /* -----------------------------------------------------------------
  281.    ** DJP_SJ_TRAYTYPE
  282.    **
  283.    ** Note: it is recommended to use DJP_CJ_FORM to chage the tray type.
  284.    */
  285.    #define DJP_TRY_NONE                      0L
  286.    #define DJP_TRY_UPPER                     1L
  287.    #define DJP_TRY_ONLYONE                   DJP_TRY_UPPER
  288.    #define DJP_TRY_LOWER                     2L
  289.    #define DJP_TRY_MIDDLE                    3L
  290.    #define DJP_TRY_MANUAL                    4L
  291.    #define DJP_TRY_ENVELOPE                  5L
  292.    #define DJP_TRY_ENVMANUAL                 6L
  293.    #define DJP_TRY_AUTO                      7L
  294.    #define DJP_TRY_TRACTOR                   8L
  295.    #define DJP_TRY_SMALLFMT                  9L
  296.    #define DJP_TRY_LARGEFMT                 10L
  297.    #define DJP_TRY_LARGECAPACITY            11L
  298.    #define DJP_TRY_CASSETTE                 12L
  299.    #define DJP_TRY_LAST                     DJP_TRY_CASSETTE
  300.    
  301.    typedef ULONG DJPT_TRAYTYPE;
  302.    typedef ULONG *PDJPT_TRAYTYPE;
  303.    
  304.    /* -----------------------------------------------------------------
  305.    ** DJP_SJ_MEDIA
  306.    **
  307.    ** Note: it is recommended to use DJP_CJ_FORM to chage the media type.
  308.    */
  309.    #define DJP_MED_NONE                      0L
  310.    #define DJP_MED_PLAIN                     1L
  311.    #define DJP_MED_TRANSPARENCY              2L
  312.    #define DJP_MED_GLOSSY                    3L
  313.    #define DJP_MED_SPECIAL                   4L
  314.    #define DJP_MED_COATED                    5L
  315.    #define DJP_MED_BACKPRINT                 6L
  316.    #define DJP_MED_CLOTH                     7L
  317.    #define DJP_MED_THICK                     8L
  318.    #define DJP_MED_STATIONARY                9L
  319.    #define DJP_MED_ENVELOPE                 10L
  320.    #define DJP_MED_CONTINUOUS_LONG          11L
  321.    #define DJP_MED_CONTINUOUS_SHORT         12L
  322.    #define DJP_MED_TAB_STOCK                13L
  323.    #define DJP_MED_MULTI_PART_FORM          14L
  324.    #define DJP_MED_LABELS                   15L
  325.    #define DJP_MED_LAST                     DJP_MED_LABELS
  326.    
  327.    typedef ULONG DJPT_MEDIA;
  328.    typedef ULONG *PDJPT_MEDIA;
  329.    
  330.    /* -----------------------------------------------------------------
  331.    ** DJP_SJ_MEDIA_COLOR
  332.    **
  333.    ** Select the media color (for the same media types).
  334.    */
  335.    #define DJP_MDC_BLUE                      1L
  336.    #define DJP_MDC_BLUFF                     2L
  337.    #define DJP_MDC_GOLDENROD                 3L
  338.    #define DJP_MDC_GREEN                     4L
  339.    #define DJP_MDC_PINK                      5L
  340.    #define DJP_MDC_TRANSPARENT               6L
  341.    #define DJP_MDC_WHITE                     7L
  342.    #define DJP_MDC_YELLOW                    8L
  343.    #define DJP_MDC_LAST                      DJP_MDC_YELLOW
  344.    
  345.    typedef ULONG DJPT_MEDIA_COLOR;
  346.    typedef ULONG *PDJPT_MEDIA_COLOR;
  347.    
  348.    /* -----------------------------------------------------------------
  349.    ** DJP_CJ_FORM
  350.    **
  351.    ** Setting will match all three fields.  If szTrayname or szMedianame
  352.    **    is null then it will be defaulted to the first one found.
  353.    **
  354.    ** Querying will return all fields filled in.
  355.    */
  356.    typedef struct _djpForm   /* djpFRM */
  357.    {
  358.       CHAR            szFormname[32];        /* System Form name                  */
  359.       CHAR            szTrayname[32];        /* System Tray name                  */
  360.       CHAR            szMedianame[32];       /* System Media name                 */
  361.       /*                      v-= Informational only =-v                          */
  362.       HCINFO          hcInfo;                /* Corresponding hard copy info      */
  363.       CHAR            szDisplayFormname[64]; /* Display Form name  (translated)   */
  364.       CHAR            szDisplayTrayname[64]; /* Display Tray name  (translated)   */
  365.       CHAR            szDisplayMedianame[64];/* Display Media name (translated)   */
  366.       DJPT_PAPERSIZE  djppsFormID;           /* Simple form id  (if not DJP_NONE) */
  367.       DJPT_TRAYTYPE   djpttTrayID;           /* Simple tray id  (if not DJP_NONE) */
  368.       DJPT_MEDIA      djpmdMediaID;          /* Simple media id (if not DJP_NONE) */
  369.    } DJPT_FORM, *PDJPT_FORM;
  370.    
  371.    /* -----------------------------------------------------------------
  372.    ** DJP_CJ_MIXEDFORMS
  373.    **
  374.    ** This is unique in that both setting and querying can have multiple
  375.    ** elements.  Both the first page and the last page are DJP_MXF_INFINITY
  376.    ** (which is the separator for individual elements).
  377.    ** Some examples are:
  378.    **
  379.    ** - Only one form (form1) for the entire job.
  380.    **   (DJP_MXF_INFINITY, DJP_MXF_INFINITY, form1)
  381.    **
  382.    ** - Page 1 has form1, then pages 2 ... n have form2.
  383.    **   (DJP_MXF_INFINITY, 1, form1) (2, DJP_MXF_INFINITY, form2)
  384.    **
  385.    ** - Even pages have form1 and odd pages have form2
  386.    **   (DJP_MXF_INFINITY, DJP_MXF_ODD, form1) (DJP_MXF_EVEN, DJP_MXF_INFINITY, form2)
  387.    **   or (DJP_MXF_INFINITY, DJP_MXF_EVEN, form2) (DJP_MXF_ODD, DJP_MXF_INFINITY, form1)
  388.    **
  389.    ** - First page has form1, even pages have form2 and odd pages have form3
  390.    **   (DJP_MXF_INFINITY, 1, form1) (DJP_MXF_ODD, DJP_MXF_ODD, form1) (DJP_MXF_EVEN, DJP_MXF_INFINITY, form2)
  391.    **   or (DJP_MXF_INFINITY, 1, form1) (DJP_MXF_EVEN, DJP_MXF_EVEN, form2) (DJP_MXF_ODD, DJP_MXF_INFINITY, form1)
  392.    **
  393.    */
  394.    #define DJP_MXF_INFINITY                 -1L
  395.    #define DJP_MXF_ODD                      -2L
  396.    #define DJP_MXF_EVEN                     -3L
  397.    
  398.    typedef struct _djpMixedForms   /* djpMXF */
  399.    {
  400.       LONG            lStartRange;           /* Starting page number           */
  401.       LONG            lEndRange;             /* Ending page number             */
  402.       DJPT_FORM       djpfmForm;             /* Form associated with the range */
  403.    } DJPT_MIXEDFORMS, *PDJPT_MIXEDFORMS;
  404.    
  405.    /* -----------------------------------------------------------------
  406.    ** DJP_SJ_FONTDOWNLOADING
  407.    */
  408.    #define DJP_FDL_NONE                      0L /* Device does not support downloading*/
  409.    #define DJP_FDL_DOWNLOAD                  1L /* Download fonts to printer          */
  410.    #define DJP_FDL_BITMAP                    2L /* Rasterize fonts                    */
  411.    #define DJP_FDL_SUBSTITUTE                3L /* Substitute device fonts for system */
  412.    
  413.    typedef ULONG DJPT_FONTDOWNLOADING;
  414.    typedef ULONG *PDJPT_FONTDOWNLOADING;
  415.    
  416.    /* -----------------------------------------------------------------
  417.    ** DJP_SJ_DUPLEX
  418.    */
  419.    #define DJP_DUP_NONE                      0L /* Device does not support duplex     */
  420.    #define DJP_DUP_OFF                       1L /* Duplex is turned off               */
  421.    #define DJP_DUP_BOOK                      2L
  422.    #define DJP_DUP_FLIP                      3L
  423.    
  424.    typedef ULONG DJPT_DUPLEX;
  425.    typedef ULONG *PDJPT_DUPLEX;
  426.    
  427.    /* -----------------------------------------------------------------
  428.    ** DJP_SJ_COLLATE
  429.    */
  430.    #define DJP_COL_NONE                      0L /* Device does not support collation  */
  431.    #define DJP_COL_OFF                       1L
  432.    #define DJP_COL_ON                        2L
  433.    #define DJP_COL_PRINTER_SETTING           3L /* more for printer dialogs than      */
  434.    /* programmatic control.  Use         */
  435.    /* the setting on the printer panel.  */
  436.    
  437.    typedef ULONG DJPT_COLLATE;
  438.    typedef ULONG *PDJPT_COLLATE;
  439.    
  440.    /* -----------------------------------------------------------------
  441.    ** DJP_SJ_FEED
  442.    */
  443.    #define DJP_FED_MANUAL                    1L
  444.    #define DJP_FED_AUTOMATIC                 2L
  445.    
  446.    typedef ULONG DJPT_FEED;
  447.    typedef ULONG *PDJPT_FEED;
  448.    
  449.    /* -----------------------------------------------------------------
  450.    ** DJP_SJ_COPIES
  451.    **
  452.    ** This is the number of copies on a per page basis.  This is not
  453.    ** enumerateable.
  454.    */
  455.    typedef ULONG DJPT_COPIES;
  456.    typedef ULONG *PDJPT_COPIES;
  457.    
  458.    /* -----------------------------------------------------------------
  459.    ** DJP_SJ_SCALING
  460.    **
  461.    ** This is a percentage value.  This is not enumerateable.
  462.    */
  463.    typedef LONG DJPT_SCALING;
  464.    typedef LONG *PDJPT_SCALING;
  465.    
  466.    /* -----------------------------------------------------------------
  467.    ** DJP_SJ_FORMFEEDCONTROL
  468.    **
  469.    ** This is a property that effects raw data jobs (print from the
  470.    ** command line, DOS print jobs, Windows print jobs). This checks
  471.    ** the very last byte of the data stream to see if it is a form
  472.    ** feed control character.
  473.    */
  474.    #define DJP_FFC_NONE                      1L    /* Never add        */
  475.    #define DJP_FFC_CONDITIONAL               2L    /* Add if not seen  */
  476.    #define DJP_FFC_COMPULSORY                3L    /* Always add       */
  477.    
  478.    typedef ULONG DJPT_FORMFEEDCONTROL;
  479.    typedef ULONG *PDJPT_FORMFEEDCONTROL;
  480.    
  481.    /* -----------------------------------------------------------------
  482.    ** DJP_SJ_N_UP
  483.    **
  484.    ** Number of logical pages per physical page (ex: 2-up, 4-up)
  485.    */
  486.    typedef LONG DJPT_NUP;
  487.    typedef LONG *PDJPT_NUP;
  488.    
  489.    /* -----------------------------------------------------------------
  490.    ** DJP_CJ_OUTPUTBIN
  491.    **
  492.    ** Setting will only use szBinname.
  493.    **
  494.    ** Querying will return all fields filled in.
  495.    */
  496.    typedef struct _djpOutputBin   /* djpOBN */
  497.    {
  498.       CHAR            szBinname[32];         /* System Bin name                   */
  499.       /*                      v-= Informational only =-v                          */
  500.       CHAR            szDisplayBinname[64];  /* Display Bin name  (translated)    */
  501.       LONG            lBinId;                /* Bin id # (-1 for no id)           */
  502.    } DJPT_OUTPUTBIN, *PDJPT_OUTPUTBIN;
  503.    
  504.    /* -----------------------------------------------------------------
  505.    ** DJP_CJ_TRAYNAME
  506.    **
  507.    ** Setting will match only szTrayname.  The perfered way to set which
  508.    ** tray to use is DJP_CJ_FORM.  Otherwise, you are not guaranteed a
  509.    ** unique match for all three form, tray, and media possibilities.
  510.    **
  511.    ** Querying will return all fields filled in.
  512.    */
  513.    typedef struct _djpInputTray   /* djpTry */
  514.    {
  515.       CHAR            szTrayname[32];        /* System Tray name                  */
  516.       /*                      v-= Informational only =-v                          */
  517.       CHAR            szDisplayTrayname[64]; /* Display Tray name  (translated)   */
  518.       DJPT_TRAYTYPE   djpttTrayID;           /* Simple tray id  (if not DJP_NONE) */
  519.    } DJPT_TRAYNAME, *PDJPT_TRAYNAME;
  520.    
  521. #endif
  522.  
  523. /* NOINC */
  524. #ifdef __cplusplus
  525.         }
  526. #endif
  527. #if __IBMC__ || __IBMCPP__
  528.    #pragma info( none )
  529.    #ifndef __CHKHDR__
  530.       #pragma info( restore )
  531.    #endif
  532.    #pragma info( restore )
  533. #endif
  534. /* INC */
  535.  
  536. /**************************** end of file **********************************/
  537.