📄 pmgpi.mh
字号:
/*
* pmgpi.h OS/2 Presentation Manager Graphics Programming Interface
* include file for 16-bit development.
*
:include crwatcnt.sp
*/
:include readonly.sp
:include cpluspro.sp
#ifdef INCL_GPI
#define INCL_GPICONTROL
#define INCL_GPICORRELATION
#define INCL_GPIBITMAPS
#define INCL_GPIDEFAULTS
#define INCL_GPILCIDS
#define INCL_GPILOGCOLORTABLE
#define INCL_GPIMETAFILES
#define INCL_GPIPATHS
#define INCL_GPIPRIMITIVES
#define INCL_GPIREGIONS
#define INCL_GPISEGMENTS
#define INCL_GPISEGEDITING
#define INCL_GPITRANSFORMS
#endif
#ifdef INCL_ERRORS
#define INCL_GPIERRORS
#endif
#define GPI_ERROR 0L
#define GPI_OK 1L
#define GPI_ALTERROR (-1L)
#define CLR_NOINDEX (-254L)
#define MAKEFIXED(intpart,fractpart) MAKELONG(fractpart,intpart)
#define FIXEDFRAC(fx) (LOUSHORT(fx))
#define FIXEDINT(fx) ((SHORT)HIUSHORT(fx))
typedef LONG FIXED, FAR *PFIXED;
typedef USHORT FIXED88;
typedef USHORT FIXED114;
typedef struct _SIZEL {
LONG cx;
LONG cy;
} SIZEL, FAR *PSIZEL;
#if defined(INCL_GPICONTROL) || !defined(INCL_NOCOMMON)
#define PU_ARBITRARY 0x0004L
#define PU_PELS 0x0008L
#define PU_LOMETRIC 0x000CL
#define PU_HIMETRIC 0x0010L
#define PU_LOENGLISH 0x0014L
#define PU_HIENGLISH 0x0018L
#define PU_TWIPS 0x001CL
#define GPIF_DEFAULT 0L
#define GPIF_SHORT 0x0100L
#define GPIF_LONG 0x0200L
#define GPIT_NORMAL 0L
#define GPIT_MICRO 0x1000L
#define GPIA_NOASSOC 0L
#define GPIA_ASSOC 0x4000L
#define HDC_ERROR ((HDC)-1L)
BOOL APIENTRY GpiAssociate(HPS,HDC);
HPS APIENTRY GpiCreatePS(HAB,HDC,PSIZEL,ULONG);
BOOL APIENTRY GpiDestroyPS(HPS);
BOOL APIENTRY GpiErase(HPS);
HDC APIENTRY GpiQueryDevice(HPS);
BOOL APIENTRY GpiRestorePS(HPS,LONG);
LONG APIENTRY GpiSavePS(HPS);
#endif
#ifdef INCL_GPICONTROL
#define GRES_ATTRS 0x0001L
#define GRES_SEGMENTS 0x0002L
#define GRES_ALL 0x0004L
#define PS_UNITS 0x00FCL
#define PS_FORMAT 0x0F00L
#define PS_TYPE 0x1000L
#define PS_MODE 0x2000L
#define PS_ASSOCIATE 0x4000L
#define PS_NORESET 0x8000L
#define GPIE_SEGMENT 0L
#define GPIE_ELEMENT 1L
#define GPIE_DATA 2L
#define DCTL_ERASE 1L
#define DCTL_DISPLAY 2L
#define DCTL_BOUNDARY 3L
#define DCTL_DYNAMIC 4L
#define DCTL_CORRELATE 5L
#define DCTL_ERROR (-1L)
#define DCTL_OFF 0L
#define DCTL_ON 1L
#define SDW_ERROR (-1L)
#define SDW_OFF 0L
#define SDW_ON 1L
#define DM_ERROR 0L
#define DM_DRAW 1L
#define DM_RETAIN 2L
#define DM_DRAWANDRETAIN 3L
LONG APIENTRY GpiErrorSegmentData(HPS,PLONG,PLONG);
LONG APIENTRY GpiQueryDrawControl(HPS,LONG);
LONG APIENTRY GpiQueryDrawingMode(HPS);
ULONG APIENTRY GpiQueryPS(HPS,PSIZEL);
LONG APIENTRY GpiQueryStopDraw(HPS);
BOOL APIENTRY GpiResetPS(HPS,ULONG);
BOOL APIENTRY GpiSetDrawControl(HPS,LONG,LONG);
BOOL APIENTRY GpiSetDrawingMode(HPS,LONG);
BOOL APIENTRY GpiSetPS(HPS,PSIZEL,ULONG);
BOOL APIENTRY GpiSetStopDraw(HPS,LONG);
#endif
#ifdef INCL_GPICORRELATION
#define PICKAP_DEFAULT 0L
#define PICKAP_REC 2L
#define PICKSEL_VISIBLE 0L
#define PICKSEL_ALL 1L
#define GPI_HITS 2L
LONG APIENTRY GpiCorrelateChain(HPS,LONG,PPOINTL,LONG,LONG,PLONG);
LONG APIENTRY GpiCorrelateFrom(HPS,LONG,LONG,LONG,PPOINTL,LONG,LONG,PLONG);
LONG APIENTRY GpiCorrelateSegment(HPS,LONG,LONG,PPOINTL,LONG,LONG,PLONG);
BOOL APIENTRY GpiQueryBoundaryData(HPS,PRECTL);
BOOL APIENTRY GpiQueryPickAperturePosition(HPS,PPOINTL);
BOOL APIENTRY GpiQueryPickApertureSize(HPS,PSIZEL);
BOOL APIENTRY GpiQueryTag(HPS,PLONG);
BOOL APIENTRY GpiResetBoundaryData(HPS);
BOOL APIENTRY GpiSetPickAperturePosition(HPS,PPOINTL);
BOOL APIENTRY GpiSetPickApertureSize(HPS,LONG,PSIZEL);
BOOL APIENTRY GpiSetTag(HPS,LONG);
#endif
#ifdef INCL_GPISEGMENTS
#define DFORM_NOCONV 0L
#define DFORM_S370SHORT 1L
#define DFORM_PCSHORT 2L
#define DFORM_PCLONG 4L
#define ATTR_ERROR (-1L)
#define ATTR_DETECTABLE 1L
#define ATTR_VISIBLE 2L
#define ATTR_CHAINED 6L
#define ATTR_DYNAMIC 8L
#define ATTR_FASTCHAIN 9L
#define ATTR_PROP_DETECTABLE 10L
#define ATTR_PROP_VISIBLE 11L
#define ATTR_OFF 0L
#define ATTR_ON 1L
#define LOWER_PRI (-1L)
#define HIGHER_PRI 1L
BOOL APIENTRY GpiCloseSegment(HPS);
BOOL APIENTRY GpiDeleteSegment(HPS,LONG);
BOOL APIENTRY GpiDeleteSegments(HPS,LONG,LONG);
BOOL APIENTRY GpiDrawChain(HPS);
BOOL APIENTRY GpiDrawDynamics(HPS);
BOOL APIENTRY GpiDrawFrom(HPS,LONG,LONG);
BOOL APIENTRY GpiDrawSegment(HPS,LONG);
LONG APIENTRY GpiGetData(HPS,LONG,PLONG,LONG,LONG,PBYTE);
BOOL APIENTRY GpiOpenSegment(HPS,LONG);
LONG APIENTRY GpiPutData(HPS,LONG,PLONG,PBYTE);
LONG APIENTRY GpiQueryInitialSegmentAttrs(HPS,LONG);
LONG APIENTRY GpiQuerySegmentAttrs(HPS,LONG,LONG);
LONG APIENTRY GpiQuerySegmentNames(HPS,LONG,LONG,LONG,PLONG);
LONG APIENTRY GpiQuerySegmentPriority(HPS,LONG,LONG);
BOOL APIENTRY GpiRemoveDynamics(HPS,LONG,LONG);
BOOL APIENTRY GpiSetInitialSegmentAttrs(HPS,LONG,LONG);
BOOL APIENTRY GpiSetSegmentAttrs(HPS,LONG,LONG,LONG);
BOOL APIENTRY GpiSetSegmentPriority(HPS,LONG,LONG,LONG);
#endif
#ifdef INCL_GPISEGEDITING
#define SEGEM_ERROR 0L
#define SEGEM_INSERT 1L
#define SEGEM_REPLACE 2L
BOOL APIENTRY GpiBeginElement(HPS,LONG,PSZ);
BOOL APIENTRY GpiDeleteElement(HPS);
BOOL APIENTRY GpiDeleteElementRange(HPS,LONG,LONG);
BOOL APIENTRY GpiDeleteElementsBetweenLabels(HPS,LONG,LONG);
BOOL APIENTRY GpiEndElement(HPS);
LONG APIENTRY GpiElement(HPS,LONG,PSZ,LONG,PBYTE);
BOOL APIENTRY GpiLabel(HPS,LONG);
BOOL APIENTRY GpiOffsetElementPointer(HPS,LONG);
LONG APIENTRY GpiQueryEditMode(HPS);
LONG APIENTRY GpiQueryElement(HPS,LONG,LONG,PBYTE);
LONG APIENTRY GpiQueryElementPointer(HPS);
LONG APIENTRY GpiQueryElementType(HPS,PLONG,LONG,PSZ);
BOOL APIENTRY GpiSetEditMode(HPS,LONG);
BOOL APIENTRY GpiSetElementPointer(HPS,LONG);
BOOL APIENTRY GpiSetElementPointerAtLabel(HPS,LONG);
#endif
#ifdef INCL_GPITRANSFORMS
#define CVTC_WORLD 1L
#define CVTC_MODEL 2L
#define CVTC_DEFAULTPAGE 3L
#define CVTC_PAGE 4L
#define CVTC_DEVICE 5L
#define TRANSFORM_REPLACE 0L
#define TRANSFORM_ADD 1L
#define TRANSFORM_PREEMPT 2L
typedef struct _MATRIXLF {
FIXED fxM11;
FIXED fxM12;
LONG lM13;
FIXED fxM21;
FIXED fxM22;
LONG lM23;
LONG lM31;
LONG lM32;
LONG lM33;
} MATRIXLF, FAR *PMATRIXLF;
BOOL APIENTRY GpiConvert(HPS,LONG,LONG,LONG,PPOINTL);
LONG APIENTRY GpiCallSegmentMatrix(HPS,LONG,LONG,PMATRIXLF,LONG);
BOOL APIENTRY GpiQueryDefaultViewMatrix(HPS,LONG,PMATRIXLF);
BOOL APIENTRY GpiQueryGraphicsField(HPS,PRECTL);
BOOL APIENTRY GpiQueryModelTransformMatrix(HPS,LONG,PMATRIXLF);
BOOL APIENTRY GpiQueryPageViewport(HPS,PRECTL);
BOOL APIENTRY GpiQuerySegmentTransformMatrix(HPS,LONG,LONG,PMATRIXLF);
BOOL APIENTRY GpiQueryViewingTransformMatrix(HPS,LONG,PMATRIXLF);
BOOL APIENTRY GpiQueryViewingLimits(HPS,PRECTL);
BOOL APIENTRY GpiRotate(HPS,PMATRIXLF,LONG,FIXED,PPOINTL);
BOOL APIENTRY GpiScale(HPS,PMATRIXLF,LONG,PFIXED,PPOINTL);
BOOL APIENTRY GpiSetDefaultViewMatrix(HPS,LONG,PMATRIXLF,LONG);
BOOL APIENTRY GpiSetGraphicsField(HPS,PRECTL);
BOOL APIENTRY GpiSetModelTransformMatrix(HPS,LONG,PMATRIXLF,LONG);
BOOL APIENTRY GpiSetPageViewport(HPS,PRECTL);
BOOL APIENTRY GpiSetSegmentTransformMatrix(HPS,LONG,LONG,PMATRIXLF,LONG);
BOOL APIENTRY GpiSetViewingLimits(HPS,PRECTL);
BOOL APIENTRY GpiSetViewingTransformMatrix(HPS,LONG,PMATRIXLF,LONG);
BOOL APIENTRY GpiTranslate(HPS,PMATRIXLF,LONG,PPOINTL);
#endif
#ifdef INCL_GPIPATHS
#define FPATH_ALTERNATE 0L
#define FPATH_WINDING 2L
#define MPATH_STROKE 6L
#define SCP_ALTERNATE 0L
#define SCP_WINDING 2L
#define SCP_AND 4L
#define SCP_RESET 0L
BOOL APIENTRY GpiBeginPath(HPS,LONG);
BOOL APIENTRY GpiCloseFigure(HPS);
BOOL APIENTRY GpiEndPath(HPS);
LONG APIENTRY GpiFillPath(HPS,LONG,LONG);
BOOL APIENTRY GpiModifyPath(HPS,LONG,LONG);
LONG APIENTRY GpiOutlinePath(HPS,LONG,LONG);
BOOL APIENTRY GpiSetClipPath(HPS,LONG,LONG);
LONG APIENTRY GpiStrokePath(HPS,LONG,ULONG);
#endif
#ifdef INCL_GPILOGCOLORTABLE
#define LCOL_RESET 0x0001L
#define LCOL_REALIZABLE 0x0002L
#define LCOL_PURECOLOR 0x0004L
#define LCOLF_DEFAULT 0L
#define LCOLF_INDRGB 1L
#define LCOLF_CONSECRGB 2L
#define LCOLF_RGB 3L
#define LCOLOPT_REALIZED 1L
#define LCOLOPT_INDEX 2L
#define QLCT_ERROR (-1L)
#define QLCT_RGB (-2L)
#define QLCT_NOTLOADED (-1L)
#define QCD_LCT_FORMAT 0L
#define QCD_LCT_LOINDEX 1L
#define QCD_LCT_HIINDEX 2L
BOOL APIENTRY GpiCreateLogColorTable(HPS,ULONG,LONG,LONG,LONG,PLONG);
BOOL APIENTRY GpiQueryColorData(HPS,LONG,PLONG);
LONG APIENTRY GpiQueryColorIndex(HPS,ULONG,LONG);
LONG APIENTRY GpiQueryLogColorTable(HPS,ULONG,LONG,LONG,PLONG);
LONG APIENTRY GpiQueryNearestColor(HPS,ULONG,LONG);
LONG APIENTRY GpiQueryRealColors(HPS,ULONG,LONG,LONG,PLONG);
LONG APIENTRY GpiQueryRGBColor(HPS,ULONG,LONG);
BOOL APIENTRY GpiRealizeColorTable(HPS);
BOOL APIENTRY GpiUnrealizeColorTable(HPS);
#endif
#if defined(INCL_GPIPRIMITIVES) || !defined(INCL_NOCOMMON)
#define CLR_FALSE (-5L)
#define CLR_TRUE (-4L)
#define CLR_ERROR (-255L)
#define CLR_DEFAULT (-3L)
#define CLR_WHITE (-2L)
#define CLR_BLACK (-1L)
#define CLR_BACKGROUND 0L
#define CLR_BLUE 1L
#define CLR_RED 2L
#define CLR_PINK 3L
#define CLR_GREEN 4L
#define CLR_CYAN 5L
#define CLR_YELLOW 6L
#define CLR_NEUTRAL 7L
#define CLR_DARKGRAY 8L
#define CLR_DARKBLUE 9L
#define CLR_DARKRED 10L
#define CLR_DARKPINK 11L
#define CLR_DARKGREEN 12L
#define CLR_DARKCYAN 13L
#define CLR_BROWN 14L
#define CLR_PALEGRAY 15L
#define RGB_ERROR (-255L)
#define RGB_BLACK 0x00000000L
#define RGB_BLUE 0x000000FFL
#define RGB_GREEN 0x0000FF00L
#define RGB_CYAN 0x0000FFFFL
#define RGB_RED 0x00FF0000L
#define RGB_PINK 0x00FF00FFL
#define RGB_YELLOW 0x00FFFF00L
#define RGB_WHITE 0x00FFFFFFL
#define BA_NOBOUNDARY 0L
#define BA_BOUNDARY 1L
#define BA_ALTERNATE 0L
#define BA_WINDING 2L
#define DRO_FILL 1L
#define DRO_OUTLINE 2L
#define DRO_OUTLINEFILL 3L
#define PATSYM_ERROR (-1L)
#define PATSYM_DEFAULT 0L
#define PATSYM_DENSE1 1L
#define PATSYM_DENSE2 2L
#define PATSYM_DENSE3 3L
#define PATSYM_DENSE4 4L
#define PATSYM_DENSE5 5L
#define PATSYM_DENSE6 6L
#define PATSYM_DENSE7 7L
#define PATSYM_DENSE8 8L
#define PATSYM_VERT 9L
#define PATSYM_HORIZ 10L
#define PATSYM_DIAG1 11L
#define PATSYM_DIAG2 12L
#define PATSYM_DIAG3 13L
#define PATSYM_DIAG4 14L
#define PATSYM_NOSHADE 15L
#define PATSYM_SOLID 16L
#define PATSYM_HALFTONE 17L
#define PATSYM_BLANK 64L
#define LCID_ERROR (-1L)
#define LCID_DEFAULT 0L
BOOL APIENTRY GpiBeginArea(HPS,ULONG);
LONG APIENTRY GpiBox(HPS,LONG,PPOINTL,LONG,LONG);
LONG APIENTRY GpiCharString(HPS,LONG,PCH);
LONG APIENTRY GpiCharStringAt(HPS,PPOINTL,LONG,PCH);
LONG APIENTRY GpiEndArea(HPS);
LONG APIENTRY GpiLine(HPS,PPOINTL);
BOOL APIENTRY GpiMove(HPS,PPOINTL);
LONG APIENTRY GpiPolyLine(HPS,LONG,PPOINTL);
LONG APIENTRY GpiQueryColor(HPS);
LONG APIENTRY GpiQueryPattern(HPS);
BOOL APIENTRY GpiSetColor(HPS,LONG);
BOOL APIENTRY GpiSetPattern(HPS,LONG);
#endif
#ifdef INCL_GPIPRIMITIVES
#define AM_ERROR (-1L)
#define AM_PRESERVE 0L
#define AM_NOPRESERVE 1L
#define FM_ERROR (-1L)
#define FM_DEFAULT 0L
#define FM_OR 1L
#define FM_OVERPAINT 2L
#define FM_XOR 4L
#define FM_LEAVEALONE 5L
#define FM_AND 6L
#define FM_SUBTRACT 7L
#define FM_MASKSRCNOT 8L
#define FM_ZERO 9L
#define FM_NOTMERGESRC 10L
#define FM_NOTXORSRC 11L
#define FM_INVERT 12L
#define FM_MERGESRCNOT 13L
#define FM_NOTCOPYSRC 14L
#define FM_MERGENOTSRC 15L
#define FM_NOTMASKSRC 16L
#define FM_ONE 17L
#define BM_ERROR (-1L)
#define BM_DEFAULT 0L
#define BM_OR 1L
#define BM_OVERPAINT 2L
#define BM_XOR 4L
#define BM_LEAVEALONE 5L
#define LINETYPE_ERROR (-1L)
#define LINETYPE_DEFAULT 0L
#define LINETYPE_DOT 1L
#define LINETYPE_SHORTDASH 2L
#define LINETYPE_DASHDOT 3L
#define LINETYPE_DOUBLEDOT 4L
#define LINETYPE_LONGDASH 5L
#define LINETYPE_DASHDOUBLEDOT 6L
#define LINETYPE_SOLID 7L
#define LINETYPE_INVISIBLE 8L
#define LINETYPE_ALTERNATE 9L
#define LINEWIDTH_ERROR (-1L)
#define LINEWIDTH_DEFAULT 0L
#define LINEWIDTH_NORMAL 0x00010000L
#define LINEWIDTHGEOM_ERROR (-1L)
#define LINEEND_ERROR (-1L)
#define LINEEND_DEFAULT 0L
#define LINEEND_FLAT 1L
#define LINEEND_SQUARE 2L
#define LINEEND_ROUND 3L
#define LINEJOIN_ERROR (-1L)
#define LINEJOIN_DEFAULT 0L
#define LINEJOIN_BEVEL 1L
#define LINEJOIN_ROUND 2L
#define LINEJOIN_MITRE 3L
#define CHDIRN_ERROR (-1L)
#define CHDIRN_DEFAULT 0L
#define CHDIRN_LEFTRIGHT 1L
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -