home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warptlk3.zip / TOOLKIT / BETA / H / PMDJP.H < prev    next >
C/C++ Source or Header  |  1995-09-18  |  20KB  |  461 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.  
  34. #ifndef DJP_INCLUDED
  35.    
  36.    #define DJP_INCLUDED
  37.    /* INC */
  38.    
  39.    /* -----------------------------------------------------------------
  40.    ** Tuple Item used for QUERYSIZE
  41.    */
  42.    typedef struct _djpQueryTuple   /* dqt */
  43.    {
  44.       ULONG       ulProperty;     /* I - Property                      */
  45.       LONG        iType;          /* I - type (DJP_ALL or DJP_CURRENT) */
  46.       /*                                   */
  47.    } QUERYTUPLE, *PQUERYTUPLE;
  48.    
  49.    /* -----------------------------------------------------------------
  50.    ** Query Size Structure for DEVESC_QUERYSIZE
  51.    */
  52.    typedef struct _djpQuerySize   /* dqs */
  53.    {
  54.       ULONG       cb;             /* I - Size of entire structure      */
  55.       ULONG       ulSizeNeeded;   /* O - Size returned;                */
  56.       QUERYTUPLE  aTuples[1];     /* I - Start of tuple list           */
  57.       /*     use DJP_NONE for end of list  */
  58.    } QUERYSIZE, *PQUERYSIZE;
  59.    
  60.    #define QUERYSIZE_HEADER_SIZE  (sizeof (QUERYSIZE) - sizeof (((PQUERYSIZE)NULL)->aTuples))
  61.    
  62.    /* -----------------------------------------------------------------
  63.    ** Dynamic Job Property Item
  64.    */
  65.    typedef struct _djpItem   /* di */
  66.    {
  67.       ULONG       cb;             /* I/O - sizeof DJP_ITEM structure   */
  68.       ULONG       ulProperty;     /* I   - Which property              */
  69.       LONG        iType;          /* I/O - DJP_ALL or DJP_CURRENT.     */
  70.       /*       DJP_ERROR_XXX if error.     */
  71.       ULONG       ulNumReturned;  /* O   - How many elements have been */
  72.       /*       returned                    */
  73.       ULONG       ulValue;        /* O   - Variably sized based on     */
  74.       /*       ulProperty.  The smallest   */
  75.       /*       is a ULONG in size          */
  76.    } DJP_ITEM, *PDJP_ITEM;
  77.    
  78.    #define DJP_HEADER_SIZE        (sizeof (DJP_ITEM) - sizeof (((PDJP_ITEM)NULL)->ulValue))
  79.    #define DJP_NEXT_STRUCTP(p)    ((PDJP_ITEM)((PBYTE)(p) + (p)->cb))
  80.    #define DJP_ELEMENTP(s,t)      ((t*)&((s).ulValue))
  81.    #define DJP_SET_ELEMENT(s,t,e) (*DJP_ELEMENTP (s,t) = (e))
  82.    
  83.    /* -----------------------------------------------------------------
  84.    ** Types of Dynamic Job Properties
  85.    **
  86.    ** To see if the driver is enabled use,
  87.    **     DevEscape      (DEVESC_QUERYESCSUPPORT,
  88.    **                     DEVESC_STARTDOC_WPROP, ...)
  89.    ** and DevQueryDevice (DEVQRY_QUERYSUPPORT,
  90.    **                     DEVESC_QUERYJOBPROPERTIES, ...)
  91.    **
  92.    ** NOTE: the c/s in the defines indicate the complexity or size of
  93.    **       the information.  If it is s, then the size is ULONG sized
  94.    **       and no speical processing for the next element needs to be
  95.    **       done.
  96.    **
  97.    */
  98.    #define DJP_NONE                          0L     /* also End Of List marker */
  99.    #define DJP_S_ORIENTATION                 1L
  100.    #define DJP_C_RESOLUTION                  2L
  101.    #define DJP_S_BITSPERPEL                  3L
  102.    #define DJP_S_COLOR                       4L
  103.    #define DJP_S_PRINTQUALITY                5L
  104.    #define DJP_C_FORM                        6L
  105.    #define DJP_S_PAPERSIZE                   7L
  106.    #define DJP_C_TRAY                        8L
  107.    #define DJP_S_TRAYTYPE                    9L
  108.    #define DJP_S_MEDIA                      10L
  109.    #define DJP_S_MEDIA_COLOR                11L
  110.    #define DJP_S_FONTDOWNLOADING            12L
  111.    #define DJP_S_DUPLEX                     13L
  112.    #define DJP_S_COLLATE                    14L
  113.    #define DJP_S_FEED                       15L
  114.    #define DJP_S_PAPERSOURCE                16L
  115.    #define DJP_S_COPIES                     17L
  116.    #define DJP_S_SCALING                    18L
  117.    #define DJP_S_FORMFEEDCONTROL            19L
  118.    #define DJP_S_N_UP                       20L
  119.    
  120.    /* Types for DEVESC_QUERYJOBPROPERTIES / DEVESC_SETJOBPROPERTIES
  121.    */
  122.    #define DJP_ALL                           1L  /* enumerate the property */
  123.    #define DJP_CURRENT                       2L  /* from job properties    */
  124.    
  125.    /* Errors for DEVESC_QUERYJOBPROPERTIES / DEVESC_SETJOBPROPERTIES
  126.    */
  127.    #define DJP_ERROR_NOT_SUPPORTED          -1L  /* driver doesnt support that property */
  128.    #define DJP_ERROR_OUT_OF_RANGE           -2L  /* not in the valid range              */
  129.    #define DJP_ERROR_NOT_ENUM               -3L  /* not enumerateable                   */
  130.    #define DJP_ERROR_INV_PARMS              -4L  /* field not proper value              */
  131.    
  132.    /* -----------------------------------------------------------------
  133.    ** DJP_S_ORIENTATION
  134.    */
  135.    #define DJP_ORI_PORTRAIT                  1L
  136.    #define DJP_ORI_LANDSCAPE                 2L
  137.    #define DJP_ORI_REV_PORTRAIT              3L
  138.    #define DJP_ORI_REV_LANDSCAPE             4L
  139.    
  140.    typedef ULONG DJPT_ORIENTATION;
  141.    typedef ULONG *PDJPT_ORIENTATION;
  142.    
  143.    /* -----------------------------------------------------------------
  144.    ** DJP_C_RESOLUTION
  145.    */
  146.    typedef struct _djpResolution   /* dr */
  147.    {
  148.       USHORT     usXResolution;    /* X resolution (in dots per inch) */
  149.       USHORT     usYResolution;    /* Y resolution (in dots per inch) */
  150.    } DJPT_RESOLUTION, *PDJPT_RESOLUTION;
  151.    
  152.    /* -----------------------------------------------------------------
  153.    ** DJP_S_BITSPERPEL
  154.    */
  155.    typedef ULONG DJPT_BITSPERPEL;
  156.    typedef ULONG *PDJPT_BITSPERPEL;
  157.    
  158.    /* -----------------------------------------------------------------
  159.    ** DJP_S_COLOR
  160.    */
  161.    #define DJP_CLR_MONOCHROME                1L
  162.    #define DJP_CLR_COLOR                     2L
  163.    
  164.    typedef ULONG DJPT_COLOR;
  165.    typedef ULONG *PDJPT_COLOR;
  166.    
  167.    /* -----------------------------------------------------------------
  168.    ** DJP_S_PRINTQUALITY
  169.    **
  170.    ** Note: DJP_PQL_DRAFT is the worst quality.  In the future, there
  171.    **       may be better qualities (such as DJP_PQL_ULTRA_HIGH) which
  172.    **       will be numerically greater than DJP_PQL_HIGH.
  173.    */
  174.    #define DJP_PQL_DRAFT                     1L
  175.    #define DJP_PQL_LOW                       2L
  176.    #define DJP_PQL_MEDIUM                    3L
  177.    #define DJP_PQL_HIGH                      4L
  178.    
  179.    typedef ULONG DJPT_PRINTQUALITY;
  180.    typedef ULONG *PDJPT_PRINTQUALITY;
  181.    
  182.    /* -----------------------------------------------------------------
  183.    ** DJP_S_PAPERSIZE
  184.    */                                           /*  inches       millimeters */
  185.    #define DJP_PSI_LETTER                    1L /*  8.5  x 11    216 x 279   */
  186.    #define DJP_PSI_LEGAL                     2L /*  8.5  x 14    216 x 356   */
  187.    #define DJP_PSI_WIDE                      3L /* 13.58 x 11    345 x 279   */
  188.    #define DJP_PSI_CSHEET                    4L /* 17    x 22    431 x 558   */
  189.    #define DJP_PSI_DSHEET                    5L /* 22    x 34    558 x 863   */
  190.    #define DJP_PSI_ESHEET                    6L /* 34    x 44    863 x 1117  */
  191.    #define DJP_PSI_LETTERSMALL               7L /*                           */
  192.    #define DJP_PSI_TABLOID                   8L /* 11    x 17    279 x 431   */
  193.    #define DJP_PSI_LEDGER                    9L /* 17    x 11    431 x 279   */
  194.    #define DJP_PSI_STATEMENT                10L /*  5.5  x  8.5  139 x 216   */
  195.    #define DJP_PSI_EXECUTIVE                11L /*  7.25 x 10.5  184 x 266   */
  196.    #define DJP_PSI_A0                       12L /* 33.11 x 46.81 841 x 1189  */
  197.    #define DJP_PSI_A1                       13L /* 23.39 x 33.11 594 x 841   */
  198.    #define DJP_PSI_A2                       14L /* 16.54 x 23.39 420 x 594   */
  199.    #define DJP_PSI_A3                       15L /* 11.7  x 16.54 297 x 420   */
  200.    #define DJP_PSI_A4                       16L /*  8.3  x 11.7  210 x 297   */
  201.    #define DJP_PSI_A5                       17L /*  5.83 x  8.27 148 x 210   */
  202.    #define DJP_PSI_B4                       18L /*  9.84 x 13.94 250 x 354   */
  203.    #define DJP_PSI_B5                       19L /*  7.17 x 10.12 182 x 257   */
  204.    #define DJP_PSI_FOLIO                    20L /*  8.5  x 13    216 x 330   */
  205.    #define DJP_PSI_QUATRO                   21L /*  8.46 x 10.83 215 x 275   */
  206.    #define DJP_PSI_10X14                    22L /* 10    x 14    254 x 355   */
  207.    #define DJP_PSI_11X17                    23L /* 11    x 17    279 x 431   */
  208.    #define DJP_PSI_NOTE                     24L /*                           */
  209.    #define DJP_PSI_ENV_9                    25L /*                           */
  210.    #define DJP_PSI_ENV_10                   26L /*                           */
  211.    #define DJP_PSI_ENV_11                   27L /*                           */
  212.    #define DJP_PSI_ENV_12                   28L /*                           */
  213.    #define DJP_PSI_ENV_14                   29L /*                           */
  214.    #define DJP_PSI_ENV_DL                   30L /*                           */
  215.    #define DJP_PSI_ENV_A2                   31L /*                           */
  216.    #define DJP_PSI_ENV_C3                   32L /*                           */
  217.    #define DJP_PSI_ENV_C4                   33L /*                           */
  218.    #define DJP_PSI_ENV_C5                   34L /*                           */
  219.    #define DJP_PSI_ENV_C6                   35L /*                           */
  220.    #define DJP_PSI_ENV_C65                  36L /*                           */
  221.    #define DJP_PSI_ENV_C9                   37L /*                           */
  222.    #define DJP_PSI_ENV_C10                  38L /*                           */
  223.    #define DJP_PSI_ENV_B4                   39L /*                           */
  224.    #define DJP_PSI_ENV_B5                   40L /*                           */
  225.    #define DJP_PSI_ENV_B6                   41L /*                           */
  226.    #define DJP_PSI_ENV_ITALY                42L /*                           */
  227.    #define DJP_PSI_ENV_MONARCH              43L /*                           */
  228.    #define DJP_PSI_ENV_PERSONAL             44L /*                           */
  229.    #define DJP_PSI_FANFOLD_US               45L /*                           */
  230.    #define DJP_PSI_FANFOLD_STD_GERMAN       46L /*                           */
  231.    #define DJP_PSI_FANFOLD_LGL_GERMAN       47L /*                           */
  232.    #define DJP_PSI_ARCHITECT_BSHEET         48L /*                           */
  233.    #define DJP_PSI_ARCHITECT_CSHEET         49L /*                           */
  234.    #define DJP_PSI_ARCHITECT_DSHEET         50L /*                           */
  235.    #define DJP_PSI_ARCHITECT_ESHEET         51L /*                           */
  236.    #define DJP_PSI_CARD_A6                  52L /*                           */
  237.    #define DJP_PSI_CARD_4X6                 53L /*                           */
  238.    #define DJP_PSI_CARD_5X8                 54L /*                           */
  239.    #define DJP_PSI_CARD_HAGAKI              55L /*                           */
  240.    #define DJP_PSI_LABEL_STANDARD_WHITE     56L /*  1.10 x 3.50   28 x 89    */
  241.    #define DJP_PSI_LABEL_STANDARD_CLEAR     57L /*  1.10 x 3.50   28 x 89    */
  242.    #define DJP_PSI_LABEL_SHIPPING           58L /*  3.98 x 2.13  101 x 54    */
  243.    #define DJP_PSI_LABEL_DISK               59L /*  2.76 x 2.13   70 x 54    */
  244.    #define DJP_PSI_LABEL_EURO               60L /*  3.50 x 1.42   89 x 36    */
  245.    
  246.    typedef ULONG DJPT_PAPERSIZE;
  247.    typedef ULONG *PDJPT_PAPERSIZE;
  248.    
  249.    /* -----------------------------------------------------------------
  250.    ** DJP_C_FORM
  251.    **
  252.    ** Setting can be done two ways:
  253.    **    if djppsFormID >  0 then use the form id
  254.    **    if djppsFormID == 0 then use the szFormname + cx + cy
  255.    **
  256.    ** To create a new user defined form:
  257.    **    if djppsFormID == -1 then create a new form with szFormname as its
  258.    **                              name and cx & cy as its size
  259.    */
  260.    typedef struct _djpForm   /* df */
  261.    {
  262.       DJPT_PAPERSIZE  djppsFormID;           /* Simple form id               */
  263.       /*          -= OR =-            */
  264.       CHAR            szFormname[32];        /* System Form name             */
  265.       LONG            cx;                    /* Form width (in millimeters)  */
  266.       LONG            cy;                    /* Form height (in millimeters) */
  267.       /*   -= Informational only =-   */
  268.       CHAR            szDisplayFormname[64]; /* Display Form name(translated)*/
  269.    }  DJPT_FORM, *PDJPT_FORM;
  270.    
  271.    /* -----------------------------------------------------------------
  272.    ** DJP_S_TRAYTYPE
  273.    */
  274.    #define DJP_TRY_AUTO_SELECT               1L
  275.    #define DJP_TRY_NONE                      2L
  276.    #define DJP_TRY_TRAY                      3L
  277.    #define DJP_TRY_UPPER_TRAY                4L
  278.    #define DJP_TRY_MIDDLE                    5L
  279.    #define DJP_TRY_LOWER_TRAY                6L
  280.    #define DJP_TRY_MULTI_TRAY                7L
  281.    #define DJP_TRY_CASSETTE                  8L
  282.    #define DJP_TRY_UPPER_CASSETTE            9L
  283.    #define DJP_TRY_LOWER_CASSETTE           10L
  284.    #define DJP_TRY_MULTI_CASSETTE           11L
  285.    #define DJP_TRY_MANUAL_FEEDER            12L
  286.    #define DJP_TRY_MANUAL_ENV               13L
  287.    #define DJP_TRY_PAPER_FEEDER             14L
  288.    #define DJP_TRY_ENV_FEEDER               15L
  289.    #define DJP_TRY_CSF                      16L
  290.    #define DJP_TRY_FRONT_CONTINUOUS         17L
  291.    #define DJP_TRY_REAR_CONTINUOUS          18L
  292.    #define DJP_TRY_SINGLE_SHEET             19L
  293.    #define DJP_TRY_SHEET_FEEDER             20L
  294.    #define DJP_TRY_BIN_1                    21L
  295.    #define DJP_TRY_BIN_2                    22L
  296.    #define DJP_TRY_AUTO_FEEDER              23L
  297.    #define DJP_TRY_AUTO_ENV_FEEDER          24L
  298.    #define DJP_TRY_ALTERNATE                25L
  299.    
  300.    typedef ULONG DJPT_TRAYTYPE;
  301.    typedef ULONG *PDJPT_TRAYTYPE;
  302.    
  303.    /* -----------------------------------------------------------------
  304.    ** DJP_C_TRAY
  305.    **
  306.    ** Setting the tray has the side effect of setting the form.  Therefore,
  307.    ** the currently selected form will be returned alongside the tray name.
  308.    **
  309.    */
  310.    typedef struct _djpTray   /* dt */
  311.    {
  312.       CHAR            szTrayname[32];        /* Tray name                    */
  313.       /*   -= Informational only =-   */
  314.       DJPT_PAPERSIZE  djppsFormID;           /* Simple form id (if > 0)      */
  315.       CHAR            szFormname[32];        /* System Form name             */
  316.    }  DJPT_TRAY, *PDJPT_TRAY;
  317.    
  318.    /* -----------------------------------------------------------------
  319.    ** DJP_S_MEDIA
  320.    **
  321.    ** Select the media type.
  322.    */
  323.    #define DJP_MED_PLAIN                     1L
  324.    #define DJP_MED_TRANSPARENCY              2L
  325.    #define DJP_MED_GLOSSY                    3L
  326.    #define DJP_MED_SPECIAL                   4L
  327.    #define DJP_MED_COATED                    5L
  328.    #define DJP_MED_BACKPRINT                 6L
  329.    #define DJP_MED_CLOTH                     7L
  330.    #define DJP_MED_THICK                     8L
  331.    #define DJP_MED_STATIONARY                9L
  332.    #define DJP_MED_ENVELOPE                 10L
  333.    #define DJP_MED_CONTINUOUS_LONG          11L
  334.    #define DJP_MED_CONTINUOUS_SHORT         12L
  335.    #define DJP_MED_TAB_STOCK                13L
  336.    #define DJP_MED_MULTI_PART_FORM          14L
  337.    #define DJP_MED_LABELS                   15L
  338.    
  339.    typedef ULONG DJPT_MEDIA;
  340.    typedef ULONG *PDJPT_MEDIA;
  341.    
  342.    /* -----------------------------------------------------------------
  343.    ** DJP_S_MEDIA_COLOR
  344.    **
  345.    ** Select the media color (from the same media types).
  346.    */
  347.    #define DJP_MDC_BLUE                      1L
  348.    #define DJP_MDC_BLUFF                     2L
  349.    #define DJP_MDC_GOLDENROD                 3L
  350.    #define DJP_MDC_GREEN                     4L
  351.    #define DJP_MDC_PINK                      5L
  352.    #define DJP_MDC_TRANSPARENT               6L
  353.    #define DJP_MDC_WHITE                     7L
  354.    #define DJP_MDC_YELLOW                    8L
  355.    
  356.    typedef ULONG DJPT_MEDIA_COLOR;
  357.    typedef ULONG *PDJPT_MEDIA_COLOR;
  358.    
  359.    /* -----------------------------------------------------------------
  360.    ** DJP_S_FONTDOWNLOADING
  361.    */
  362.    #define DJP_FDL_DOWNLOAD                  1L /* Download fonts to printer          */
  363.    #define DJP_FDL_BITMAP                    2L /* Rasterize fonts                    */
  364.    #define DJP_FDL_SUBSTITUTE                3L /* Substitute device fonts for system */
  365.    
  366.    typedef ULONG DJPT_FONTDOWNLOADING;
  367.    typedef ULONG *PDJPT_FONTDOWNLOADING;
  368.    
  369.    /* -----------------------------------------------------------------
  370.    ** DJP_S_DUPLEX
  371.    */
  372.    #define DJP_DUP_NONE                      1L
  373.    #define DJP_DUP_BOOK                      2L
  374.    #define DJP_DUP_FLIP                      3L
  375.    
  376.    typedef ULONG DJPT_DUPLEX;
  377.    typedef ULONG *PDJPT_DUPLEX;
  378.    
  379.    /* -----------------------------------------------------------------
  380.    ** DJP_S_COLLATE
  381.    */
  382.    #define DJP_COL_OFF                       1L
  383.    #define DJP_COL_ON                        2L
  384.    
  385.    typedef ULONG DJPT_COLLATE;
  386.    typedef ULONG *PDJPT_COLLATE;
  387.    
  388.    /* -----------------------------------------------------------------
  389.    ** DJP_S_FEED
  390.    */
  391.    #define DJP_FED_MANUAL                    1L
  392.    #define DJP_FED_AUTOMATIC                 2L
  393.    
  394.    typedef ULONG DJPT_FEED;
  395.    typedef ULONG *PDJPT_FEED;
  396.    
  397.    /* -----------------------------------------------------------------
  398.    ** DJP_S_PAPERSOURCE
  399.    */
  400.    #define DJP_PSC_NONE                      1L
  401.    
  402.    typedef ULONG DJPT_PAPERSOURCE;
  403.    typedef ULONG *PDJPT_PAPERSOURCE;
  404.    
  405.    /* -----------------------------------------------------------------
  406.    ** DJP_S_COPIES
  407.    **
  408.    ** This is the number of copies on a per page basis.  This is not
  409.    ** enumerateable.
  410.    */
  411.    typedef ULONG DJPT_COPIES;
  412.    typedef ULONG *PDJPT_COPIES;
  413.    
  414.    /* -----------------------------------------------------------------
  415.    ** DJP_S_SCALING
  416.    **
  417.    ** This is a percentage value.  This is not enumerateable.
  418.    */
  419.    typedef LONG DJPT_SCALING;
  420.    typedef LONG *PDJPT_SCALING;
  421.    
  422.    /* -----------------------------------------------------------------
  423.    ** DJP_S_FORMFEEDCONTROL
  424.    **
  425.    ** This is a property that effects raw data jobs (print from the
  426.    ** command line, DOS print jobs, Windows print jobs). This checks
  427.    ** the very last byte of the data stream to see if it is a form
  428.    ** feed control character.
  429.    */
  430.    #define DJP_FFC_NONE                      1L    /* Never add        */
  431.    #define DJP_FFC_CONDITIONAL               2L    /* Add if not seen  */
  432.    #define DJP_FFC_COMPULSORY                3L    /* Always add       */
  433.    
  434.    typedef ULONG DJPT_FORMFEEDCONTROL;
  435.    typedef ULONG *PDJPT_FORMFEEDCONTROL;
  436.    
  437.    /* -----------------------------------------------------------------
  438.    ** DJP_S_N_UP
  439.    **
  440.    ** Number of logical pages per physical page (ex: 2-up, 4-up)
  441.    */
  442.    typedef LONG DJPT_NUP;
  443.    typedef LONG *PDJPT_NUP;
  444.    
  445.    /* NOINC */
  446. #endif
  447.  
  448. #ifdef __cplusplus
  449.         }
  450. #endif
  451. #if __IBMC__ || __IBMCPP__
  452.    #pragma info( none )
  453.    #ifndef __CHKHDR__
  454.       #pragma info( restore )
  455.    #endif
  456.    #pragma info( restore )
  457. #endif
  458. /* INC */
  459.  
  460. /**************************** end of file **********************************/
  461.