home *** CD-ROM | disk | FTP | other *** search
- /***************************************************************************\
- *
- * Module Name: PMDEV.H
- *
- * OS/2 Presentation Manager Device Context constants, types and
- * function declarations
- *
- * Copyright (c) 1989-1990, Microsoft Corporation. All rights reserved.
- *
- * =======================================================================
- *
- * The folowing symbols are used in this file for conditional sections.
- *
- * INCL_DEVERRORS - defined if INCL_ERRORS defined
- *
- * There is a symbol used in this file called INCL_DDIDEFS. This is used to
- * include only the definitions for the DDI. The programmer using the GPI
- * can ignore this symbol
- *
- * There is a symbol used in this file called INCL_SAADEFS. This is used to
- * include only the definitions for the SAA. The programmer using the GPI
- * can ignore this symbol
- *
- \***************************************************************************/
-
- #ifdef INCL_ERRORS /* if errors are required then allow DEV errors */
- #define INCL_DEVERRORS
- #endif /* INCL_ERRORS */
-
- #ifdef INCL_DDIDEFS /* if only DDI required then enable all of DEV */
- #define INCL_DEV
- #endif /* INCL_DDIDEFS */
-
- #ifdef INCL_SAADEFS /* if only SAA required then enable all of DEV */
- #define INCL_DEV
- #endif /* INCL_SAADEFS */
-
- #if ((defined(INCL_DEV) || !defined(INCL_NOCOMMON)) && !defined(INCL_DEV_INCLUDED))
- #define INCL_DEV_INCLUDED
-
- /* General DEV return values */
- #define DEV_ERROR 0L
- #define DEV_OK 1L
-
- /* pointer data for DevOpenDC */
- typedef PSZ FAR *PDEVOPENDATA;
-
- /* DC type for DevOpenDC */
- #define OD_QUEUED 2L
- #define OD_DIRECT 5L
- #define OD_INFO 6L
- #define OD_METAFILE 7L
- #define OD_MEMORY 8L
- #define OD_METAFILE_NOQUERY 9L
-
- /* codes for DevQueryCaps */
- #define CAPS_FAMILY 0L
- #define CAPS_IO_CAPS 1L
- #define CAPS_TECHNOLOGY 2L
- #define CAPS_DRIVER_VERSION 3L
- #define CAPS_WIDTH 4L /* pels */
- #define CAPS_HEIGHT 5L /* pels */
- #define CAPS_WIDTH_IN_CHARS 6L
- #define CAPS_HEIGHT_IN_CHARS 7L
- #define CAPS_HORIZONTAL_RESOLUTION 8L /* pels per meter */
- #define CAPS_VERTICAL_RESOLUTION 9L /* pels per meter */
- #define CAPS_CHAR_WIDTH 10L /* pels */
- #define CAPS_CHAR_HEIGHT 11L /* pels */
- #define CAPS_SMALL_CHAR_WIDTH 12L /* pels */
- #define CAPS_SMALL_CHAR_HEIGHT 13L /* pels */
- #define CAPS_COLORS 14L
- #define CAPS_COLOR_PLANES 15L
- #define CAPS_COLOR_BITCOUNT 16L
- #define CAPS_COLOR_TABLE_SUPPORT 17L
- #define CAPS_MOUSE_BUTTONS 18L
- #define CAPS_FOREGROUND_MIX_SUPPORT 19L
- #define CAPS_BACKGROUND_MIX_SUPPORT 20L
- #define CAPS_DEVICE_WINDOWING 31L
- #define CAPS_ADDITIONAL_GRAPHICS 32L
- #define CAPS_VIO_LOADABLE_FONTS 21L
- #define CAPS_WINDOW_BYTE_ALIGNMENT 22L
- #define CAPS_BITMAP_FORMATS 23L
- #define CAPS_RASTER_CAPS 24L
- #define CAPS_MARKER_HEIGHT 25L /* pels */
- #define CAPS_MARKER_WIDTH 26L /* pels */
- #define CAPS_DEVICE_FONTS 27L
- #define CAPS_GRAPHICS_SUBSET 28L
- #define CAPS_GRAPHICS_VERSION 29L
- #define CAPS_GRAPHICS_VECTOR_SUBSET 30L
- #define CAPS_PHYS_COLORS 33L
- #define CAPS_COLOR_INDEX 34L
- #define CAPS_GRAPHICS_CHAR_WIDTH 35L
- #define CAPS_GRAPHICS_CHAR_HEIGHT 36L
- #define CAPS_HORIZONTAL_FONT_RES 37L
- #define CAPS_VERTICAL_FONT_RES 38L
- #define CAPS_DEVICE_FONT_SIM 39L
-
- /* Constants for CAPS_IO_CAPS */
- #define CAPS_IO_DUMMY 1L
- #define CAPS_IO_SUPPORTS_OP 2L
- #define CAPS_IO_SUPPORTS_IP 3L
- #define CAPS_IO_SUPPORTS_IO 4L
-
- /* Constants for CAPS_TECHNOLOGY */
- #define CAPS_TECH_UNKNOWN 0L
- #define CAPS_TECH_VECTOR_PLOTTER 1L
- #define CAPS_TECH_RASTER_DISPLAY 2L
- #define CAPS_TECH_RASTER_PRINTER 3L
- #define CAPS_TECH_RASTER_CAMERA 4L
- #define CAPS_TECH_POSTSCRIPT 5L
-
- /* Constants for CAPS_COLOR_TABLE_SUPPORT */
- #define CAPS_COLTABL_RGB_8 1L
- #define CAPS_COLTABL_RGB_8_PLUS 2L
- #define CAPS_COLTABL_TRUE_MIX 4L
- #define CAPS_COLTABL_REALIZE 8L
-
- /* Constants for CAPS_FOREGROUND_MIX_SUPPORT */
- #define CAPS_FM_OR 1L
- #define CAPS_FM_OVERPAINT 2L
- #define CAPS_FM_XOR 8L
- #define CAPS_FM_LEAVEALONE 16L
- #define CAPS_FM_AND 32L
- #define CAPS_FM_GENERAL_BOOLEAN 64L
-
- /* Constants for CAPS_BACKGROUND_MIX_SUPPORT */
- #define CAPS_BM_OR 1L
- #define CAPS_BM_OVERPAINT 2L
- #define CAPS_BM_XOR 8L
- #define CAPS_BM_LEAVEALONE 16L
-
- /* Constants for CAPS_DEVICE_WINDOWING */
- #define CAPS_DEV_WINDOWING_SUPPORT 1L
-
- /* Constants for CAPS_ADDITIONAL_GRAPHICS */
- #define CAPS_GRAPHICS_KERNING_SUPPORT 2L
- #define CAPS_FONT_OUTLINE_DEFAULT 4L
- #define CAPS_FONT_IMAGE_DEFAULT 8L
- /* bits represented by values 16L and 32L are reserved */
- #define CAPS_SCALED_DEFAULT_MARKERS 64L
- #ifndef INCL_SAADEFS
-
- /* Constants for CAPS_WINDOW_BYTE_ALIGNMENT */
- #define CAPS_BYTE_ALIGN_REQUIRED 0L
- #define CAPS_BYTE_ALIGN_RECOMMENDED 1L
- #define CAPS_BYTE_ALIGN_NOT_REQUIRED 2L
- #endif /* no INCL_SAADEFS */
-
- /* Constants for CAPS_RASTER_CAPS */
- #define CAPS_RASTER_BITBLT 1L
- #define CAPS_RASTER_BANDING 2L
- #define CAPS_RASTER_BITBLT_SCALING 4L
- #define CAPS_RASTER_SET_PEL 16L
- #define CAPS_RASTER_FONTS 32L
-
- #ifndef INCL_DDIDEFS
- HDC APIENTRY DevOpenDC(HAB hab, LONG lType, PSZ pszToken,
- LONG lCount, PDEVOPENDATA pdopData, HDC hdcComp);
- HMF APIENTRY DevCloseDC(HDC hdc);
- BOOL APIENTRY DevQueryCaps(HDC hdc, LONG lStart, LONG lCount, PLONG alArray);
- #endif /* no INCL_DDIDEFS */
-
- /* end of common DEV */
-
- #ifdef INCL_DEV
-
- #ifndef INCL_SAADEFS
- /* structures for DEVESC_QUERYVIOCELLSIZES */
- typedef struct _VIOSIZECOUNT { /* vios */
- LONG maxcount;
- LONG count;
- } VIOSIZECOUNT;
- typedef VIOSIZECOUNT FAR * PVIOSIZECOUNT;
-
- typedef struct _VIOFONTCELLSIZE { /* viof */
- LONG cx;
- LONG cy;
- } VIOFONTCELLSIZE;
- typedef VIOFONTCELLSIZE FAR * PVIOFONTCELLSIZE;
-
- /* structure for DEVESC_GETCP */
- typedef struct _ESCGETCP { /* escgcp */
- ULONG options;
- USHORT codepage;
- USHORT fontid;
- } ESCGETCP;
- typedef ESCGETCP FAR * PESCGETCP;
-
- /* return codes for DevEscape */
- #define DEVESC_ERROR (-1L)
- #define DEVESC_NOTIMPLEMENTED 0L
-
- /* codes for DevEscape */
- #define DEVESC_QUERYESCSUPPORT 0L
- #define DEVESC_GETSCALINGFACTOR 1L
- #define DEVESC_QUERYVIOCELLSIZES 2L
- #define DEVESC_GETCP 8000L
-
- #define DEVESC_STARTDOC 8150L
- #define DEVESC_ENDDOC 8151L
- #define DEVESC_NEXTBAND 8152L
- #define DEVESC_ABORTDOC 8153L
-
- #define DEVESC_NEWFRAME 16300L
- #define DEVESC_DRAFTMODE 16301L
- #define DEVESC_FLUSHOUTPUT 16302L
- #define DEVESC_RAWDATA 16303L
- #define DEVESC_DBE_FIRST 24450L
- #define DEVESC_DBE_LAST 24455L
-
- /* DevEscape codes for adding extra space to character strings */
- #define DEVESC_CHAR_EXTRA 16998L
- #define DEVESC_BREAK_EXTRA 16999L
-
- /* codes for DevEscape PM_Q_ESC spool files */
- #define DEVESC_STD_JOURNAL 32600L
-
- /* return codes for DevPostDeviceModes */
- #define DPDM_ERROR (-1L)
- #define DPDM_NONE 0L
-
- /* codes for DevPostDeviceModes */
- #define DPDM_POSTJOBPROP 0L
- #define DPDM_CHANGEPROP 1L
- #define DPDM_QUERYJOBPROP 2L
-
- /* string types for DevQueryDeviceNames */
- typedef CHAR STR16[16]; /* str16 */
- typedef STR16 FAR *PSTR16;
- typedef CHAR STR32[32]; /* str32 */
- typedef STR32 FAR *PSTR32;
- typedef CHAR STR64[64]; /* str64 */
- typedef STR64 FAR *PSTR64;
-
- /* return code for DevQueryHardcopyCaps */
- #define DQHC_ERROR (-1L)
- /* codes for DevQueryHardcopyCaps */
- #define HCAPS_CURRENT 1L
- #define HCAPS_SELECTABLE 2L
-
- /* structure for DevQueryHardcopyCaps */
- typedef struct _HCINFO { /* hci */
- CHAR szFormname[32];
- LONG cx;
- LONG cy;
- LONG xLeftClip;
- LONG yBottomClip;
- LONG xRightClip;
- LONG yTopClip;
- LONG xPels;
- LONG yPels;
- LONG flAttributes;
- } HCINFO;
- typedef HCINFO FAR *PHCINFO;
-
- /* Device Context Functions */
- #ifndef INCL_DDIDEFS
-
- LONG APIENTRY DevEscape(HDC hdc, LONG lCode, LONG lInCount, PBYTE pbInData,
- PLONG plOutCount, PBYTE pbOutData);
- BOOL APIENTRY DevQueryDeviceNames(HAB hab, PSZ pszDriverName, PLONG pldn,
- PSTR32 aDeviceName, PSTR64 aDeviceDesc,
- PLONG pldt, PSTR16 aDataType);
- LONG APIENTRY DevQueryHardcopyCaps(HDC hdc, LONG lStartForm,
- LONG lForms, PHCINFO phciHcInfo);
- LONG APIENTRY DevPostDeviceModes(HAB hab, PDRIVDATA pdrivDriverData,
- PSZ pszDriverName, PSZ pszDeviceName,
- PSZ pszName, ULONG flOptions);
-
- #endif /* no INCL_DDIDEFS */
- #endif /* no INCL_SAADEFS */
-
- #endif /* INCL_DEV */
- #endif /* INCL_DEV or COMMON */
-
- #ifdef INCL_DEVERRORS
-
- /* AAB error codes for the DEV - same as GPI errors at present */
-
- #endif /* INCL_DEVERRORS */
-