File:  [OS/2 SDKs] / os232sdk / toolkt20 / c / os2h / pmddi.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Thu Aug 9 12:26:31 2018 UTC (7 years, 9 months ago) by root
Branches: msft, MAIN
CVS tags: os2sdk-1990, HEAD
Microsoft OS/2 SDK 2.0 05-30-1990

/*static char *SCCSID = "@(#)pmddi.h   13.13 90/04/02";*/
/*******************************Module*Header*******************************\
* Module Name: PMDDI.H							    *
*									    *
* Include file that declares entry points, macros, and types for the	    *
* Graphics Engine.							    *
*									    *
* Version 1.10 Copyright International Business Machines Corp. 1981, 1988   *
* Version 1.10 Copyright Microsoft Corp. 1981, 1988			    *
*									    *
*===========================================================================*
*									    *
* The following symbols are used in this file for conditional sections:	    *
*									    *
*     INCL_DDIGRE   - if you don't want OS2DEF, PMGPI, and PMDEV included   *
*     INCL_DDIDEFS  - if you don't want the above, but do want GRE structs  *
*									    *
* It is expected that callers of the Engine will want to define INCL_DDIGRE *
* and possibly INCL_DDIDEFS.  The Engine itself and device drivers define   *
* neither of these.							    *
*									    *
* Further defines must be made to specify which of the GRE function macros  *
* should be defined.  INCL_GREALL causes all of them to be defined.	    *
*									    *
*     INCL_GRE_ARCS    - Arcs functions					    *
*     INCL_GRE_LINES	   - Line functions				    *
*     INCL_GRE_MARKERS	   - etc.					    *
*     INCL_GRE_SCANS							    *
*     INCL_GRE_BITMAPS							    *
*     INCL_GRE_STRINGS							    *
*     INCL_GRE_PATHS							    *
*     INCL_GRE_PICK							    *
*     INCL_GRE_CLIP							    *
*     INCL_GRE_REGIONS							    *
*     INCL_GRE_XFORMS							    *
*     INCL_GRE_DEVMISC							    *
*     INCL_GRE_COLORTABLE						    *
*     INCL_GRE_DEVICE							    *
*     INCL_GRE_DCS							    *
*     INCL_GRE_SETID							    *
*     INCL_GRE_FONTS							    *
*     INCL_GRE_JOURNALING						    *
*     INCL_GRE_LCID							    *
*     INCL_GRE_DEVSUPPORT						    *
*     INCL_GRE_PALETTE							    *
\***************************************************************************/

/* exported Engine DDI functions */

ULONG PASCAL FAR SetDriverInfo( ULONG, LHANDLE, ULONG, HDC );
ULONG PASCAL FAR GetDriverInfo( LHANDLE, ULONG, HDC );
ULONG PASCAL FAR PostDeviceModes( PDRIVDATA, PSZ, PSZ, PSZ, ULONG );
BOOL PASCAL FAR GreInitialize(VOID);

/* define common types in the Engine and DDI */

typedef struct _RECTS { /* rcs */
    POINTS pts1;
    POINTS pts2;
} RECTS;
typedef RECTS FAR *PRECTS;

typedef struct _POINTFX { /* ptfx */
    FIXED x;
    FIXED y;
} POINTFX;
typedef POINTFX FAR *PPOINTFX;

typedef struct _RECTFX { /* rcfx */
    POINTFX ptfx1;
    POINTFX ptfx2;
} RECTFX;
typedef RECTFX FAR *PRECTFX;

typedef struct _XFORM { /* xform */
    FIXED fxM11;
    FIXED fxM12;
    FIXED fxM21;
    FIXED fxM22;
    LONG  lM41;
    LONG  lM42;
} XFORM;
typedef XFORM FAR *PXFORM;

typedef LONG LCID;	/* locally-coded id */
typedef LCID FAR *PLCID;
typedef LONG PHID;	/* path id */
typedef ULONG HDEVPAL;

/* get GRE function macros */
/* have INCL_GREALL defined to get all of these */

#ifdef INCL_GREALL
#define INCL_GRE_ARCS
#define INCL_GRE_LINES
#define INCL_GRE_MARKERS
#define INCL_GRE_SCANS
#define INCL_GRE_BITMAPS
#define INCL_GRE_STRINGS
#define INCL_GRE_PATHS
#define INCL_GRE_PICK
#define INCL_GRE_CLIP
#define INCL_GRE_REGIONS
#define INCL_GRE_XFORMS
#define INCL_GRE_DEVMISC
#define INCL_GRE_COLORTABLE
#define INCL_GRE_DEVICE
#define INCL_GRE_DCS
#define INCL_GRE_SETID
#define INCL_GRE_FONTS
#define INCL_GRE_JOURNALING
#define INCL_GRE_LCID
#define INCL_GRE_DEVSUPPORT
#define INCL_GRE_PALETTE
#endif /* INCL_GREALL */

#ifdef INCL_GRE_DEVMISC
#define INCL_GRE_DEVMISC1
#define INCL_GRE_DEVMISC2
#define INCL_GRE_DEVMISC3
#endif	/* INCL_GRE_DEVMISC */

/* Command Flags for high word of FunN */

#ifdef INCL_DDICOMFLAGS
#define COM_DRAW    0x0001
#define COM_BOUND   0x0002
#define COM_CORRELATE	0x0004
#define COM_ALT_BOUND	0x0008
#define COM_AREA    0x0010
#define COM_PATH    0x0020
#define COM_TRANSFORM	0x0040
#define COM_RECORDING	0x0080
#define COM_DEVICE  0x0100
#endif /* INCL_DDICOMFLAGS */

#ifdef INCL_GRE_ARCS

/* BoxBoundary */
/* BoxInterior */
/* BoxBoth */

typedef struct _BOXPARAMS {    /* boxp */
    POINTL ptl;
    SIZEL  sizl;
} BOXPARAMS;
typedef BOXPARAMS FAR *PBOXPARAMS;
#endif /* INCL_GRE_ARCS */

#ifdef INCL_GRE_CLIP

/* CopyClipRegion */

#define COPYCRGN_ALLINTERSECT	0L
#define COPYCRGN_VISRGN	    1L
#define COPYCRGN_CLIPRGN    2L

/* SetupDC */

#define SETUPDC_VISRGN		0x00000001L
#define SETUPDC_ORIGIN		0x00000002L
#define SETUPDC_ACCUMBOUNDSON	0x00000004L
#define SETUPDC_ACCUMBOUNDSOFF	0x00000008L
#define SETUPDC_RECALCCLIP	0x00000010L
#define SETUPDC_SETOWNER	0x00000020L
#define SETUPDC_CLEANDC		0x00000040L

#endif /* INCL_GRE_CLIP */

#ifdef INCL_GRE_XFORMS
/* QueryViewportSize */

typedef struct _VIEWPORTSIZE { /* vs */
    ULONG cx;
    ULONG cy;
} VIEWPORTSIZE;
typedef VIEWPORTSIZE FAR *PVIEWPORTSIZE;

#endif /* INCL_GRE_XFORMS */

#ifdef INCL_GRE_DEVSUPPORT

/* Constants for GreInitializeAttributes */

#define INAT_DEFAULTATTRIBUTES	1L
#define INAT_CURRENTATTRIBUTES	2L

/* InvalidateVisRegion */

typedef struct _DC_BLOCK { /* ivr */
    ULONG hdc;
    ULONG hddc;
} DC_BLOCK;
typedef DC_BLOCK FAR *PDC_BLOCK;

#endif /* INCL_GRE_DEVSUPPORT */

#ifdef INCL_DDIMISC

/* Display information resource structure (RT_DISPLAYINFO) */

typedef struct _DISPLAYINFO {	 /* dspinfo */
    USHORT cb;
    SHORT cxIcon;
    SHORT cyIcon;
    SHORT cxPointer;
    SHORT cyPointer;
    SHORT cxBorder;
    SHORT cyBorder;
    SHORT cxHSlider;
    SHORT cyVSlider;
    SHORT cxSizeBorder;
    SHORT cySizeBorder;
    SHORT cxDeviceAlign;
    SHORT cyDeviceAlign;
} DISPLAYINFO;
typedef DISPLAYINFO FAR *PDISPLAYINFO;

/* Parameters for the DC Enable function */

typedef struct _DENPARAMS { /* den */
    ULONG ulStateInfo;
    ULONG ulType;
    ULONG ulHDC;
} DENPARAMS;
typedef DENPARAMS FAR *PDENPARAMS;


typedef struct _STYLERATIO { /* sr */
    BYTE dx;
    BYTE dy;
} STYLERATIO;
typedef STYLERATIO FAR *PSTYLERATIO;

/* Options flags for SetGlobalAttribute */

#define GATTR_DEFAULT		   1L

/* Attribute Types for SetGlobalAttribute */

#define ATYPE_COLOR	       1L
#define ATYPE_BACK_COLOR	   2L
#define ATYPE_MIX_MODE		   3L
#define ATYPE_BACK_MIX_MODE	   4L

/* Options for CharStringPos */

#define CHS_START_XY	       0x00000020L
#define CHS_ATTR_INFO	       0x00000040L

typedef struct _CSP_INFO { /* csp */
    LONG  cSize;
    LONG  lColor;
    LONG  lBackColor;
} CSP_INFO;
typedef CSP_INFO FAR *PCSP_INFO;

/* Set/GetProcessControl */

#define PCTL_DRAW	   0x00000001L
#define PCTL_BOUND	   0x00000002L
#define PCTL_CORRELATE	       0x00000004L
#define PCTL_USERBOUNDS	       0x00000008L
#define PCTL_AREA	   0x00000010L

/* ResetBounds */

#define RB_GPI		   0x00000001L
#define RB_USER		   0x00000002L

/* GetBoundsData */

#define GBD_GPI		    0L
#define GBD_USER	    1L

/* EndArea Cancel Option */

#define EA_DRAW		    0x00000000L
#define EA_CANCEL	    0x00000001L

/* Bitblt Style */

#define BLTMODE_SRC_BITMAP	     0x00010000L
#define BLTMODE_ATTRS_PRES	     0x00020000L
#define BLTMODE_NO_PAL_MAP	     0x00080000L
#define BBO_TARGWORLD		     0x00000100L

typedef struct _BITBLTPARAMETERS { /* bbp */
    RECTL rclTarg;
    RECTL rclSrc;
} BITBLTPARAMETERS;
typedef BITBLTPARAMETERS FAR *PBITBLTPARAMETERS;

typedef struct _BITBLTATTRS { /* bba */
    LONG cSize;
    LONG lColor;
    LONG lBackColor;
} BITBLTATTRS;
typedef BITBLTATTRS FAR *PBITBLTATTRS;

/* LCIDs */

#define LCID_AVIO_1	       (-2L)
#define LCID_AVIO_2	       (-3L)
#define LCID_AVIO_3	       (-4L)

#define LCID_RANGE_GPI		1L
#define LCID_RANGE_AVIO		2L
#define LCID_RANGE_BOTH		3L
#define LCID_GRAPHICS_MIN	1
#define LCID_GRAPHICS_MAX	254

#define LCIDT_NONE               0L

/* ResetDC */

#define RDC_RGBMODE		0x1L
#define RDC_SETOWNERTOSHELL	0x2L

/* SetRandomXform */

#define SX_UNITY	    0L
#define SX_CAT_AFTER		1L
#define SX_CAT_BEFORE		2L
#define SX_OVERWRITE		3L

/* transform accelerators			*/
/*  These bits are only valid if the MATRIX_SIMPLE bit is set.	    */
/*  The X and Y negate flags are only meaningful if MATRIX_UNITS is set.*/

#define MATRIX_SIMPLE	    0x0001L	/* two entries are zero */
#define MATRIX_UNITS	    0x0002L	/* all entries are +1 or -1 */
#define MATRIX_XY_EXCHANGE  0x0004L	/* zeros are on the diagonal*/
#define MATRIX_X_NEGATE	    0x0008L	/* X is hit by negative */
#define MATRIX_Y_NEGATE	    0x0010L	/* Y is hit by negative */
#define MATRIX_TRANSLATION  0x0020L	/* non-zero translation */

/* NotifyClipChange */

#define NCC_CLEANDC	    0x0002L	/* clear DC dirty bit */

/* NotifyTransformChange */

typedef struct _NOTIFYTRANSFORMDATA { /* ntd */
    USHORT usType;
    XFORM  xform;
} NOTIFYTRANSFORMDATA;
typedef NOTIFYTRANSFORMDATA FAR *PNOTIFYTRANSFORMDATA;


/* ColorTable */

#define LCOL_SYSCOLORS	    0x0010L


/* query device caps */

typedef struct _QCDARRAY { /* qcd */
    LONG    iFormat;
    LONG    iSmallest;
    LONG    iLargest;
    LONG    cAvailable;
    LONG    cSpecifiable;
    LONG    iMax;
} QCDARRAY;
typedef QCDARRAY FAR *PQCDARRAY;

#define CAPS_MIX_OR	   0x00000001L
#define CAPS_MIX_COPY	       0x00000002L
#define CAPS_MIX_UNDERPAINT    0x00000004L
#define CAPS_MIX_XOR	       0x00000008L
#define CAPS_MIX_INVISIBLE     0x00000010L
#define CAPS_MIX_AND	       0x00000020L
#define CAPS_MIX_OTHER	       0x00000040L

#define CAPS_DEV_FONT_SIM_BOLD		1L	// for CAPS_DEVICE_FONT_SIM
#define CAPS_DEV_FONT_SIM_ITALIC	2L
#define CAPS_DEV_FONT_SIM_UNDERSCORE	4L
#define CAPS_DEV_FONT_SIM_STRIKEOUT	8L

#define CAPS_BACKMIX_OR	    0x00000001L
#define CAPS_BACKMIX_COPY   0x00000002L
#define CAPS_BACKMIX_UNDERPAINT 0x00000004L
#define CAPS_BACKMIX_XOR    0x00000008L
#define CAPS_BACKMIX_INVISIBLE	0x00000010L


/*#define CAPS_RASTER_BITBLT	 0x00000001L	defined in pmdev.h */
/*#define CAPS_RASTER_BANDING	 0x00000002L	*/
/*#define CAPS_RASTER_STRETCHBLT 0x00000004L	*/
/*#define CAPS_RASTER_SETPEL	 0x00000010L	*/
#define CAPS_FONT_OUTLINE_MANAGE 16L
#define CAPS_FONT_IMAGE_MANAGE	 32L
#define SFONT_RASTER	     100
#define SFONT_OUTLINE	     101
#define FONT		1000	   /* must not conflict with RT_XXX */
		       /* constants in BSEDOS.H */

/* DCCaps */

#define DCCAPS_LINE	   0x0100
#define DCCAPS_CURVE	       0x0200
#define DCCAPS_AREA	   0x0400
#define DCCAPS_MARKER	       0x0800
#define DCCAPS_TEXT	   0x1000

/* DeviceDeleteBitmap */
#define BITMAP_USAGE_TRANSLATE	0x0004

/* DeleteBitmap return structure */
typedef struct _DELETERETURN { /* dr */
    ULONG      pInfo;
    ULONG      pBits;
} DELETERETURN;
typedef DELETERETURN FAR *PDELETERETURN;

/* Short Line Header */

#define SLH_FORMAT_IS_16_DOT_16 1
#define PSL_YMAJOR 0x8000	/* bit mask for usStyle */

typedef struct _SHORTLINEHEADER { /* slh */
    USHORT     usStyle;
    USHORT     usFormat;
    POINTS     ptsStart;
    POINTS     ptsStop;
    SHORT      sxLeft;
    SHORT      sxRight;
    struct _SHORTLINEHEADER FAR * pslhNext;
    struct _SHORTLINEHEADER FAR * pslhPrev;
} SHORTLINEHEADER;
typedef SHORTLINEHEADER FAR *PSHORTLINEHEADER;

/* Short Line */

typedef struct _SHORTLINE { /* sl */
    SHORTLINEHEADER slh;
    SHORT	ax[1];
} SHORTLINE;
typedef SHORTLINE FAR *PSHORTLINE;

typedef struct _SCANDATA { /* sd */
    PSHORTLINE pslFirstLeft;
    PSHORTLINE pslLastLeft;
    PSHORTLINE pslFirstRight;
    PSHORTLINE pslLastRight;
    ULONG      c;
    RECTL      rclBound;
} SCANDATA;
typedef SCANDATA FAR *PSCANDATA;

/* Index for Set/GetDriverInfo */

#define DI_HDC	       0x00000000L
#define DI_HBITMAP     0x00000001L

#endif	/* INCL_DDIMISC */

#ifdef INCL_DDIMISC2

/* RealizeFont */

#define REALIZE_FONT		1   /* To be removed */
#define REALIZE_ENGINE_FONT	2
#define DELETE_FONT		3

#define RF_DEVICE_FONT		1
#define RF_LOAD_ENGINE_FONT	2
#define RF_DELETE_FONT		3
#define RF_DELETE_ENGINE_FONT	4

#endif	/* INCL_DDIMISC2 */

#ifdef INCL_DDIBUNDLES

/* Device Line Bundle */

typedef struct _LINEDEFS { /* ldef */
    ULONG      defType;
} LINEDEFS;
typedef LINEDEFS FAR *PLINDEFS;

typedef struct _DLINEBUNDLE { /* dlbnd */
    SHORT      cAttr;
    SHORT      cDefs;
    LINEBUNDLE lbnd;
    LINEDEFS   ldef;
} DLINEBUNDLE;
typedef DLINEBUNDLE FAR *PDLINEBUNDLE;

/* Device Area Bundle */

typedef struct _AREADEFS { /* adef */
    ULONG      defSet;
    UINT       fFlags;
    UINT       CodePage;
} AREADEFS;
typedef AREADEFS FAR *PAREADEFS;

typedef struct _DAREABUNDLE { /* dabnd */
    SHORT      cAttr;
    SHORT      cDefs;
    AREABUNDLE abnd;
    AREADEFS   adef;
} DAREABUNDLE;
typedef DAREABUNDLE FAR *PDAREABUNDLE;

/* Device Character Bundle */

typedef struct _CHARDEFS { /* cdef */
    ULONG      defSet;
    UINT       fFlags;
    UINT       CodePage;
    UINT       charSpacing;
} CHARDEFS;
typedef CHARDEFS FAR *PCHARDEFS;

typedef struct _DCHARBUNDLE { /* dcbnd */
    SHORT      cAttr;
    SHORT      cDefs;
    CHARBUNDLE cbnd;
    CHARDEFS   cdef;
} DCHARBUNDLE;
typedef DCHARBUNDLE FAR *PDCHARBUNDLE;

/* Device Image Bundle */

#ifdef BOGUS
typedef struct _IMAGEDEFS { /* idef */
} IMAGEDEFS;
#endif	/* BOGUS */

typedef struct _DIMAGEBUNDLE { /* dibnd */
    SHORT      cAttr;
    SHORT      cDefs;
    IMAGEBUNDLE ibnd;
/*    IMAGEDEFS	  idef; */
} DIMAGEBUNDLE;
typedef DIMAGEBUNDLE FAR *PDIMAGEBUNDLE;

/* Device Marker Bundle */

typedef struct _MARKERDEFS { /* mdef */
    ULONG      defSet;
    UINT       fFlags;
    UINT       CodePage;
} MARKERDEFS;
typedef MARKERDEFS FAR *PMARKERDEFS;

typedef struct _DMARKERBUNDLE { /* dmbnd */
    SHORT      cAttr;
    SHORT      cDefs;
    MARKERBUNDLE mbnd;
    MARKERDEFS	 mdef;
} DMARKERBUNDLE;
typedef DMARKERBUNDLE FAR *PDMARKERBUNDLE;


#endif /* INCL_DDIBUNDLES */

/* This stuff should go away soon.  use INCL_FONTFILEFORMAT and include os2.h */
#ifdef INCL_DDIFONTSTRUCS
#include <pmfont.h>
#endif /* INCL_DDIFONTSTRUCS */

/* This stuff should go away soon.  use INCL_BITMAPFILEFORMAT and include os2.h */
#ifdef INCL_DDIBITMAPFILE
#include <pmbitmap.h>
#endif /* INCL_DDIBITMAPFILE */

#ifdef INCL_DDIPATHS

/* Signatures of Path data structures */

#define CURVE_IDENTIFIER	0x43
#define SUBPATH_IDENTIFIER	0x53
#define PATH_IDENTIFIER		0x50
#define PATHSEGMENT_IDENTIFIER	0x5350

/* Curve types */

#define LINE_IDENTIFIER		0x4C
#define FILLET_SHARP_IDENTIFIER 0x46
#define FILLET_EQN_IDENTIFIER	0x45
#define CURVEATTR_IDENTIFIER	0x41

/* Subpath types */

#define SUBPATH_CLOSED		0x43
#define SUBPATH_OPEN		0x4F

/* Path types */

#define BEGINAREA_IDENTIFIER	    0x41
#define BEGINPATH_IDENTIFIER	    0x50
#define PATHSEGMENT_FORMAT_16_16    1

/* Flags for curve data structures */

#define CURVE_FIRST_IN_SUBPATH	    0x0001
#define CURVE_DO_FIRST_PEL	0x0002
#define CURVE_GOES_UP		0x0004
#define CURVE_IS_HORIZONTAL	0x0008
#define CURVE_IS_X_MAJOR	0x0010
#define CURVE_GOES_LEFT		0x0020
#define CURVE_FIRST_CARVED	0x0040
#define CURVE_HALF_COOKED	0x0400
#define CURVE_IS_ABOVE_OR_RIGHT 0x0800
/* Flags for SubPath data structures */

#define SUBPATH_DO_FIRST_PEL	    0x0002

/* Flags for Path data structures */

#define PATH_HAS_LINES_PRESENT	    0x4000
#define PATH_HAS_CONICS_PRESENT	    0x8000

/* Data structures to support the Path API */

typedef struct _CURVE { /* cv */
    BYTE    bIdent;
    BYTE    bType;
    USHORT  usStyle;
    USHORT  fs;
    struct  _CURVE NEAR *npcvNext;
    struct  _CURVE NEAR *npcvPrev;
    struct  _CURVE NEAR *npcvAttrs;
    POINTFX ptfxA;
    POINTFX ptfxC;
    BYTE    Reserved2[16];
} CURVE;
typedef CURVE FAR *PCURVE;
typedef CURVE NEAR *NPCURVE;

typedef struct _LINE { /* ln */
    BYTE    bIdent;
    BYTE    bType;
    USHORT  usStyle;
    USHORT  fs;
    CURVE   NEAR *npcvNext;
    CURVE   NEAR *npcvPrev;
    CURVE   NEAR *npcvAttrs;
    POINTFX ptfxA;
    POINTFX ptfxC;
    POINTS  ptsA;
    POINTS  ptsC;
    FIXED   lRslope;
    BYTE    Reserved2[4];
} LINE;
typedef LINE FAR *PLINE;
typedef LINE NEAR *NPLINE;

typedef struct _FILLETEQN { /* fse */
    BYTE    bIdent;
    BYTE    bType;
    USHORT  usReferences;
    POINTS  ptsA;
    POINTS  ptsC;
    POINTS  ptsB;
    USHORT  usNumerator;
    USHORT  usDenominator;
    LONG    lAlpha;
    LONG    lBeta;
    LONG    lGamma;
    LONG    lDelta;
    LONG    lEpsilon;
    LONG    lZeta;
} FILLETEQN;
typedef FILLETEQN FAR *PFILLETEQN;
typedef FILLETEQN NEAR *NPFILLETEQN;

typedef struct _FILLETSHARP { /* fs */
    BYTE    bIdent;
    BYTE    bType;
    USHORT  usStyle;
    USHORT  fs;
    CURVE   NEAR *npcvNext;
    CURVE   NEAR *npcvPrev;
    CURVE   NEAR *npcvAttrs;
    POINTFX ptfxA;
    POINTFX ptfxC;
    POINTFX ptfxB;
    FIXED   lSharpness;
    FILLETEQN NEAR *npEquation;
    BYTE    Reserved2[2];
} FILLETSHARP;
typedef FILLETSHARP FAR *PFILLETSHARP;
typedef FILLETSHARP NEAR *NPFILLETSHARP;

#ifdef INCL_GPIPRIMITIVES
typedef struct _CURVEATTR { /* cva */
    BYTE	bIdent;
    BYTE	bType;
    ULONG	flAttrs;	/* which fields have new info */
    BYTE	Reserved1[4];
    CURVE	NEAR *npcvAttrs;
    ULONG	flDefs;		/* which fields have default info */
    LINEBUNDLE	lbnd;		/* the info */
    BYTE	Reserved2[2];
} CURVEATTR;
typedef CURVEATTR FAR *PCURVEATTR;
typedef CURVEATTR NEAR *NPCURVEATTR;
#endif /* INCL_GPIPRIMITIVES */

typedef struct _SUBPATH { /* sp */
    BYTE    bIdent;
    BYTE    bType;
    USHORT  usStyle;
    USHORT  fs;
    struct  _SUBPATH NEAR *npspNext;
    struct  _SUBPATH NEAR *npspPrev;
    USHORT  ccv;
    ULONG   flFlags;
    CURVE   NEAR *npcvFirst;
    CURVE   NEAR *npcvLast;
    RECTS   rcsBounding;
    CURVE   NEAR *npcvAttrs;
    BYTE    Reserved1[14];
} SUBPATH;
typedef SUBPATH FAR *PSUBPATH;
typedef SUBPATH NEAR *NPSUBPATH;

#define PH_FORMAT_IS_16_DOT_16	1

typedef struct _PATH { /* ph */
    BYTE    bIdent;
    BYTE    bType;
    USHORT  usFormat;
    USHORT  usStyle;
    USHORT  fs;
    SUBPATH NEAR *npspFirst;
    SUBPATH NEAR *npspLast;
    USHORT  csp;
    ULONG   flFlags;
    USHORT  usDimension;
    BYTE    bSubpathType;
    LONG    alColor;
    USHORT  ausMixMode;
    USHORT  ausDefault;
    POINTL  aptlRefPoint ;
    CURVE   NEAR *npcvAttrs;
    BYTE    Reserved1[7];
} PATH;
typedef PATH FAR *PPATH;
typedef PATH NEAR *NPPATH;

typedef struct _PATHSEGMENT { /* phs */
    USHORT  usIdent;
	 SHORT	Reserved0;
    CURVE   NEAR *npcvFree;
    USHORT  ccvFree;
    USHORT  cReferences;
    USHORT  usSize;
    PATH    NEAR *npph;
    BYTE    Reserved1[2];
    FSRSEM  fsrs;
} PATHSEGMENT;
typedef PATHSEGMENT FAR *PPATHSEGMENT;
typedef PATHSEGMENT NEAR *NPPATHSEGMENT;

/* Argument to DrawCookedPath, etc. */

typedef struct _PIPELINEINFO { /* pi */
    CURVE   FAR *pcv;
    ULONG   ccv;
} PIPELINEINFO;
typedef PIPELINEINFO FAR *PPIPELINEINFO;
typedef PIPELINEINFO NEAR *NPPIPELINEINFO;
#endif	/* INCL_DDIPATHS */

#ifdef INCL_GRE_JOURNALING
#define JNL_TEMP_FILE	    0x00000001L
#define JNL_PERM_FILE	    0x00000002L
#define JNL_ENGINERAM_FILE  0x00000004L
#define JNL_USERRAM_FILE    0x00000008L
#define JNL_DRAW_OPTIMIZATION	0x00000010L
#define JNL_BOUNDS_OPTIMIZATION 0x00000020L
#endif	/* INCL_GRE_JOURNALING */


#ifdef INCL_GRE_DEVICE

/* QueryDeviceBitmaps */

typedef struct _BITMAPFORMAT { /* bmf */
    ULONG cPlanes;
    ULONG cBitCount;
} BITMAPFORMAT;
typedef BITMAPFORMAT FAR *PBITMAPFORMAT;

#endif /* INCL_GRE_DEVICE */

#ifdef INCL_GRE_PALETTE

typedef struct _PALETTEINFOHEADER { /* palinfohdr */
	ULONG  flCmd;	      // options from creation
	ULONG  ulFormat;      // specifies format of entries at creation
	LONG   lStart;	      // starting index from creation
	LONG   clColorData;   // number of elements supplied at creation
} PALETTEINFOHEADER;
typedef PALETTEINFOHEADER NEAR *NPPALETTEINFOHEADER;
typedef PALETTEINFOHEADER FAR  *PPALETTEINFOHEADER;

typedef struct _PALETTEINFO { /* palinfo */
	ULONG  flCmd;	      // options from creation
	ULONG  ulFormat;      // specifies format of entries at creation
	LONG   lStart;	      // starting index from creation
	LONG   clColorData;   // number of elements supplied at creation
	RGB2   argb[1];       // the palette entries
} PALETTEINFO;
typedef PALETTEINFO NEAR *NPPALETTEINFO;
typedef PALETTEINFO FAR  *PPALETTEINFO;

/* flType values for RealizePalette */
#define RP_FOREGROUND		   1
#define RP_FULL_DEFAULT_MODE	   2
#define RP_RESTRICTED_DEFAULT_MODE 4

#endif

#ifdef INCL_GRE_BITMAPS

#define LR_CLIPPED   2
#define LR_NOTBORDER 0
#define LR_BORDER    1
#define LR_LEFT      2
#define LR_RIGHT     4

#endif

#include <pmddim.h>

unix.superglobalmegacorp.com

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