home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warphead.zip / H / OS2DEF.H < prev    next >
C/C++ Source or Header  |  1997-09-17  |  17KB  |  632 lines

  1. /****************************** Module Header ******************************\
  2. *
  3. * Module Name: OS2DEF.H
  4. *
  5. * OS/2 Common Definitions file
  6. *
  7. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  8. *
  9. * ===========================================================================
  10. *
  11. * Comments at the end of each typedef line give the name tags used in
  12. * the assembler include version of this file.
  13. *
  14. * The assembler include version of this file excludes lines between NOINC
  15. * and INC comments.
  16. *
  17. \***************************************************************************/
  18.  
  19. #if __IBMC__ || __IBMCPP__
  20. #pragma info( none )
  21. #ifndef __CHKHDR__
  22.    #pragma info( none )
  23. #endif
  24. #pragma info( restore )
  25. #endif
  26. #ifdef __cplusplus
  27.       extern "C" {
  28. #endif
  29.  
  30. #ifndef __OS2DEF__
  31. /* NOINC */
  32. #define __OS2DEF__
  33. /* INC */
  34.  
  35. #define OS2DEF_INCLUDED
  36.  
  37.  
  38.  
  39. /* NOINC */
  40. #define FAR         /* this will be deleted shortly */
  41. #define NEAR        /* this will be deleted shortly */
  42.  
  43. #define APIENTRY    _System
  44. #define EXPENTRY    _System
  45.  
  46. #define APIENTRY16  _Far16 _Pascal
  47. #define PASCAL16    _Far16 _Pascal
  48. #define CDECL16     _Far16 _Cdecl
  49.  
  50. #define VOID        void
  51. /* INC */
  52.  
  53. typedef unsigned long  APIRET;
  54. typedef unsigned short APIRET16;
  55. typedef unsigned long  APIRET32;
  56.  
  57. #ifndef FALSE
  58.    #define FALSE   0
  59. #endif
  60.  
  61. #ifndef TRUE
  62.    #define TRUE    1
  63. #endif
  64.  
  65. #ifndef NULL
  66.    #ifdef __cplusplus
  67.       #define NULL 0
  68.    #else
  69.      #define NULL ((void *)0)
  70.    #endif
  71. #endif
  72.  
  73. typedef unsigned short   SHANDLE;
  74. typedef unsigned long    LHANDLE;
  75.  
  76. #define NULLHANDLE    ( (LHANDLE) 0)
  77. #define NULLSHANDLE   ( (SHANDLE) 0)
  78.  
  79. /* NOINC */
  80. #define CHAR    char            /* ch  */
  81. #define SHORT   short           /* s   */
  82. #define LONG    long            /* l   */
  83.  
  84. #ifndef INCL_SAADEFS
  85.    #define INT  int             /* i   */
  86. #endif /* !INCL_SAADEFS */
  87. /* INC */
  88.  
  89. typedef unsigned char  UCHAR;   /* uch */
  90. typedef unsigned short USHORT;  /* us  */
  91. typedef unsigned long  ULONG;   /* ul  */
  92.  
  93. #ifndef INCL_SAADEFS
  94.    typedef unsigned int UINT;   /* ui  */
  95. #endif /* !INCL_SAADEFS */
  96.  
  97. typedef UCHAR     * _Seg16 PUCHAR16;
  98. typedef CHAR      * _Seg16 PCHAR16;
  99.  
  100. typedef char BYTE;     /* b   */
  101.  
  102. typedef char *PSZ;
  103. typedef char *NPSZ;
  104.  
  105. typedef char *PCH;
  106. typedef char *NPCH;
  107. typedef const char *PCSZ;
  108.  
  109. typedef int ( APIENTRY _PFN)  ();
  110. typedef _PFN    *PFN;
  111. typedef int ( APIENTRY _NPFN)  ();
  112. typedef _NPFN   *NPFN;
  113.  
  114.  
  115. typedef BYTE *PBYTE;
  116. typedef BYTE *NPBYTE;
  117.  
  118. typedef CHAR *PCHAR;
  119. typedef SHORT *PSHORT;
  120. typedef LONG *PLONG;
  121.  
  122. #ifndef INCL_SAADEFS
  123.    typedef INT *PINT;
  124. #endif /* !INCL_SAADEFS */
  125.  
  126. typedef UCHAR *PUCHAR;
  127. typedef USHORT *PUSHORT;
  128. typedef ULONG *PULONG;
  129.  
  130. #ifndef INCL_SAADEFS
  131.    typedef UINT *PUINT;
  132. #endif /* !INCL_SAADEFS */
  133.  
  134. typedef VOID   *PVOID;
  135. typedef PVOID  *PPVOID;
  136. typedef VOID   * _Seg16  PVOID16;
  137.  
  138. typedef unsigned long BOOL;     /* f   */
  139. typedef BOOL *PBOOL;
  140.  
  141. typedef unsigned short  BOOL16;
  142. typedef BOOL16     * _Seg16 PBOOL16;
  143.  
  144. /* NOINC */
  145. #define BOOL32    BOOL
  146. #define PBOOL32   PBOOL
  147. /* INC */
  148.  
  149. /* Quad-word */
  150. /* NOINC */
  151. typedef struct _QWORD          /* qword */
  152. {
  153.    ULONG   ulLo;
  154.    ULONG   ulHi;
  155. } QWORD;
  156. typedef QWORD *PQWORD;
  157. /* INC */
  158.  
  159. #ifndef INCL_SAADEFS
  160.    typedef unsigned short SEL;     /* sel */
  161.    typedef SEL *PSEL;
  162.  
  163.    /*** Useful Helper Macros */
  164.  
  165.    /* Create untyped far pointer from selector and offset */
  166.    #define MAKEP( sel,off ) (( void * )( void * _Seg16 )( (sel) << 16 | (off) ))
  167.    #define MAKE16P( sel,off ) (( void * _Seg16 )( (sel) << 16 | (off) ))
  168.  
  169.    /* Extract selector or offset from far pointer */
  170.    /* Warning:the selectorof macro should not be used*/
  171.    /* for 32 bit objects                             */
  172.    #define SELECTOROF(ptr)     ((((ULONG)(ptr))>>13)|7)
  173.    #define OFFSETOF(p)         (((PUSHORT)&(p))[0])
  174. #endif  /* !INCL_SAADEFS */
  175.  
  176. /* Cast any variable to an instance of the specified type. */
  177. #define MAKETYPE(v, type)   (*((type *)&v))
  178.  
  179. /* Calculate the byte offset of a field in a structure of type type. */
  180. #define FIELDOFFSET(type, field)    ((SHORT)&(((type *)0)->field))
  181.  
  182. /* Combine l & h to form a 32 bit quantity. */
  183. #define MAKEULONG(l, h)  ((ULONG)(((USHORT)(l)) | ((ULONG)((USHORT)(h))) << 16))
  184. #define MAKELONG(l, h)   ((LONG)MAKEULONG(l, h))
  185.  
  186. /* Combine l & h to form a 16 bit quantity. */
  187. #define MAKEUSHORT(l, h) (((USHORT)(l)) | ((USHORT)(h)) << 8)
  188. #define MAKESHORT(l, h)  ((SHORT)MAKEUSHORT(l, h))
  189.  
  190. /* Extract high and low order parts of 16 and 32 bit quantity */
  191. #define LOBYTE(w)       LOUCHAR(w)
  192. #define HIBYTE(w)       HIUCHAR(w)
  193. #define LOUCHAR(w)      ((UCHAR)(w))
  194. #define HIUCHAR(w)      ((UCHAR)(((USHORT)(w) >> 8) & 0xff))
  195. #define LOUSHORT(l)     ((USHORT)((ULONG)l))
  196. #define HIUSHORT(l)     ((USHORT)(((ULONG)(l) >> 16) & 0xffff))
  197.  
  198. /*** Common Error definitions ****/
  199.  
  200. typedef ULONG ERRORID;  /* errid */
  201. typedef ERRORID *PERRORID;
  202.  
  203. /* Combine severity and error code to produce ERRORID */
  204. #define MAKEERRORID(sev, error) (ERRORID)(MAKEULONG((error), (sev)))
  205.  
  206. /* Extract error number from an errorid */
  207. #define ERRORIDERROR(errid)            (LOUSHORT(errid))
  208.  
  209. /* Extract severity from an errorid */
  210. #define ERRORIDSEV(errid)              (HIUSHORT(errid))
  211.  
  212. /* Severity codes */
  213. #define SEVERITY_NOERROR                    0x0000
  214. #define SEVERITY_WARNING                    0x0004
  215. #define SEVERITY_ERROR                      0x0008
  216. #define SEVERITY_SEVERE                     0x000C
  217. #define SEVERITY_UNRECOVERABLE              0x0010
  218.  
  219. /* Base component error values */
  220.  
  221. #define WINERR_BASE     0x1000  /* Window Manager                  */
  222. #define GPIERR_BASE     0x2000  /* Graphics Presentation Interface */
  223. #define DEVERR_BASE     0x3000  /* Device Manager                  */
  224. #define SPLERR_BASE     0x4000  /* Spooler                         */
  225.  
  226. /*** Common types used across components */
  227.  
  228. /*** Common DOS types */
  229.  
  230. typedef LHANDLE HMODULE;        /* hmod */
  231. typedef LHANDLE PID;            /* pid  */
  232. typedef LHANDLE TID;            /* tid  */
  233. typedef LHANDLE HFILE;          /* hf   */
  234. typedef HFILE   *PHFILE;
  235.  
  236. #ifndef INCL_SAADEFS
  237.    typedef USHORT  SGID;        /* sgid */
  238. #endif  /* !INCL_SAADEFS */
  239.  
  240. typedef HMODULE *PHMODULE;
  241. typedef PID *PPID;
  242. typedef TID *PTID;
  243.  
  244. #ifndef INCL_SAADEFS
  245.    #ifndef __HSEM__
  246. /* NOINC */
  247.        #define __HSEM__
  248. /* INC */
  249.        typedef VOID *HSEM;      /* hsem */
  250.        typedef HSEM *PHSEM;
  251.    #endif
  252. #endif  /* !INCL_SAADEFS */
  253.  
  254. /*** Common SUP types */
  255.  
  256. typedef LHANDLE   HAB;         /* hab  */
  257. typedef HAB *PHAB;
  258.  
  259. /*** Common GPI/DEV types */
  260.  
  261. typedef LHANDLE   HPS;         /* hps  */
  262. typedef HPS *PHPS;
  263.  
  264. typedef LHANDLE   HDC;         /* hdc  */
  265. typedef HDC *PHDC;
  266.  
  267. typedef LHANDLE   HRGN;        /* hrgn */
  268. typedef HRGN *PHRGN;
  269.  
  270. typedef LHANDLE   HBITMAP;     /* hbm  */
  271. typedef HBITMAP *PHBITMAP;
  272.  
  273. typedef LHANDLE   HMF;         /* hmf  */
  274. typedef HMF *PHMF;
  275.  
  276. typedef LHANDLE   HPAL;        /* hpal */
  277. typedef HPAL *PHPAL;
  278.  
  279. typedef LONG     COLOR;        /* clr  */
  280. typedef COLOR *PCOLOR;
  281.  
  282. typedef struct _POINTL         /* ptl  */
  283. {
  284.    LONG  x;
  285.    LONG  y;
  286. } POINTL;
  287. typedef POINTL *PPOINTL;
  288. typedef POINTL *NPPOINTL;
  289.  
  290. typedef struct _POINTS         /* pts */
  291. {
  292.    SHORT x;
  293.    SHORT y;
  294. } POINTS;
  295. typedef POINTS *PPOINTS;
  296.  
  297. typedef struct _RECTL          /* rcl */
  298. {
  299.    LONG  xLeft;
  300.    LONG  yBottom;
  301.    LONG  xRight;
  302.    LONG  yTop;
  303. } RECTL;
  304. typedef RECTL *PRECTL;
  305. typedef RECTL *NPRECTL;
  306.  
  307. /* fixed point number - implicit binary point between 2 and 3 hex digits */
  308. typedef  LONG FIXED;     /* fx */
  309. typedef  FIXED *PFIXED;
  310.  
  311. typedef struct _MATRIXLF       /* matlf */
  312. {
  313.    FIXED fxM11;
  314.    FIXED fxM12;
  315.    LONG  lM13;
  316.    FIXED fxM21;
  317.    FIXED fxM22;
  318.    LONG  lM23;
  319.    LONG  lM31;
  320.    LONG  lM32;
  321.    LONG  lM33;
  322. } MATRIXLF;
  323. typedef MATRIXLF *PMATRIXLF;
  324.  
  325. typedef CHAR STR8[8];          /* str8 */
  326. typedef STR8 *PSTR8;
  327.  
  328. /*** common DEV/SPL types */
  329.  
  330. /* structure for Device Driver data */
  331.  
  332. typedef struct _DRIVDATA       /* driv */
  333. {
  334.    LONG    cb;
  335.    LONG    lVersion;
  336.    CHAR    szDeviceName[32];
  337.    CHAR    abGeneralData[1];
  338. } DRIVDATA;
  339. typedef DRIVDATA *PDRIVDATA;
  340.  
  341. /* pointer data for DevOpenDC */
  342.  
  343. typedef PSZ *PDEVOPENDATA;
  344.  
  345. /* array indices for array parameter for DevOpenDC, SplQmOpen or SplQpOpen */
  346.  
  347. #define ADDRESS          0
  348. #ifndef INCL_SAADEFS
  349.    #define DRIVER_NAME      1
  350.    #define DRIVER_DATA      2
  351.    #define DATA_TYPE        3
  352.    #define COMMENT          4
  353.    #define PROC_NAME        5
  354.    #define PROC_PARAMS      6
  355.    #define SPL_PARAMS       7
  356.    #define NETWORK_PARAMS   8
  357.  
  358.    /* structure definition as an alternative of the array parameter */
  359.  
  360.    typedef struct _DEVOPENSTRUC      /* dop */
  361.    {
  362.       PSZ        pszLogAddress;
  363.       PSZ        pszDriverName;
  364.       PDRIVDATA  pdriv;
  365.       PSZ        pszDataType;
  366.       PSZ        pszComment;
  367.       PSZ        pszQueueProcName;
  368.       PSZ        pszQueueProcParams;
  369.       PSZ        pszSpoolerParams;
  370.       PSZ        pszNetworkParams;
  371.    } DEVOPENSTRUC;
  372.    typedef DEVOPENSTRUC *PDEVOPENSTRUC;
  373. #endif  /* !INCL_SAADEFS */
  374.  
  375. /* common PMWP object and PMSTDDLG drag data */
  376.  
  377. typedef struct _PRINTDEST     /* prntdst */
  378. {
  379.    ULONG        cb;
  380.    LONG         lType;
  381.    PSZ          pszToken;
  382.    LONG         lCount;
  383.    PDEVOPENDATA pdopData;
  384.    ULONG        fl;
  385.    PSZ          pszPrinter;
  386. } PRINTDEST;
  387. typedef PRINTDEST *PPRINTDEST;
  388.  
  389. #define PD_JOB_PROPERTY   0x0001      /* Flags for .fl field           */
  390.  
  391. /*** common AVIO/GPI types */
  392.  
  393. /* values of fsSelection field of FATTRS structure */
  394. #define FATTR_SEL_ITALIC               0x0001
  395. #define FATTR_SEL_UNDERSCORE           0x0002
  396. #define FATTR_SEL_OUTLINE              0x0008
  397. #define FATTR_SEL_STRIKEOUT            0x0010
  398. #define FATTR_SEL_BOLD                 0x0020
  399. #define FATTR_SEL_MUST_COLOR           0x0100 /* fail if cant use color */
  400. #define FATTR_SEL_MUST_MIXEDMODES      0x0200 /* fail if cant use mixed modes */
  401. #define FATTR_SEL_MUST_HOLLOW          0x0400 /* fail if cant do outline */
  402.  
  403.  
  404. /* values of fsType field of FATTRS structure */
  405. #define FATTR_TYPE_KERNING      0x0004
  406. #define FATTR_TYPE_MBCS         0x0008
  407. #define FATTR_TYPE_DBCS         0x0010
  408. #define FATTR_TYPE_ANTIALIASED  0x0020
  409.  
  410. /* values of fsFontUse field of FATTRS structure */
  411. #define FATTR_FONTUSE_NOMIX         0x0002
  412. #define FATTR_FONTUSE_OUTLINE       0x0004
  413. #define FATTR_FONTUSE_TRANSFORMABLE 0x0008
  414. /* size for fields in the font structures */
  415.  
  416. #define FACESIZE 32
  417.  
  418. /* font struct for Vio/GpiCreateLogFont */
  419.  
  420. typedef struct _FATTRS            /* fat */
  421. {
  422.    USHORT  usRecordLength;
  423.    USHORT  fsSelection;
  424.    LONG    lMatch;
  425.    CHAR    szFacename[FACESIZE];
  426.    USHORT  idRegistry;
  427.    USHORT  usCodePage;
  428.    LONG    lMaxBaselineExt;
  429.    LONG    lAveCharWidth;
  430.    USHORT  fsType;
  431.    USHORT  fsFontUse;
  432. } FATTRS;
  433. typedef FATTRS *PFATTRS;
  434.  
  435. /* values of fsType field of FONTMETRICS structure */
  436. #define FM_TYPE_FIXED           0x0001
  437. #define FM_TYPE_LICENSED        0x0002
  438. #define FM_TYPE_KERNING         0x0004
  439. #define FM_TYPE_DBCS            0x0010
  440. #define FM_TYPE_MBCS            0x0018
  441. #define FM_TYPE_64K             0x8000
  442. #define FM_TYPE_ATOMS           0x4000
  443. #define FM_TYPE_FAMTRUNC        0x2000
  444. #define FM_TYPE_FACETRUNC       0x1000
  445.  
  446. /* values of fsDefn field of FONTMETRICS structure */
  447. #define FM_DEFN_OUTLINE         0x0001
  448. #define FM_DEFN_IFI             0x0002
  449. #define FM_DEFN_WIN             0x0004
  450. #define FM_DEFN_GENERIC         0x8000
  451.  
  452. /* values of fsSelection field of FONTMETRICS structure */
  453. #define FM_SEL_ITALIC           0x0001
  454. #define FM_SEL_UNDERSCORE       0x0002
  455. #define FM_SEL_NEGATIVE         0x0004
  456. #define FM_SEL_OUTLINE          0x0008          /* Hollow Outline Font */
  457. #define FM_SEL_STRIKEOUT        0x0010
  458. #define FM_SEL_BOLD             0x0020
  459. #define FM_SEL_ISO9241_TESTED   0x0040
  460.  
  461. /* ISO 9241 is an international standard covering health and safety      */
  462. /* in the work place for users of visual display terminals. Part 3 of    */
  463. /* this standard covers clarity and legibility of text displayed on      */
  464. /* computer screens, it places requirements on minimum sizes and         */
  465. /* luminance contrast. The presence of FM_SEL_ISO9241_TESTED flag in the */
  466. /* font metrics indicates that the font has been tested for compliance   */
  467. /* to the standard. The FM_ISO_XXX flags indicate the results of the     */
  468. /* test on the IBM 9515, 9517 and 9518 color displays at the supported   */
  469. /* dimensions of 640x480 and 1024x768. To ensure compliance the          */
  470. /* sXDeviceRes and sYDeviceRes must also match the target display        */
  471. /* resolution.                                                           */
  472.  
  473. /* values of fbPassed/FailedISO field in the PANOSE structure */
  474. #define FM_ISO_9518_640        0x01
  475. #define FM_ISO_9515_640        0x02
  476. #define FM_ISO_9515_1024       0x04
  477. #define FM_ISO_9517_640        0x08
  478. #define FM_ISO_9517_1024       0x10
  479.  
  480. /* values of fsCapabilities field of FONTMETRICS structure */
  481. #define FM_CAP_NOMIX            0x0001
  482. #define FM_CAP_NO_COLOR         0x0002
  483. #define FM_CAP_NO_MIXEDMODES    0x0004
  484. #define FM_CAP_NO_HOLLOW        0x0008
  485.  
  486.  
  487. /* font metrics returned by GpiQueryFonts and others */
  488.  
  489. typedef struct _PANOSE   /* panose */
  490. {
  491.    BYTE    bFamilyType;
  492.    BYTE    bSerifStyle;
  493.    BYTE    bWeight;
  494.    BYTE    bProportion;
  495.    BYTE    bContrast;
  496.    BYTE    bStrokeVariation;
  497.    BYTE    bArmStyle;
  498.    BYTE    bLetterform;
  499.    BYTE    bMidline;
  500.    BYTE    bXHeight;
  501.    BYTE    fbPassedISO;
  502.    BYTE    fbFailedISO;
  503. } PANOSE;
  504.  
  505. typedef struct _FONTMETRICS     /* fm */
  506. {
  507.    CHAR    szFamilyname[FACESIZE];
  508.    CHAR    szFacename[FACESIZE];
  509.    USHORT  idRegistry;
  510.    USHORT  usCodePage;
  511.    LONG    lEmHeight;
  512.    LONG    lXHeight;
  513.    LONG    lMaxAscender;
  514.    LONG    lMaxDescender;
  515.    LONG    lLowerCaseAscent;
  516.    LONG    lLowerCaseDescent;
  517.    LONG    lInternalLeading;
  518.    LONG    lExternalLeading;
  519.    LONG    lAveCharWidth;
  520.    LONG    lMaxCharInc;
  521.    LONG    lEmInc;
  522.    LONG    lMaxBaselineExt;
  523.    SHORT   sCharSlope;
  524.    SHORT   sInlineDir;
  525.    SHORT   sCharRot;
  526.    USHORT  usWeightClass;
  527.    USHORT  usWidthClass;
  528.    SHORT   sXDeviceRes;
  529.    SHORT   sYDeviceRes;
  530.    SHORT   sFirstChar;
  531.    SHORT   sLastChar;
  532.    SHORT   sDefaultChar;
  533.    SHORT   sBreakChar;
  534.    SHORT   sNominalPointSize;
  535.    SHORT   sMinimumPointSize;
  536.    SHORT   sMaximumPointSize;
  537.    USHORT  fsType;
  538.    USHORT  fsDefn;
  539.    USHORT  fsSelection;
  540.    USHORT  fsCapabilities;
  541.    LONG    lSubscriptXSize;
  542.    LONG    lSubscriptYSize;
  543.    LONG    lSubscriptXOffset;
  544.    LONG    lSubscriptYOffset;
  545.    LONG    lSuperscriptXSize;
  546.    LONG    lSuperscriptYSize;
  547.    LONG    lSuperscriptXOffset;
  548.    LONG    lSuperscriptYOffset;
  549.    LONG    lUnderscoreSize;
  550.    LONG    lUnderscorePosition;
  551.    LONG    lStrikeoutSize;
  552.    LONG    lStrikeoutPosition;
  553.    SHORT   sKerningPairs;
  554.    SHORT   sFamilyClass;
  555.    LONG    lMatch;
  556.    LONG    FamilyNameAtom;
  557.    LONG    FaceNameAtom;
  558.    PANOSE  panose;
  559. } FONTMETRICS;
  560. typedef FONTMETRICS *PFONTMETRICS;
  561.  
  562. /*** Common WIN types */
  563.  
  564. typedef VOID *MPARAM;      /* mp    */
  565. typedef MPARAM *PMPARAM;   /* pmp   */
  566. typedef VOID *MRESULT;     /* mres  */
  567. typedef MRESULT *PMRESULT; /* pmres */
  568.  
  569. typedef LHANDLE HWND;      /* hwnd */
  570. typedef HWND *PHWND;
  571.  
  572. typedef LHANDLE HMQ;       /* hmq */
  573. typedef LHANDLE *PHMQ;
  574.  
  575. /* NOINC */
  576. #define WRECT RECTL
  577. #define PWRECT PRECTL
  578. #define NPWRECT NPRECTL
  579.  
  580. #define WPOINT POINTL
  581. #define PWPOINT PPOINTL
  582. #define NPWPOINT NPPOINTL
  583. /* INC */
  584.  
  585. typedef struct _ICONINFO {  /* icninf */
  586.    ULONG   cb;                  /* size of ICONINFO structure */
  587.    ULONG   fFormat;
  588.    PSZ     pszFileName;         /* use when fFormat = ICON_FILE */
  589.    HMODULE hmod;                /* use when fFormat = ICON_RESOURCE */
  590.    ULONG   resid;               /* use when fFormat = ICON_RESOURCE */
  591.    ULONG   cbIconData;          /* use when fFormat = ICON_DATA     */
  592.    PVOID   pIconData;           /* use when fFormat = ICON_DATA     */
  593. } ICONINFO;
  594. typedef ICONINFO FAR *PICONINFO;
  595.  
  596. #define ICON_FILE     1         /* flags for fFormat */
  597. #define ICON_RESOURCE 2
  598. #define ICON_DATA     3
  599. #define ICON_CLEAR    4
  600.  
  601. #pragma pack(2) /* force structure alignment packing */
  602.  
  603. /* Binary resources may be bound into application executables or */
  604. /* passed as a parameter when creating a window or dialog        */
  605. /* Currently they must be the same for both 16-bit and 32-bit    */
  606. /* so we pack the structures.                                    */
  607. typedef struct _ACCEL    /* acc */
  608. {
  609.    USHORT  fs;
  610.    USHORT  key;
  611.    USHORT  cmd;
  612. } ACCEL;
  613. typedef ACCEL *PACCEL;
  614.  
  615. #pragma pack()  /* restore packing to default */
  616.  
  617. typedef LHANDLE HPOINTER;
  618.  
  619. #endif /* __OS2DEF__ */
  620.  
  621. #ifdef __cplusplus
  622.         }
  623. #endif
  624. #if __IBMC__ || __IBMCPP__
  625. #pragma info( none )
  626. #ifndef __CHKHDR__
  627.    #pragma info( restore )
  628. #endif
  629. #pragma info( restore )
  630. #endif
  631. /**************************** end of file **********************************/
  632.