home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / opendc12.zip / od124os2.exe / od12osp1.exe / include / os2 / pmdev.h < prev    next >
C/C++ Source or Header  |  1997-04-02  |  23KB  |  574 lines

  1. /****************************** Module Header ******************************\
  2. *
  3. * Module Name: PMDEV.H
  4. *
  5. * OS/2 Presentation Manager Device Context constants, types and
  6. * function declarations
  7. *
  8. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  9. *
  10. * ===========================================================================
  11. *
  12. * The following symbols are used in this file for conditional sections.
  13. *
  14. *   #define:                To include:
  15. *
  16. *   INCL_DEVERRORS          error definitions
  17. *   INCL_DEV                Dev APIs and structures
  18. *
  19. * There is a symbol used in this file called INCL_DDIDEFS. This is used to
  20. * include only the definitions for the DDI. The programmer using the GPI
  21. * can ignore this symbol
  22. *
  23. * There is a symbol used in this file called INCL_SAADEFS. This is used to
  24. * include only the definitions for the SAA. The programmer using the GPI
  25. * can ignore this symbol
  26. *
  27. * ===========================================================================
  28. *
  29. * Comments at the end of each typedef line give the name tags used in
  30. * the assembler include version of this file.
  31. *
  32. * The assembler include version of this file excludes lines between NOINC
  33. * and INC comments.
  34. *
  35. \***************************************************************************/
  36.  
  37. #if __IBMC__ || __IBMCPP__
  38.    #pragma info( none )
  39.    #ifndef __CHKHDR__
  40.       #pragma info( none )
  41.    #endif
  42.    #pragma info( restore )
  43. #endif
  44. #ifdef __cplusplus
  45.       extern "C" {
  46. #endif
  47.  
  48. #define DEV_INCLUDED
  49.  
  50.  
  51. #ifdef INCL_ERRORS /* if errors are required then allow DEV errors */
  52.    #define INCL_DEVERRORS
  53. #endif /* INCL_ERRORS */
  54.  
  55. #ifdef INCL_DDIDEFS /* if only DDI required then enable all of DEV */
  56.    #define INCL_DEV
  57. #endif /* INCL_DDIDEFS */
  58.  
  59. #ifdef INCL_SAADEFS /* if only SAA required then enable all of DEV */
  60.    #define INCL_DEV
  61. #endif /* INCL_SAADEFS */
  62.  
  63. #if (defined(INCL_DEV) || !defined(INCL_NOCOMMON))
  64.    
  65.    /* General DEV return values */
  66.    #define DEV_ERROR                       0L
  67.    #define DEV_OK                          1L
  68.    #define DEV_BAD_PARAMETERS              2L
  69.    #define DEV_WARNING                     3L
  70.    #define DEV_PROP_BUF_TOO_SMALL          4L
  71.    #define DEV_ITEM_BUF_TOO_SMALL          5L
  72.    #define DEV_INV_INP_JOBPROPERTIES       6L
  73.    
  74.    /* DC type for DevOpenDC */
  75.    #define OD_SCREEN                       0L
  76.    #define OD_QUEUED                       2L
  77.    #define OD_DIRECT                       5L
  78.    #define OD_INFO                         6L
  79.    #define OD_METAFILE                     7L
  80.    #define OD_MEMORY                       8L
  81.    #define OD_METAFILE_NOQUERY             9L
  82.    
  83.    /* codes for DevQueryCaps */
  84.    #define CAPS_FAMILY                     0L
  85.    #define CAPS_IO_CAPS                    1L
  86.    #define CAPS_TECHNOLOGY                 2L
  87.    #define CAPS_DRIVER_VERSION             3L
  88.    #define CAPS_WIDTH                      4L      /* pels            */
  89.    #define CAPS_HEIGHT                     5L      /* pels            */
  90.    #define CAPS_WIDTH_IN_CHARS             6L
  91.    #define CAPS_HEIGHT_IN_CHARS            7L
  92.    #define CAPS_HORIZONTAL_RESOLUTION      8L      /* pels per meter  */
  93.    #define CAPS_VERTICAL_RESOLUTION        9L      /* pels per meter  */
  94.    #define CAPS_CHAR_WIDTH                10L      /* pels            */
  95.    #define CAPS_CHAR_HEIGHT               11L      /* pels            */
  96.    #define CAPS_SMALL_CHAR_WIDTH          12L      /* pels            */
  97.    #define CAPS_SMALL_CHAR_HEIGHT         13L      /* pels            */
  98.    #define CAPS_COLORS                    14L
  99.    #define CAPS_COLOR_PLANES              15L
  100.    #define CAPS_COLOR_BITCOUNT            16L
  101.    #define CAPS_COLOR_TABLE_SUPPORT       17L
  102.    #define CAPS_MOUSE_BUTTONS             18L
  103.    #define CAPS_FOREGROUND_MIX_SUPPORT    19L
  104.    #define CAPS_BACKGROUND_MIX_SUPPORT    20L
  105.    #define CAPS_DEVICE_WINDOWING          31L
  106.    #define CAPS_ADDITIONAL_GRAPHICS       32L
  107.    #define CAPS_VIO_LOADABLE_FONTS        21L
  108.    #define CAPS_WINDOW_BYTE_ALIGNMENT     22L
  109.    #define CAPS_BITMAP_FORMATS            23L
  110.    #define CAPS_RASTER_CAPS               24L
  111.    #define CAPS_MARKER_HEIGHT             25L      /* pels            */
  112.    #define CAPS_MARKER_WIDTH              26L      /* pels            */
  113.    #define CAPS_DEVICE_FONTS              27L
  114.    #define CAPS_GRAPHICS_SUBSET           28L
  115.    #define CAPS_GRAPHICS_VERSION          29L
  116.    #define CAPS_GRAPHICS_VECTOR_SUBSET    30L
  117.    #define CAPS_PHYS_COLORS               33L
  118.    #define CAPS_COLOR_INDEX               34L
  119.    #define CAPS_GRAPHICS_CHAR_WIDTH       35L
  120.    #define CAPS_GRAPHICS_CHAR_HEIGHT      36L
  121.    #define CAPS_HORIZONTAL_FONT_RES       37L
  122.    #define CAPS_VERTICAL_FONT_RES         38L
  123.    #define CAPS_DEVICE_FONT_SIM           39L
  124.    #define CAPS_LINEWIDTH_THICK           40L
  125.    #define CAPS_DEVICE_POLYSET_POINTS     41L
  126.    
  127.    /* Constants for CAPS_IO_CAPS */
  128.    #define CAPS_IO_DUMMY                   1L
  129.    #define CAPS_IO_SUPPORTS_OP             2L
  130.    #define CAPS_IO_SUPPORTS_IP             3L
  131.    #define CAPS_IO_SUPPORTS_IO             4L
  132.    
  133.    /* Constants for CAPS_TECHNOLOGY */
  134.    #define CAPS_TECH_UNKNOWN               0L
  135.    #define CAPS_TECH_VECTOR_PLOTTER        1L
  136.    #define CAPS_TECH_RASTER_DISPLAY        2L
  137.    #define CAPS_TECH_RASTER_PRINTER        3L
  138.    #define CAPS_TECH_RASTER_CAMERA         4L
  139.    #define CAPS_TECH_POSTSCRIPT            5L
  140.    
  141.    /* Constants for CAPS_COLOR_TABLE_SUPPORT */
  142.    #define CAPS_COLTABL_RGB_8              1L
  143.    #define CAPS_COLTABL_RGB_8_PLUS         2L
  144.    #define CAPS_COLTABL_TRUE_MIX           4L
  145.    #define CAPS_COLTABL_REALIZE            8L
  146.    
  147.    /* Constants for CAPS_FOREGROUND_MIX_SUPPORT */
  148.    #define CAPS_FM_OR                      1L
  149.    #define CAPS_FM_OVERPAINT               2L
  150.    #define CAPS_FM_XOR                     8L
  151.    #define CAPS_FM_LEAVEALONE             16L
  152.    #define CAPS_FM_AND                    32L
  153.    #define CAPS_FM_GENERAL_BOOLEAN        64L
  154.    
  155.    /* Constants for CAPS_BACKGROUND_MIX_SUPPORT */
  156.    #define CAPS_BM_OR                      1L
  157.    #define CAPS_BM_OVERPAINT               2L
  158.    #define CAPS_BM_XOR                     8L
  159.    #define CAPS_BM_LEAVEALONE             16L
  160.    #define CAPS_BM_AND                    32L
  161.    #define CAPS_BM_GENERAL_BOOLEAN        64L
  162.    #define CAPS_BM_SRCTRANSPARENT        128L
  163.    #define CAPS_BM_DESTTRANSPARENT       256L
  164.    
  165.    /* Constants for CAPS_DEVICE_WINDOWING */
  166.    #define CAPS_DEV_WINDOWING_SUPPORT      1L
  167.    
  168.    /* Constants for CAPS_DEV_FONT_SIM     */
  169.    #define CAPS_DEV_FONT_SIM_BOLD          1L
  170.    #define CAPS_DEV_FONT_SIM_ITALIC        2L
  171.    #define CAPS_DEV_FONT_SIM_UNDERSCORE    4L
  172.    #define CAPS_DEV_FONT_SIM_STRIKEOUT     8L
  173.    
  174.    /* Constants for CAPS_ADDITIONAL_GRAPHICS */
  175.    #define CAPS_VDD_DDB_TRANSFER            1L
  176.    #define CAPS_GRAPHICS_KERNING_SUPPORT    2L
  177.    #define CAPS_FONT_OUTLINE_DEFAULT        4L
  178.    #define CAPS_FONT_IMAGE_DEFAULT          8L
  179.    /* bits represented by values 16L and 32L are reserved */
  180.    #define CAPS_SCALED_DEFAULT_MARKERS     64L
  181.    #define CAPS_COLOR_CURSOR_SUPPORT      128L
  182.    #define CAPS_PALETTE_MANAGER           256L
  183.    #define CAPS_COSMETIC_WIDELINE_SUPPORT 512L
  184.    #define CAPS_DIRECT_FILL              1024L
  185.    #define CAPS_REBUILD_FILLS            2048L
  186.    #define CAPS_CLIP_FILLS               0x00001000 /* 4096L  */
  187.    #define CAPS_ENHANCED_FONTMETRICS     0x00002000 /* 8192L  */
  188.    #define CAPS_TRANSFORM_SUPPORT        0x00004000 /* 16384L */
  189.    #define CAPS_EXTERNAL_16_BITCOUNT     0x00008000 /* 32768L */
  190.    
  191.    #ifndef INCL_SAADEFS
  192.       
  193.       /* Constants for CAPS_WINDOW_BYTE_ALIGNMENT */
  194.       #define CAPS_BYTE_ALIGN_REQUIRED        0L
  195.       #define CAPS_BYTE_ALIGN_RECOMMENDED     1L
  196.       #define CAPS_BYTE_ALIGN_NOT_REQUIRED    2L
  197.    #endif /* no INCL_SAADEFS */
  198.    
  199.    /* Constants for CAPS_RASTER_CAPS */
  200.    #define CAPS_RASTER_BITBLT              1L
  201.    #define CAPS_RASTER_BANDING             2L
  202.    #define CAPS_RASTER_BITBLT_SCALING      4L
  203.    #define CAPS_RASTER_SET_PEL            16L
  204.    #define CAPS_RASTER_FONTS              32L
  205.    #define CAPS_RASTER_FLOOD_FILL         64L
  206.    
  207.    #ifndef INCL_DDIDEFS
  208.       
  209. #ifdef __cplusplus
  210.       HDC  APIENTRY DevOpenDC(HAB hab,
  211.                               LONG lType,
  212.                               PCSZ  pszToken,
  213.                               LONG lCount,
  214.                               PDEVOPENDATA pdopData,
  215.                               HDC hdcComp);
  216. #else
  217.       HDC  APIENTRY DevOpenDC(HAB hab,
  218.                               LONG lType,
  219.                               PSZ pszToken,
  220.                               LONG lCount,
  221.                               PDEVOPENDATA pdopData,
  222.                               HDC hdcComp);
  223. #endif
  224.       
  225.       HMF  APIENTRY DevCloseDC(HDC hdc);
  226.       
  227.       BOOL  APIENTRY DevQueryCaps(HDC hdc,
  228.                                   LONG lStart,
  229.                                   LONG lCount,
  230.                                   PLONG alArray);
  231.    #endif /* no INCL_DDIDEFS */
  232.    
  233. #endif /* common DEV */
  234.  
  235. #ifdef INCL_DEV
  236.    
  237.    #ifndef INCL_SAADEFS
  238.       
  239.       /* structures for DEVESC_QUERYVIOCELLSIZES */
  240.       typedef struct _VIOSIZECOUNT    /* vios */
  241.       {
  242.          LONG maxcount;
  243.          LONG count;
  244.       } VIOSIZECOUNT;
  245.       typedef VIOSIZECOUNT *PVIOSIZECOUNT;
  246.       
  247.       typedef struct _VIOFONTCELLSIZE    /* viof */
  248.       {
  249.          LONG cx;
  250.          LONG cy;
  251.       } VIOFONTCELLSIZE;
  252.       typedef VIOFONTCELLSIZE *PVIOFONTCELLSIZE;
  253.       
  254.       /* structure for DEVESC_GETSCALINGFACTOR */
  255.       typedef struct _SFACTORS    /* sfactors */
  256.       {
  257.          LONG x;
  258.          LONG y;
  259.       } SFACTORS;
  260.       typedef SFACTORS *PSFACTORS;
  261.       
  262.       /* structure for DEVESC_NEXTBAND */
  263.       typedef struct _BANDRECT    /* bandrect */
  264.       {
  265.          LONG  xleft;
  266.          LONG  ybottom;
  267.          LONG  xright;
  268.          LONG  ytop;
  269.       } BANDRECT;
  270.       typedef BANDRECT *PBANDRECT;
  271.       
  272.       /* return codes for DevEscape */
  273.       #define DEVESC_ERROR                  (-1L)
  274.       #define DEVESC_NOTIMPLEMENTED           0L
  275.       
  276.       /* codes for DevEscape */
  277.       #define DEVESC_QUERYESCSUPPORT          0L
  278.       #define DEVESC_GETSCALINGFACTOR         1L
  279.       #define DEVESC_QUERYVIOCELLSIZES        2L
  280.       #define DEVESC_GETCP                 8000L
  281.       
  282.       #define DEVESC_STARTDOC              8150L
  283.       #define DEVESC_ENDDOC                8151L
  284.       #define DEVESC_NEXTBAND              8152L
  285.       #define DEVESC_ABORTDOC              8153L
  286.       #define DEVESC_GETJOBID              8160L
  287.       #define DEVESC_QUERY_RASTER          8161L
  288.       /* New codes for Dynamic Job Properties */
  289.       #define DEVESC_QUERYSIZE             8162L
  290.       #define DEVESC_QUERYJOBPROPERTIES    8163L
  291.       #define DEVESC_SETJOBPROPERTIES      8164L
  292.       #define DEVESC_DEFAULTJOBPROPERTIES  8165L
  293.       #define DEVESC_CHANGEOUTPUTPORT      8166L
  294.       
  295.       #define DEVESC_NEWFRAME             16300L
  296.       #define DEVESC_DRAFTMODE            16301L
  297.       #define DEVESC_FLUSHOUTPUT          16302L
  298.       #define DEVESC_RAWDATA              16303L
  299.       #define DEVESC_SETMODE              16304L
  300.       #define DEVESC_SEP                  16305L
  301.       #define DEVESC_MACRO                16307L
  302.       #define DEVESC_BEGIN_BITBLT         16309L
  303.       #define DEVESC_END_BITBLT           16310L
  304.       #define DEVESC_SEND_COMPDATA        16311L
  305.       
  306.       #define DEVESC_DBE_FIRST            24450L
  307.       #define DEVESC_DBE_LAST             24455L
  308.       
  309.       /* DevEscape codes for adding extra space to character strings */
  310.       #define DEVESC_CHAR_EXTRA           16998L
  311.       #define DEVESC_BREAK_EXTRA          16999L
  312.       
  313.       /* codes for DevEscape PM_Q_ESC spool files */
  314.       #define DEVESC_STD_JOURNAL          32600L
  315.       
  316.       /* New codes for Dynamic Job Properties */
  317.       #define DEVESC_STARTDOC_WPROP       49150L
  318.       #define DEVESC_NEWFRAME_WPROP       49151L
  319.       
  320.       /* structure for DEVESC_SETMODE */
  321.       typedef struct _ESCMODE     /* em */
  322.       {
  323.          ULONG mode;
  324.          BYTE  modedata[1];
  325.       } ESCMODE;
  326.       typedef ESCMODE *PESCMODE;
  327.       
  328.       /* NOINC */
  329.       /* structure for DEVESC_BEGIN_BITBLT */
  330.       typedef  struct _COMPBITBLT   /* cbb */
  331.       {
  332.          ULONG ultype;
  333.          RECTL rclDst;            /* Destination rectangle */
  334.          ULONG ulColumns;
  335.          ULONG ulRows;
  336.          union
  337.          {
  338.             struct _ccitt {      /* used by COMP_G4_MMR, COMP_G3_MH, */
  339.                /* COMP_G3_MMR                      */
  340.                BOOL  bEndOfLine;
  341.                BOOL  bEncodedByteAlign;
  342.                BOOL  bEndOfBlock;
  343.                BOOL  bBlackIs1;
  344.                ULONG K;           /* Only used by COMP_G3_MMR */
  345.             } ccitt;
  346.             struct _dct          /* used by COMP_JPEG */
  347.             {
  348.                ULONG ulColors;
  349.                PVOID pQuantTables;
  350.                ULONG ulQFactor;
  351.                PVOID pHuffTables;
  352.                ULONG ColorTransform;
  353.             } dct;
  354.          } bitblt;
  355.       }  COMPBITBLT;
  356.       typedef COMPBITBLT *PCOMPBITBLT;
  357.       /* INC */
  358.       
  359.       /* structures for DEVESC_QUERY_RASTER */
  360.       typedef  struct _COMP_BITMAPTYPES   /* cbmt */
  361.       {
  362.          USHORT cPlanes;              /* # of bit planes                   */
  363.          USHORT cBitCount;            /* # of bits per pel within a plane  */
  364.          ULONG  ulCompressionType;    /* Compresstype                      */
  365.          ULONG  ulCaps;               /* Bitmap capabilites bitstring      */
  366.       }  COMP_BITMAPTYPES;
  367.       
  368.       typedef COMP_BITMAPTYPES *PCOMP_BITMAPTYPES;
  369.       
  370.       typedef  struct _QUERY_RASTER   /* qr */
  371.       {
  372.          ULONG  cCount;               /* Count of struct above that a device */
  373.          /* supports                            */
  374.          ULONG  ulCaps;               /* Bitmaps capabilities bitstring      */
  375.       }  QUERY_RASTER;
  376.       typedef QUERY_RASTER *PQUERY_RASTER;
  377.       
  378.       
  379.       typedef  struct _QUERY_ONE_RASTER   /* qor */
  380.       {
  381.          BOOL    bSupported;          /* Is mode supported with              */
  382.          /*    DEVESC_BEGIN_BITBLT?             */
  383.          BOOL    ulCaps;              /* Bitmaps capabitities bitstring      */
  384.          /* with gpi calls on a page.           */
  385.       }  QUERY_ONE_RASTER;
  386.       typedef QUERY_ONE_RASTER *PQUERY_ONE_RASTER;
  387.       
  388.       /******************************************************************/
  389.       /*           Bitmap capabitities bitstring defines                */
  390.       /******************************************************************/
  391.       #define BITMAP_WITH_GPI                0x00000001
  392.       #define BITMAP_SMOOTHING               0x00000002
  393.       #define BITMAP_STRETCHING              0x00000004
  394.       #define BITMAP_ROTATION                0x00000008
  395.       #define BITMAP_COLOR                   0x00000010
  396.       /******************************************************************/
  397.       /*                   Compression types defines                    */
  398.       /******************************************************************/
  399.       /* Group 4 fax compression */
  400.       #define COMP_IBM_MMR                   0x00000001
  401.       #define COMP_PACKBITS                  0x00000002
  402.       #define COMP_ABIC                      0x00000008
  403.       #define COMP_TIFF_2                    0x00000009
  404.       #define COMP_ABIC_CONCAT               0x0000000A
  405.       #define COMP_G3_MH                     0x00000080
  406.       #define COMP_G3_MR                     0x00000081
  407.       #define COMP_G4_MMR                    0x00000082
  408.       #define COMP_JPEG                      0x0000CA83
  409.       #define COMP_UNCOMPRESS                0x00001000
  410.       
  411.       /* return codes for DevPostDeviceModes */
  412.       #define DPDM_ERROR                    (-1L)
  413.       #define DPDM_NONE                       0L
  414.       
  415.       /* codes for DevPostDeviceModes */
  416.       #define DPDM_POSTJOBPROP                0L
  417.       #define DPDM_CHANGEPROP                 1L
  418.       #define DPDM_QUERYJOBPROP               2L
  419.       
  420.       /* string types for DevQueryDeviceNames */
  421.       typedef CHAR STR16[16];     /* str16 */
  422.       typedef STR16 *PSTR16;
  423.       typedef CHAR STR32[32];     /* str32 */
  424.       typedef STR32 *PSTR32;
  425.       typedef CHAR STR64[64];     /* str64 */
  426.       typedef STR64 *PSTR64;
  427.       
  428.       /* return code for DevQueryHardcopyCaps */
  429.       #define DQHC_ERROR                    (-1L)
  430.       
  431.       /* codes for DevQueryHardcopyCaps */
  432.       #define HCAPS_CURRENT                   1L
  433.       #define HCAPS_SELECTABLE                2L
  434.       
  435.       /* structure for DevQueryHardcopyCaps */
  436.       typedef struct _HCINFO           /* hci */
  437.       {
  438.          CHAR   szFormname[32];
  439.          LONG   cx;
  440.          LONG   cy;
  441.          LONG   xLeftClip;
  442.          LONG   yBottomClip;
  443.          LONG   xRightClip;
  444.          LONG   yTopClip;
  445.          LONG   xPels;
  446.          LONG   yPels;
  447.          LONG   flAttributes;
  448.       } HCINFO;
  449.       typedef HCINFO *PHCINFO;
  450.       
  451.       /* return codes for DevPostEscape */
  452.       #define DEVPE_ERROR                     -1L
  453.       #define DEVPE_NOTIMPLEMENTED            -2L
  454.       #define DEVPE_NOTSUPPORTED              -3L
  455.       
  456.       /* codes for DevPostEscape */
  457.       #define DEVPE_QUERYSUPPORT               1L
  458.       #define DEVPE_QUERYSIZE                  2L
  459.       #define DEVPE_QUERYJOBPROPERTIES         3L
  460.       #define DEVPE_SETJOBPROPERTIES           4L
  461.       #define DEVPE_DEFAULTJOBPROPERTIES       5L
  462.       
  463.       #ifdef INCL_DEVDJP
  464.          #include <pmdjp.h>
  465.       #endif /* INCL_DEVDJP */
  466.       
  467.       /* Device Context Functions */
  468.       #ifndef INCL_DDIDEFS
  469.          
  470.          LONG  APIENTRY DevEscape(HDC hdc,
  471.                                   LONG lCode,
  472.                                   LONG lInCount,
  473.                                   PBYTE pbInData,
  474.                                   PLONG plOutCount,
  475.                                   PBYTE pbOutData);
  476.          
  477. #ifdef __cplusplus
  478.          BOOL  APIENTRY DevQueryDeviceNames(HAB hab,
  479.                                             PCSZ  pszDriverName,
  480.                                             PLONG pldn,
  481.                                             PSTR32 aDeviceName,
  482.                                             PSTR64 aDeviceDesc,
  483.                                             PLONG pldt,
  484.                                             PSTR16 aDataType);
  485. #else
  486.          BOOL  APIENTRY DevQueryDeviceNames(HAB hab,
  487.                                             PSZ pszDriverName,
  488.                                             PLONG pldn,
  489.                                             PSTR32 aDeviceName,
  490.                                             PSTR64 aDeviceDesc,
  491.                                             PLONG pldt,
  492.                                             PSTR16 aDataType);
  493. #endif
  494.          
  495.          LONG  APIENTRY DevQueryHardcopyCaps(HDC hdc,
  496.                                              LONG lStartForm,
  497.                                              LONG lForms,
  498.                                              PHCINFO phciHcInfo);
  499.          
  500. #ifdef __cplusplus
  501.          LONG  APIENTRY DevPostDeviceModes(HAB hab,
  502.                                            PDRIVDATA pdrivDriverData ,
  503.                                            PCSZ  pszDriverName,
  504.                                            PCSZ  pszDeviceName,
  505.                                            PCSZ  pszName,
  506.                                            ULONG flOptions);
  507. #else
  508.          LONG  APIENTRY DevPostDeviceModes(HAB hab,
  509.                                            PDRIVDATA pdrivDriverData ,
  510.                                            PSZ pszDriverName,
  511.                                            PSZ pszDeviceName,
  512.                                            PSZ pszName,
  513.                                            ULONG flOptions);
  514. #endif
  515.          
  516.          /* This is a pointer to the DevPostEscape API.  It is provided
  517.          ** as a typedef so that you can DosQueryProcAddr on PMGPI.DLL
  518.          ** with the ordinal ORD_DEV32POSTESCAPE
  519.          */
  520.          /* NOINC */
  521.          typedef LONG (* APIENTRY PDEVPOSTESCAPE_FUNC)(PSZ pszDriverName,
  522.                        PSZ pszDeviceName,
  523.                        PSZ pszQueueName,
  524.                        PSZ pszSplPrinterName,
  525.                        ULONG ulFuncNum,
  526.                        ULONG cbParm1,
  527.                        PBYTE pbParm1,
  528.                        ULONG cbParm2,
  529.                        PBYTE pbParm2);
  530.          /* INC */
  531.          
  532. #ifdef __cplusplus
  533.          LONG  APIENTRY DevPostEscape(PCSZ  pszDriverName,
  534.                                       PCSZ  pszDeviceName,
  535.                                       PCSZ  pszQueueName,
  536.                                       PCSZ  pszSplPrinterName,
  537.                                       ULONG ulFuncNum,
  538.                                       ULONG cbParm1,
  539.                                       PBYTE pbParm1,
  540.                                       ULONG cbParm2,
  541.                                       PBYTE pbParm2);
  542. #else
  543.          LONG  APIENTRY DevPostEscape(PSZ pszDriverName,
  544.                                       PSZ pszDeviceName,
  545.                                       PSZ pszQueueName,
  546.                                       PSZ pszSplPrinterName,
  547.                                       ULONG ulFuncNum,
  548.                                       ULONG cbParm1,
  549.                                       PBYTE pbParm1,
  550.                                       ULONG cbParm2,
  551.                                       PBYTE pbParm2);
  552. #endif
  553.          
  554.       #endif /* no INCL_DDIDEFS */
  555.    #endif /* no INCL_SAADEFS */
  556. #endif /* non-common DEV */
  557.  
  558. #ifdef INCL_DEVERRORS
  559.    /* AAB error codes for the DEV - same as GPI errors at present */
  560. #endif /* INCL_DEVERRORS */
  561.  
  562. #ifdef __cplusplus
  563.         }
  564. #endif
  565. #if __IBMC__ || __IBMCPP__
  566.    #pragma info( none )
  567.    #ifndef __CHKHDR__
  568.       #pragma info( restore )
  569.    #endif
  570.    #pragma info( restore )
  571. #endif
  572.  
  573. /**************************** end of file **********************************/
  574.