Annotation of pmsdk/include/os2def.h, revision 1.1.1.1

1.1       root        1: /***************************************************************************\
                      2: *
                      3: * Module Name: OS2DEF.H
                      4: *
                      5: * OS/2 Common Definitions file
                      6: *
                      7: * Copyright (c) 1987  IBM Corporation
                      8: * Copyright (c) 1987  Microsoft Corporation
                      9: *
                     10: \***************************************************************************/
                     11: 
                     12: #define PASCAL  pascal
                     13: #define FAR     far
                     14: #define NEAR    near
                     15: #define VOID    void
                     16: 
                     17: typedef unsigned short SHANDLE;
                     18: typedef void far      *LHANDLE;
                     19: 
                     20: #define EXPENTRY pascal far
                     21: #define APIENTRY pascal far
                     22: 
                     23: #define CHAR    char            /* ch  */
                     24: #define SHORT   short           /* s   */
                     25: #define LONG    long            /* l   */
                     26: #define INT     int             /* i   */
                     27: 
                     28: #ifndef NULL
                     29: #ifdef M_I86L
                     30: #define NULL    0L
                     31: #else
                     32: #define NULL    0
                     33: #endif
                     34: #endif
                     35: 
                     36: typedef unsigned char UCHAR;    /* uch */
                     37: typedef unsigned short USHORT;  /* us  */
                     38: typedef unsigned long ULONG;    /* ul  */
                     39: typedef unsigned int  UINT;     /* ui  */
                     40: 
                     41: typedef unsigned char BYTE;     /* b   */
                     42: 
                     43: typedef char far  *PSZ;
                     44: typedef char near *NPSZ;
                     45: 
                     46: typedef char far  *PCH;
                     47: typedef char near *NPCH;
                     48: 
                     49: typedef int   (pascal far  *PFN)();
                     50: typedef int   (pascal near *NPFN)();
                     51: typedef PFN far *PPFN;
                     52: 
                     53: typedef BYTE   FAR  *PBYTE;
                     54: typedef BYTE   near *NPBYTE;
                     55: 
                     56: typedef CHAR   FAR *PCHAR;
                     57: typedef SHORT  FAR *PSHORT;
                     58: typedef LONG   FAR *PLONG;
                     59: typedef INT    FAR *PINT;
                     60: 
                     61: typedef UCHAR  FAR *PUCHAR;
                     62: typedef USHORT FAR *PUSHORT;
                     63: typedef ULONG  FAR *PULONG;
                     64: typedef UINT   FAR *PUINT;
                     65: 
                     66: typedef VOID   FAR *PVOID;
                     67: 
                     68: typedef unsigned short BOOL;    /* f   */
                     69: typedef BOOL FAR *PBOOL;
                     70: 
                     71: #define FALSE   0
                     72: #define TRUE    1
                     73: 
                     74: #ifndef INCL_SAADEFS
                     75: typedef unsigned short SEL;     /* sel */
                     76: typedef SEL FAR *PSEL;
                     77: 
                     78: /*** Useful Helper Macros */
                     79: 
                     80: /* Create untyped far pointer from selector and offset */
                     81: #define MAKEP(sel, off)     ((PVOID)MAKEULONG(off, sel))
                     82: 
                     83: /* Extract selector or offset from far pointer */
                     84: #define SELECTOROF(p)       (((PUSHORT)&(p))[1])
                     85: #define OFFSETOF(p)         (((PUSHORT)&(p))[0])
                     86: #endif  /* !INCL_SAADEFS */
                     87:  
                     88: /* Cast any variable to an instance of the specified type. */
                     89: #define MAKETYPE(v, type)   (*((type far *)&v))
                     90: 
                     91: /* Calculate the byte offset of a field in a structure of type type. */
                     92: #define FIELDOFFSET(type, field)    ((SHORT)&(((type *)0)->field))
                     93: 
                     94: /* Combine l & h to form a 32 bit quantity. */
                     95: #define MAKEULONG(l, h)  ((ULONG)(((USHORT)(l)) | ((ULONG)((USHORT)(h))) << 16))
                     96: #define MAKELONG(l, h)   ((LONG)MAKEULONG(l, h))
                     97: 
                     98: /* Combine l & h to form a 16 bit quantity. */
                     99: #define MAKEUSHORT(l, h) (((USHORT)(l)) | ((USHORT)(h)) << 8)
                    100: #define MAKESHORT(l, h)  ((SHORT)MAKEUSHORT(l, h))
                    101: 
                    102: /* Extract high and low order parts of 16 and 32 bit quantity */
                    103: #define LOBYTE(w)       LOUCHAR(w)
                    104: #define HIBYTE(w)       HIUCHAR(w)
                    105: #define LOUCHAR(w)      ((UCHAR)(w))
                    106: #define HIUCHAR(w)      ((UCHAR)(((USHORT)(w) >> 8) & 0xff))
                    107: #define LOUSHORT(l)     ((USHORT)(l))
                    108: #define HIUSHORT(l)     ((USHORT)(((ULONG)(l) >> 16) & 0xffff))
                    109: 
                    110: /*** Common Error definitions ****/
                    111: 
                    112: typedef ULONG ERRORID;  /* errid */
                    113: typedef ERRORID FAR *PERRORID;
                    114: 
                    115: /* Combine severity and error code to produce ERRORID */
                    116: #define MAKEERRORID(sev, error) (ERRORID)(MAKEULONG((error), (sev)))
                    117: 
                    118: /* Severity codes */
                    119: #define SEVERITY_NOERROR                    0x0000
                    120: #define SEVERITY_WARNING                    0x0004
                    121: #define SEVERITY_ERROR                      0x0008
                    122: #define SEVERITY_SEVERE                     0x000C
                    123: #define SEVERITY_UNRECOVERABLE              0x0010
                    124: 
                    125: /* Base component error values */
                    126: 
                    127: #define WINERR_BASE     0x1000  /* Window Manager                  */
                    128: #define GPIERR_BASE     0x2000  /* Graphics Presentation Interface */
                    129: #define DEVERR_BASE     0x3000  /* Device Manager                  */
                    130: #define SPLERR_BASE     0x4000  /* Spooler                         */
                    131: 
                    132: /*** Common types used across components */
                    133: 
                    134: /*** Common DOS types */
                    135: 
                    136: typedef USHORT    HMODULE;  /* hmod */
                    137: typedef HMODULE FAR *PHMODULE;
                    138: 
                    139: #ifndef INCL_SAADEFS
                    140: typedef USHORT    PID;      /* pid  */
                    141: typedef PID FAR *PPID;
                    142: 
                    143: typedef USHORT    TID;      /* tid  */
                    144: typedef TID FAR *PTID;
                    145: 
                    146: typedef VOID FAR *HSEM;     /* hsem */
                    147: typedef HSEM FAR *PHSEM;
                    148: #endif  /* !INCL_SAADEFS */
                    149: 
                    150: /*** Common SUP types */
                    151: 
                    152: typedef LHANDLE   HAB;      /* hab  */
                    153: typedef HAB FAR *PHAB;
                    154: 
                    155: /*** Common GPI/DEV types */
                    156: 
                    157: typedef LHANDLE   HPS;      /* hps  */
                    158: typedef HPS FAR *PHPS;
                    159: 
                    160: typedef LHANDLE   HDC;      /* hdc  */
                    161: typedef HDC FAR *PHDC;
                    162: 
                    163: typedef LHANDLE   HRGN;     /* hrgn */
                    164: typedef HRGN FAR *PHRGN;
                    165: 
                    166: #ifndef INCL_SAADEFS
                    167: typedef LHANDLE   HBITMAP;  /* hbm  */
                    168: typedef HBITMAP FAR *PHBITMAP;
                    169: #endif  /* !INCL_SAADEFS */
                    170: 
                    171: typedef LHANDLE   HMF;      /* hmf  */
                    172: typedef HMF FAR *PHMF;
                    173: 
                    174: typedef LONG     COLOR;    /* clr  */
                    175: typedef COLOR FAR *PCOLOR;
                    176: 
                    177: typedef struct _POINTL  {    /* ptl  */
                    178:     LONG  x;
                    179:     LONG  y;
                    180: } POINTL;
                    181: typedef POINTL  FAR  *PPOINTL;
                    182: typedef POINTL  near *NPPOINTL;
                    183:  
                    184: typedef struct _RECTL {      /* rcl */
                    185:     LONG  xLeft;
                    186:     LONG  yBottom;
                    187:     LONG  xRight;
                    188:     LONG  yTop;
                    189: } RECTL;
                    190: typedef RECTL FAR  *PRECTL;
                    191: typedef RECTL near *NPRECTL;
                    192: 
                    193: typedef CHAR STR8[8];      /* str8 */
                    194: typedef STR8 FAR *PSTR8;
                    195: 
                    196: #ifndef INCL_SAADEFS
                    197: /* common DOS/SHL types */
                    198: 
                    199: /* File time and date types */
                    200: 
                    201: typedef struct _FTIME {         /* ftime */
                    202:     unsigned twosecs : 5;
                    203:     unsigned minutes : 6;
                    204:     unsigned hours   : 5;
                    205: } FTIME;
                    206: typedef FTIME FAR *PFTIME;
                    207: 
                    208: typedef struct _FDATE {         /* fdate */
                    209:     unsigned day     : 5;
                    210:     unsigned month   : 4;
                    211:     unsigned year    : 7;
                    212: } FDATE;
                    213: typedef FDATE FAR *PFDATE;
                    214: 
                    215: typedef struct _FILEFINDBUF {   /* findbuf */
                    216:     FDATE  fdateCreation;
                    217:     FTIME  ftimeCreation;
                    218:     FDATE  fdateLastAccess;
                    219:     FTIME  ftimeLastAccess;
                    220:     FDATE  fdateLastWrite;
                    221:     FTIME  ftimeLastWrite;
                    222:     ULONG  cbFile;
                    223:     ULONG  cbFileAlloc;
                    224:     USHORT attrFile;
                    225:     UCHAR  cchName;
                    226:     CHAR   achName[13];
                    227: } FILEFINDBUF;
                    228: typedef FILEFINDBUF FAR *PFILEFINDBUF;
                    229: #endif  /* !INCL_SAADEFS */
                    230: 
                    231: /*** common DEV/SPL types */
                    232: 
                    233: /* structure for Device Driver data */
                    234: 
                    235: typedef struct _DRIVDATA {      /* driv */
                    236:     LONG    cb;
                    237:     LONG    lVersion;
                    238:     CHAR    szDeviceName[32];
                    239:     CHAR    abGeneralData[1];
                    240: } DRIVDATA;
                    241: typedef DRIVDATA far *PDRIVDATA;
                    242: 
                    243: /* array indices for array parameter for DevOpenDC, SplQmOpen or SplQpOpen */
                    244: 
                    245: #define ADDRESS          0
                    246: #ifndef INCL_SAADEFS
                    247: #define DRIVER_NAME      1
                    248: #define DRIVER_DATA      2
                    249: #define DATA_TYPE        3
                    250: #define COMMENT          4
                    251: #define PROC_NAME        5
                    252: #define PROC_PARAMS      6
                    253: #define SPL_PARAMS       7
                    254: #define NETWORK_PARAMS   8
                    255: 
                    256: /* structure definition as an alternative of the array parameter */
                    257: 
                    258: typedef struct _DEVOPENSTRUC {    /* dop */
                    259:     PSZ        pszLogAddress;
                    260:     PSZ        pszDriverName;
                    261:     PDRIVDATA  pdriv;
                    262:     PSZ        pszDataType;
                    263:     PSZ        pszComment;
                    264:     PSZ        pszQueueProcName;
                    265:     PSZ        pszQueueProcParams;
                    266:     PSZ        pszSpoolerParams;
                    267:     PSZ        pszNetworkParams;
                    268: } DEVOPENSTRUC;
                    269: typedef DEVOPENSTRUC FAR *PDEVOPENSTRUC;
                    270: #endif  /* !INCL_SAADEFS */
                    271: 
                    272: /*** common AVIO/GPI types */
                    273: 
                    274: /* values of fsSelection field of FATTRS structure */
                    275: #define FATTR_SEL_ITALIC        0x0001
                    276: #define FATTR_SEL_UNDERSCORE    0x0002
                    277: #define FATTR_SEL_STRIKEOUT     0x0010
                    278: #define FATTR_SEL_BOLD          0x0020
                    279:  
                    280: /* values of fsType field of FATTRS structure */
                    281: #define FATTR_TYPE_FIXED        0x0002
                    282: #define FATTR_TYPE_KERNING      0x0004
                    283:  
                    284: /* values of sQuality field of FATTRS structure */
                    285: #define FATTR_QUALITY_DEFAULT   0
                    286: #define FATTR_QUALITY_DRAFT     1
                    287: #define FATTR_QUALITY_PROOF     2
                    288:  
                    289: /* values of fsFontUse field of FATTRS structure */
                    290: #define FATTR_FONTUSE_NOMIX         0x0002
                    291: #define FATTR_FONTUSE_OUTLINE       0x0004
                    292: #define FATTR_FONTUSE_TRANSFORMABLE 0x0008
                    293: /* size for fields in the font structures */
                    294: 
                    295: #define FACESIZE 32
                    296: 
                    297: /* font struct for Vio/GpiCreateLogFont */
                    298: 
                    299: typedef struct _FATTRS {          /* fat */
                    300:     USHORT  usRecordLength;
                    301:     USHORT  fsSelection;
                    302:     LONG    lMatch;
                    303:     CHAR    szFaceName[FACESIZE];
                    304:     USHORT  idRegistry;
                    305:     USHORT  usCodePage;
                    306:     LONG    lMaxBaselineExt;
                    307:     LONG    lAveCharWidth;
                    308:     USHORT  fsType;
                    309:     SHORT   sQuality;
                    310:     USHORT  fsFontUse;
                    311: } FATTRS;
                    312: typedef FATTRS far *PFATTRS;
                    313: 
                    314: /* font metrics returned by GpiQueryFonts and others */
                    315: 
                    316: typedef struct _FONTMETRICS {   /* fm */
                    317:     CHAR    szFamilyname[FACESIZE];
                    318:     CHAR    szFacename[FACESIZE];
                    319:     SHORT   idRegistry;
                    320:     SHORT   usCodePage;
                    321:     LONG    lEmHeight;
                    322:     LONG    lXHeight;
                    323:     LONG    lMaxAscender;
                    324:     LONG    lMaxDescender;
                    325:     LONG    lLowerCaseAscent;
                    326:     LONG    lLowerCaseDescent;
                    327:     LONG    lInternalLeading;
                    328:     LONG    lExternalLeading;
                    329:     LONG    lAveCharWidth;
                    330:     LONG    lMaxCharInc;
                    331:     LONG    lEmInc;
                    332:     LONG    lMaxBaselineExt;
                    333:     SHORT   sCharSlope;
                    334:     SHORT   sInlineDir;
                    335:     SHORT   sCharRot;
                    336:     USHORT  usWeightClass;
                    337:     USHORT  usWidthClass;
                    338:     SHORT   sXDeviceRes;
                    339:     SHORT   sYDeviceRes;
                    340:     SHORT   sFirstChar;
                    341:     SHORT   sLastChar;
                    342:     SHORT   sDefaultChar;
                    343:     SHORT   sBreakChar;
                    344:     SHORT   sNominalPointSize;
                    345:     SHORT   sMinimumPointSize;
                    346:     SHORT   sMaximumPointSize;
                    347:     USHORT  fsType;
                    348:     USHORT  fsDefn;
                    349:     USHORT  fsSelection;
                    350:     USHORT  fsCapabilities;
                    351:     LONG    lSubscriptXSize;
                    352:     LONG    lSubscriptYSize;
                    353:     LONG    lSubscriptXOffset;
                    354:     LONG    lSubscriptYOffset;
                    355:     LONG    lSuperscriptXSize;
                    356:     LONG    lSuperscriptYSize;
                    357:     LONG    lSuperscriptXOffset;
                    358:     LONG    lSuperscriptYOffset;
                    359:     LONG    lUnderscoreSize;
                    360:     LONG    lUnderscorePosition;
                    361:     LONG    lStrikeoutSize;
                    362:     LONG    lStrikeoutPosition;
                    363:     SHORT   sKerningPairs;
                    364:     SHORT   sReserved;
                    365:     LONG    lMatch;
                    366: } FONTMETRICS;
                    367: typedef FONTMETRICS far *PFONTMETRICS;
                    368: 
                    369: /*** Common WIN types */
                    370: 
                    371: typedef LHANDLE HWND;      /* hwnd */
                    372: typedef HWND FAR *PHWND;
                    373: 
                    374: typedef struct _WRECT {    /* wrc */
                    375:     SHORT xLeft;
                    376:     SHORT dummy1;
                    377:     SHORT yBottom;
                    378:     SHORT dummy2;
                    379:     SHORT xRight;
                    380:     SHORT dummy3;
                    381:     SHORT yTop;
                    382:     SHORT dummy4;
                    383: } WRECT;
                    384: typedef WRECT FAR *PWRECT;
                    385: typedef WRECT near *NPWRECT;
                    386: 
                    387: typedef struct _WPOINT {   /* wpt */
                    388:     SHORT x;
                    389:     SHORT dummy1;
                    390:     SHORT y;
                    391:     SHORT dummy2;
                    392: } WPOINT;
                    393: typedef WPOINT FAR *PWPOINT;
                    394: typedef WPOINT near *NPWPOINT;

unix.superglobalmegacorp.com

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