Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

293 lines
10 KiB

/***************************************************************************\
*
* Module Name: PMDEV.H
*
* OS/2 Presentation Manager Device Context constants, types and
* function declarations
*
* Copyright (c) International Business Machines Corporation 1981, 1988, 1989
* Copyright (c) Microsoft Corporation 1981, 1988, 1989
*
* =======================================================================
*
* 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))
/* 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 */
#endif /* 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_GETSCALINGFACTOR */
typedef struct _SFACTORS { /* sfactors */
LONG x;
LONG y;
} SFACTORS;
typedef SFACTORS FAR * PSFACTORS;
/* structure for DEVESC_NEXTBAND */
typedef struct _BANDRECT { /* bandrect */
LONG xleft;
LONG ybottom;
LONG xright;
LONG ytop;
} BANDRECT;
typedef BANDRECT FAR * PBANDRECT;
/* 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_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_SETMODE 16304L
#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;
/* structure for DEVESC_SETMODE */
typedef struct _ESCSETMODE { /* escsm */
ULONG mode;
USHORT codepage;
} ESCSETMODE;
typedef ESCSETMODE FAR * PESCSETMODE;
/* 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 /* non-common DEV */
#ifdef INCL_DEVERRORS
/* AAB error codes for the DEV - same as GPI errors at present */
#endif /* INCL_DEVERRORS */