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