Annotation of os232sdk/toolkt20/c/os2h/pmdev.h, revision 1.1

1.1     ! root        1: /***************************************************************************\
        !             2: *
        !             3: *   Copyright (c) IBM Corporation 1987, 1989
        !             4: *   Copyright (c) MicroSoft Corporation 1987,1989
        !             5: *
        !             6: * Module Name: PMDEV.H
        !             7: *
        !             8: * OS/2 Presentation Manager Device Context constants, types and
        !             9: * function declarations
        !            10: *
        !            11: *
        !            12: * =======================================================================
        !            13: *
        !            14: * The folowing symbols are used in this file for conditional sections.
        !            15: *
        !            16: * INCL_DEVERRORS                - defined if INCL_ERRORS defined
        !            17: *
        !            18: * There is a symbol used in this file called INCL_DDIDEFS. This is used to
        !            19: * include only the definitions for the DDI. The programmer using the GPI
        !            20: * can ignore this symbol
        !            21: *
        !            22: * There is a symbol used in this file called INCL_SAADEFS. This is used to
        !            23: * include only the definitions for the SAA. The programmer using the GPI
        !            24: * can ignore this symbol
        !            25: *
        !            26: \***************************************************************************/
        !            27: 
        !            28: 
        !            29: #if !(defined(INCL_32) || defined(INCL_16))
        !            30: #ifdef M_I386
        !            31:     #define INCL_32
        !            32: #else /* not M_I386 */
        !            33:     #define INCL_16
        !            34: #endif /* M_I386 */
        !            35: #endif /* INCL_32 || INCL_16 */
        !            36: 
        !            37: #ifdef INCL_ERRORS /* if errors are required then allow DEV errors */
        !            38:     #define INCL_DEVERRORS
        !            39: #endif /* INCL_ERRORS */
        !            40: 
        !            41: #ifdef INCL_DDIDEFS /* if only DDI required then enable all of DEV */
        !            42:     #define INCL_DEV
        !            43: #endif /* INCL_DDIDEFS */
        !            44: 
        !            45: #ifdef INCL_SAADEFS /* if only SAA required then enable all of DEV */
        !            46:     #define INCL_DEV
        !            47: #endif /* INCL_SAADEFS */
        !            48: 
        !            49: #if (defined(INCL_DEV) || !defined(INCL_NOCOMMON))
        !            50: 
        !            51: /* General DEV return values */
        !            52: #define DEV_ERROR                       0L
        !            53: #define DEV_OK                          1L
        !            54: 
        !            55: /* pointer data for DevOpenDC */
        !            56: typedef PSZ FAR *PDEVOPENDATA;
        !            57: 
        !            58: /* DC type for DevOpenDC */
        !            59: #define OD_QUEUED                       2L
        !            60: #define OD_DIRECT                       5L
        !            61: #define OD_INFO                         6L
        !            62: #define OD_METAFILE                     7L
        !            63: #define OD_MEMORY                       8L
        !            64: #define OD_METAFILE_NOQUERY             9L
        !            65: 
        !            66: /* codes for DevQueryCaps */
        !            67: #define CAPS_FAMILY                     0L
        !            68: #define CAPS_IO_CAPS                    1L
        !            69: #define CAPS_TECHNOLOGY                 2L
        !            70: #define CAPS_DRIVER_VERSION             3L
        !            71: #define CAPS_WIDTH                      4L      /* pels            */
        !            72: #define CAPS_HEIGHT                     5L      /* pels            */
        !            73: #define CAPS_WIDTH_IN_CHARS             6L
        !            74: #define CAPS_HEIGHT_IN_CHARS            7L
        !            75: #define CAPS_HORIZONTAL_RESOLUTION      8L      /* pels per meter  */
        !            76: #define CAPS_VERTICAL_RESOLUTION        9L      /* pels per meter  */
        !            77: #define CAPS_CHAR_WIDTH                10L      /* pels            */
        !            78: #define CAPS_CHAR_HEIGHT               11L      /* pels            */
        !            79: #define CAPS_SMALL_CHAR_WIDTH          12L      /* pels            */
        !            80: #define CAPS_SMALL_CHAR_HEIGHT         13L      /* pels            */
        !            81: #define CAPS_COLORS                    14L
        !            82: #define CAPS_COLOR_PLANES              15L
        !            83: #define CAPS_COLOR_BITCOUNT            16L
        !            84: #define CAPS_COLOR_TABLE_SUPPORT       17L
        !            85: #define CAPS_MOUSE_BUTTONS             18L
        !            86: #define CAPS_FOREGROUND_MIX_SUPPORT    19L
        !            87: #define CAPS_BACKGROUND_MIX_SUPPORT    20L
        !            88: #define CAPS_DEVICE_WINDOWING          31L
        !            89: #define CAPS_ADDITIONAL_GRAPHICS       32L
        !            90: #define CAPS_VIO_LOADABLE_FONTS        21L
        !            91: #define CAPS_WINDOW_BYTE_ALIGNMENT     22L
        !            92: #define CAPS_BITMAP_FORMATS            23L
        !            93: #define CAPS_RASTER_CAPS               24L
        !            94: #define CAPS_MARKER_HEIGHT             25L      /* pels            */
        !            95: #define CAPS_MARKER_WIDTH              26L      /* pels            */
        !            96: #define CAPS_DEVICE_FONTS              27L
        !            97: #define CAPS_GRAPHICS_SUBSET           28L
        !            98: #define CAPS_GRAPHICS_VERSION          29L
        !            99: #define CAPS_GRAPHICS_VECTOR_SUBSET    30L
        !           100: #define CAPS_PHYS_COLORS               33L
        !           101: #define CAPS_COLOR_INDEX               34L
        !           102: #define CAPS_GRAPHICS_CHAR_WIDTH       35L
        !           103: #define CAPS_GRAPHICS_CHAR_HEIGHT      36L
        !           104: #define CAPS_HORIZONTAL_FONT_RES       37L
        !           105: #define CAPS_VERTICAL_FONT_RES         38L
        !           106: #define CAPS_DEVICE_FONT_SIM           39L
        !           107: #define CAPS_LINEWIDTH_THICK           40L                      /*@D2A*/
        !           108: 
        !           109: /* Constants for CAPS_IO_CAPS */
        !           110: #define CAPS_IO_DUMMY                   1L
        !           111: #define CAPS_IO_SUPPORTS_OP             2L
        !           112: #define CAPS_IO_SUPPORTS_IP             3L
        !           113: #define CAPS_IO_SUPPORTS_IO             4L
        !           114: 
        !           115: /* Constants for CAPS_TECHNOLOGY */
        !           116: #define CAPS_TECH_UNKNOWN               0L
        !           117: #define CAPS_TECH_VECTOR_PLOTTER        1L
        !           118: #define CAPS_TECH_RASTER_DISPLAY        2L
        !           119: #define CAPS_TECH_RASTER_PRINTER        3L
        !           120: #define CAPS_TECH_RASTER_CAMERA         4L
        !           121: #define CAPS_TECH_POSTSCRIPT            5L
        !           122: 
        !           123: /* Constants for CAPS_COLOR_TABLE_SUPPORT */
        !           124: #define CAPS_COLTABL_RGB_8              1L
        !           125: #define CAPS_COLTABL_RGB_8_PLUS         2L
        !           126: #define CAPS_COLTABL_TRUE_MIX           4L
        !           127: #define CAPS_COLTABL_REALIZE            8L
        !           128: 
        !           129: /* Constants for CAPS_FOREGROUND_MIX_SUPPORT */
        !           130: #define CAPS_FM_OR                      1L
        !           131: #define CAPS_FM_OVERPAINT               2L
        !           132: #define CAPS_FM_XOR                     8L
        !           133: #define CAPS_FM_LEAVEALONE             16L
        !           134: #define CAPS_FM_AND                    32L
        !           135: #define CAPS_FM_GENERAL_BOOLEAN        64L
        !           136: 
        !           137: /* Constants for CAPS_BACKGROUND_MIX_SUPPORT */
        !           138: #define CAPS_BM_OR                      1L
        !           139: #define CAPS_BM_OVERPAINT               2L
        !           140: #define CAPS_BM_XOR                     8L
        !           141: #define CAPS_BM_LEAVEALONE             16L
        !           142: 
        !           143: /* Constants for CAPS_DEVICE_WINDOWING */
        !           144: #define CAPS_DEV_WINDOWING_SUPPORT      1L
        !           145: 
        !           146: /* Constants for CAPS_ADDITIONAL_GRAPHICS */
        !           147: #define CAPS_GRAPHICS_KERNING_SUPPORT    2L
        !           148: #define CAPS_FONT_OUTLINE_DEFAULT        4L
        !           149: #define CAPS_FONT_IMAGE_DEFAULT          8L
        !           150: /* bits represented by values 16L and 32L are reserved */
        !           151: #define CAPS_SCALED_DEFAULT_MARKERS     64L
        !           152: #define CAPS_COLOR_CURSOR_SUPPORT      128L                     /*@D3A*/
        !           153: #define CAPS_PALETTE_MANAGER           256L                     /*@D3A*/
        !           154: #define CAPS_COSMETIC_WIDELINE_SUPPORT 512L                     /*@D2A*/
        !           155: 
        !           156: #ifndef INCL_SAADEFS
        !           157: 
        !           158: /* Constants for CAPS_WINDOW_BYTE_ALIGNMENT */
        !           159: #define CAPS_BYTE_ALIGN_REQUIRED        0L
        !           160: #define CAPS_BYTE_ALIGN_RECOMMENDED     1L
        !           161: #define CAPS_BYTE_ALIGN_NOT_REQUIRED    2L
        !           162: #endif /* no INCL_SAADEFS */
        !           163: 
        !           164: /* Constants for CAPS_RASTER_CAPS */
        !           165: #define CAPS_RASTER_BITBLT              1L
        !           166: #define CAPS_RASTER_BANDING             2L
        !           167: #define CAPS_RASTER_BITBLT_SCALING      4L
        !           168: #define CAPS_RASTER_SET_PEL            16L
        !           169: #define CAPS_RASTER_FONTS              32L
        !           170: #define CAPS_RASTER_FLOOD_FILL         64L                           /* @D1A */
        !           171: 
        !           172: #ifndef INCL_DDIDEFS
        !           173: /* XLATOFF */
        !           174: #ifdef INCL_16
        !           175:     #define DevOpenDC            Dev16OpenDC
        !           176:     #define DevCloseDC           Dev16CloseDC
        !           177:     #define DevQueryCaps         Dev16QueryCaps
        !           178: #endif  /* INCL_16 */
        !           179: /* XLATON */
        !           180: 
        !           181: HDC  APIENTRY DevOpenDC( HAB hab, LONG lType, PSZ pszToken
        !           182:                        , LONG lCount, PDEVOPENDATA pdopData, HDC hdcComp );
        !           183: HMF  APIENTRY DevCloseDC( HDC hdc );
        !           184: BOOL  APIENTRY DevQueryCaps( HDC hdc, LONG lStart, LONG lCount, PLONG alArray );
        !           185: #endif /* no INCL_DDIDEFS */
        !           186: 
        !           187: #endif /* common DEV */
        !           188: #ifdef INCL_DEV
        !           189: 
        !           190: #ifndef INCL_SAADEFS
        !           191: /* structures for DEVESC_QUERYVIOCELLSIZES */
        !           192: typedef struct _VIOSIZECOUNT { /* vios */
        !           193:        LONG maxcount;
        !           194:        LONG count;
        !           195:        } VIOSIZECOUNT;
        !           196: typedef VIOSIZECOUNT FAR * PVIOSIZECOUNT;
        !           197: 
        !           198: typedef struct _VIOFONTCELLSIZE { /* viof */
        !           199:        LONG cx;
        !           200:        LONG cy;
        !           201:        } VIOFONTCELLSIZE;
        !           202: typedef VIOFONTCELLSIZE FAR * PVIOFONTCELLSIZE;
        !           203: 
        !           204: /* structure for DEVESC_GETSCALINGFACTOR */                      /*@P1A*/
        !           205: typedef struct _SFACTORS { /* sfactors */                        /*@P1A*/
        !           206:     LONG x;                                                      /*@P1A*/
        !           207:     LONG y;                                                      /*@P1A*/
        !           208: } SFACTORS;                                                      /*@P1A*/
        !           209: typedef SFACTORS FAR * PSFACTORS;                                /*@P1A*/
        !           210: 
        !           211: /* structure for DEVESC_NEXTBAND */                              /*@P1A*/
        !           212: typedef struct _BANDRECT { /* bandrect */                        /*@P1A*/
        !           213:     LONG  xleft;                                                 /*@P1A*/
        !           214:     LONG  ybottom;                                               /*@P1A*/
        !           215:     LONG  xright;                                                /*@P1A*/
        !           216:     LONG  ytop;                                                  /*@P1A*/
        !           217: } BANDRECT;                                                      /*@P1A*/
        !           218: typedef BANDRECT FAR * PBANDRECT;                                /*@P1A*/
        !           219: 
        !           220: /* return codes for DevEscape */
        !           221: #define DEVESC_ERROR                  (-1L)
        !           222: #define DEVESC_NOTIMPLEMENTED           0L
        !           223: 
        !           224: /* codes for DevEscape */
        !           225: #define DEVESC_QUERYESCSUPPORT          0L
        !           226: #define DEVESC_GETSCALINGFACTOR         1L
        !           227: #define DEVESC_QUERYVIOCELLSIZES        2L
        !           228: #define DEVESC_GETCP                 8000L
        !           229: 
        !           230: #define DEVESC_STARTDOC              8150L
        !           231: #define DEVESC_ENDDOC                8151L
        !           232: #define DEVESC_NEXTBAND              8152L
        !           233: #define DEVESC_ABORTDOC              8153L
        !           234: 
        !           235: #define DEVESC_NEWFRAME             16300L
        !           236: #define DEVESC_DRAFTMODE            16301L
        !           237: #define DEVESC_FLUSHOUTPUT          16302L
        !           238: #define DEVESC_RAWDATA              16303L
        !           239: #define DEVESC_SETMODE              16304L
        !           240: 
        !           241: #define DEVESC_DBE_FIRST            24450L
        !           242: #define DEVESC_DBE_LAST             24455L
        !           243: 
        !           244: /* DevEscape codes for adding extra space to character strings */
        !           245: #define DEVESC_CHAR_EXTRA           16998L
        !           246: #define DEVESC_BREAK_EXTRA          16999L
        !           247: 
        !           248: /* codes for DevEscape PM_Q_ESC spool files */
        !           249: #define DEVESC_STD_JOURNAL          32600L
        !           250: 
        !           251: /* structure for DEVESC_SETMODE */
        !           252: typedef struct _ESCMODE {  /* em */
        !           253:     ULONG mode;
        !           254:     BYTE  modedata[1];
        !           255: } ESCMODE;
        !           256: typedef ESCMODE FAR * PESCMODE;
        !           257: 
        !           258: /* return codes for DevPostDeviceModes */
        !           259: #define DPDM_ERROR                    (-1L)
        !           260: #define DPDM_NONE                       0L
        !           261: 
        !           262: /* codes for DevPostDeviceModes */
        !           263: #define DPDM_POSTJOBPROP                0L
        !           264: #define DPDM_CHANGEPROP                 1L
        !           265: #define DPDM_QUERYJOBPROP               2L
        !           266: 
        !           267: /* string types for DevQueryDeviceNames */
        !           268: typedef CHAR STR16[16];     /* str16 */
        !           269: typedef STR16 FAR *PSTR16;
        !           270: typedef CHAR STR32[32];     /* str32 */
        !           271: typedef STR32 FAR *PSTR32;
        !           272: typedef CHAR STR64[64];     /* str64 */
        !           273: typedef STR64 FAR *PSTR64;
        !           274: 
        !           275: /* return code for DevQueryHardcopyCaps */
        !           276: #define DQHC_ERROR                    (-1L)
        !           277: /* codes for DevQueryHardcopyCaps */
        !           278: #define HCAPS_CURRENT                   1L
        !           279: #define HCAPS_SELECTABLE                2L
        !           280: 
        !           281: /* structure for DevQueryHardcopyCaps */
        !           282: typedef struct _HCINFO {        /* hci */
        !           283:     CHAR   szFormname[32];
        !           284:     LONG   cx;
        !           285:     LONG   cy;
        !           286:     LONG   xLeftClip;
        !           287:     LONG   yBottomClip;
        !           288:     LONG   xRightClip;
        !           289:     LONG   yTopClip;
        !           290:     LONG   xPels;
        !           291:     LONG   yPels;
        !           292:     LONG   flAttributes;
        !           293: } HCINFO;
        !           294: typedef HCINFO FAR *PHCINFO;
        !           295: 
        !           296: /* Device Context Functions */
        !           297: #ifndef INCL_DDIDEFS
        !           298: 
        !           299: /* XLATOFF */
        !           300: #ifdef INCL_16
        !           301:     #define DevEscape            Dev16Escape
        !           302:     #define DevQueryDeviceNames  Dev16QueryDeviceNames
        !           303:     #define DevQueryHardcopyCaps Dev16QueryHardcopyCaps
        !           304:     #define DevPostDeviceModes   Dev16PostDeviceModes
        !           305: #endif  /* INCL_16 */
        !           306: /* XLATON */
        !           307: 
        !           308: LONG  APIENTRY DevEscape( HDC hdc, LONG lCode, LONG lInCount, PBYTE pbInData
        !           309:                         , PLONG plOutCount, PBYTE pbOutData );
        !           310: BOOL  APIENTRY DevQueryDeviceNames( HAB hab, PSZ pszDriverName, PLONG pldn
        !           311:                                   , PSTR32 aDeviceName, PSTR64 aDeviceDesc
        !           312:                                   , PLONG pldt, PSTR16 aDataType );
        !           313: LONG  APIENTRY DevQueryHardcopyCaps( HDC hdc, LONG lStartForm
        !           314:                                    , LONG lForms, PHCINFO phciHcInfo );
        !           315: LONG  APIENTRY DevPostDeviceModes( HAB hab, PDRIVDATA pdrivDriverData
        !           316:                                  , PSZ pszDriverName, PSZ pszDeviceName
        !           317:                                  , PSZ pszName, ULONG flOptions );
        !           318: 
        !           319: #endif /* no INCL_DDIDEFS */
        !           320: #endif /* no INCL_SAADEFS */
        !           321: 
        !           322: #endif /* non-common DEV */
        !           323: 
        !           324: #ifdef INCL_DEVERRORS
        !           325: 
        !           326: /* AAB error codes for the DEV - same as GPI errors at present */
        !           327: 
        !           328: #endif /* INCL_DEVERRORS */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.