home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / comm / ssfaxr11.zip / CLIPPER.ZIP / EXTEND.API < prev    next >
Text File  |  1993-02-15  |  3KB  |  105 lines

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