home *** CD-ROM | disk | FTP | other *** search
/ Power CD-ROM!! 7 / POWERCD7.ISO / prgmming / clipper / extend.h < prev    next >
Text File  |  1991-04-14  |  3KB  |  109 lines

  1. /***
  2. *    extend.h
  3. *    C language definitions for Clipper EXTEND system.
  4. *    Copyright (c) 1987,1988,1989,1990 Nantucket Corp.  All rights reserved.
  5. *
  6. *    Clipper uses Microsoft C large model calling conventions.
  7. */
  8.  
  9.  
  10. #ifndef CLIPPERDEFS
  11.  
  12. #define CLIPPER        void pascal
  13.  
  14. #define FALSE    0
  15. #define TRUE    1
  16.  
  17. #define NIL        '\0'
  18. #define NULL    0L
  19.  
  20. typedef unsigned char byte;
  21. typedef unsigned int quant;
  22. typedef int Boolean;
  23. typedef double XDOUBLE;
  24.  
  25. #define CLIPPERDEFS
  26. #endif
  27.  
  28.  
  29.  
  30. #define UNDEF        0
  31. #define CHARACTER    1
  32. #define NUMERIC        2
  33. #define LOGICAL        4
  34. #define DATE        8
  35. #define ALIAS        16
  36. #define MPTR        32        /* or'ed with type when passed by reference */
  37. #define MEMO        65
  38. #define WORD        128
  39. #define ARRAY        512
  40.  
  41.  
  42. /* parameter count/type */
  43. extern int _parinfo(int);
  44. extern int _parinfa(int, unsigned int);
  45.  
  46.  
  47. /* parameter values */
  48. extern char *_parc(int, ...);
  49. extern unsigned int _parcsiz(int, ...);
  50. extern unsigned int _parclen(int, ...);
  51. extern int _parni(int, ...);
  52. extern long _parnl(int, ...);
  53. extern XDOUBLE _parnd(int, ...);
  54. extern int _parl(int, ...);
  55. extern char *_pards(int, ...);
  56.  
  57.  
  58. /* return a value */
  59. extern void _retc(char far *);
  60. extern void _retclen(char far *, unsigned int);
  61. extern void _retni(int);
  62. extern void _retnl(long);
  63. extern void _retnd(XDOUBLE);
  64. extern void _retl(int);
  65. extern void _retds(char far *);
  66.  
  67. /* return no value (NIL) */
  68. extern void _ret(void);
  69.  
  70.  
  71. /* store values */
  72. int _storc(char far *, int, ...);
  73. int _storclen(char far *, int, ...);
  74. int _storni(int, int, ...);
  75. int _stornl(long, int, ...);
  76. int _stornd(XDOUBLE, int, ...);
  77. int _storl(int, int, ...);
  78. int _stords(char far *, int, ...);
  79.  
  80.  
  81. /***
  82. *    Note:
  83. *    _xalloc() returns NULL if the request cannot be satisfied
  84. *    _xgrab() generates a runtime error if the request cannot be satisfied
  85. */
  86.  
  87. /*    allocate memory */
  88. extern void far * _xalloc(unsigned int numberOfBytes);
  89. extern void far * _xgrab(unsigned int numberOfBytes);
  90. extern void _xfree(void far *allocatedBlock);
  91.  
  92.  
  93. /* S87 compat. */
  94. #define _exmgrab(size)            _xgrab(size)
  95. #define _exmback(ptr, size)        _xfree(ptr)
  96.  
  97.  
  98. /* parameter check macros */
  99. #define PCOUNT        (_parinfo(0))
  100. #define ISCHAR(n)    (_parinfo(n) & CHARACTER)
  101. #define ISNUM(n)    (_parinfo(n) & NUMERIC)
  102. #define ISLOG(n)    (_parinfo(n) & LOGICAL)
  103. #define ISDATE(n)    (_parinfo(n) & DATE)
  104. #define ISMEMO(n)    (_parinfo(n) & MEMO)
  105. #define ISBYREF(n)    (_parinfo(n) & MPTR)
  106. #define ISARRAY(n)    (_parinfo(n) & ARRAY)
  107. #define ALENGTH(n)    (_parinfa(n, 0))
  108.  
  109.