home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0040 - 0049 / ibm0040-0049 / ibm0040.tar / ibm0040 / BCPPOWL3.ZIP / PATINC.ZIP / _DEFS.H next >
Encoding:
C/C++ Source or Header  |  1991-08-28  |  1.7 KB  |  79 lines

  1. /*  _defs.h
  2.  
  3.     Common definitions for pointer size and calling conventions.
  4.  
  5.     Copyright (c) Borland International 1991
  6.     All Rights Reserved.
  7. */
  8.  
  9. #if !defined( __DEFS_H )
  10. #define __DEFS_H
  11.  
  12. #if __STDC__
  13. #  define _Cdecl
  14. #else
  15. #  ifdef __OS2__
  16. #    define _Cdecl  _stdcall
  17. #  else
  18. #    define _Cdecl  cdecl
  19. #  endif
  20. #endif
  21.  
  22. #ifndef __PAS__
  23. #  define _CType _Cdecl
  24. #else
  25. #  define _CType pascal
  26. #endif
  27.  
  28. #ifdef __OS2__
  29. #  define _FAR
  30. #  define _FARFUNC
  31. #  define _CLASSTYPE
  32. #else
  33. #  if   defined(__DLL__)
  34. #    define _CLASSTYPE _export
  35. #    define _FAR far
  36. #    if defined(_BUILDRTLDLL)
  37. #      define _FARFUNC _export
  38. #    else
  39. #      define _FARFUNC far
  40. #    endif
  41. #  elif defined(_CLASSDLL) || defined(_RTLDLL)
  42. #    define _CLASSTYPE huge
  43. #    define _FARFUNC far
  44. #    define _FAR far
  45. #  else
  46. #    define _FARFUNC
  47. #    define _FAR
  48. #    if   defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__)
  49. #      define _CLASSTYPE  near
  50. #    elif defined(__COMPACT__) || defined(__LARGE__)
  51. #      define _CLASSTYPE  far
  52. #    else
  53. #      define _CLASSTYPE  huge
  54. #    endif
  55. #  endif
  56. #endif
  57.  
  58. #if defined(_BUILDRTLDLL)
  59. #  define _FARCALL _export
  60. #else
  61. #  define _FARCALL far
  62. #endif
  63.  
  64. #ifdef __cplusplus
  65. #  define _PTRDEF(name) typedef name _FAR * P##name;
  66. #  define _REFDEF(name) typedef name _FAR & R##name;
  67. #  define _REFPTRDEF(name) typedef name _FAR * _FAR & RP##name;
  68. #  define _PTRCONSTDEF(name) typedef const name _FAR * PC##name;
  69. #  define _REFCONSTDEF(name) typedef const name _FAR & RC##name;
  70. #  define _CLASSDEF(name) class _CLASSTYPE name; \
  71.         _PTRDEF(name) \
  72.     _REFDEF(name) \
  73.     _REFPTRDEF(name) \
  74.     _PTRCONSTDEF(name) \
  75.     _REFCONSTDEF(name)
  76. #endif
  77.  
  78. #endif  /* __DEFS_H */
  79.