home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c082_122 / 2.ddi / RTLINSRC.ZIP / _VECTOR.H < prev    next >
Encoding:
C/C++ Source or Header  |  1992-06-10  |  10.3 KB  |  201 lines

  1. /*------------------------------------------------------------------------
  2.  * filename - _vector.h
  3.  *
  4.  *      Typedefs and constants for use by compiler helper functions
  5.  *      for working on arrays of classes
  6.  *-----------------------------------------------------------------------*/
  7.  
  8. /*[]------------------------------------------------------------[]*/
  9. /*|                                                              |*/
  10. /*|     C/C++ Run Time Library - Version 4.0                     |*/
  11. /*|                                                              |*/
  12. /*|                                                              |*/
  13. /*|     Copyright (c) 1991 by Borland International              |*/
  14. /*|     All Rights Reserved.                                     |*/
  15. /*|                                                              |*/
  16. /*[]------------------------------------------------------------[]*/
  17.  
  18. // VDEL
  19. typedef void _cdecl     (near * destNNC)(void near*, int);
  20. typedef void _cdecl     (near * destNFC)(void far*, int);
  21. typedef void _pascal    (near * destNNP)(void near*, int);
  22. typedef void _pascal    (near * destNFP)(void far*, int);
  23. typedef void _pascal    (near * destNNPL)(int, void near*);
  24. typedef void _pascal    (near * destNFPL)(int, void far*);
  25. typedef void _fastcall  (near * destNNF)(void near*, int);
  26. typedef void _fastcall  (near * destNFF)(void far*, int);
  27. typedef void _fastcall  (near * destNNFL)(int, void near*);
  28. typedef void _fastcall  (near * destNFFL)(int, void far*);
  29. typedef void _cdecl     (far  * destFNC)(void near*, int);
  30. typedef void _cdecl     (far  * destFFC)(void far*, int);
  31. typedef void _pascal    (far  * destFNP)(void near*, int);
  32. typedef void _pascal    (far  * destFFP)(void far*, int);
  33. typedef void _pascal    (far  * destFNPL)(int, void near*);
  34. typedef void _pascal    (far  * destFFPL)(int, void far*);
  35. typedef void _fastcall  (far  * destFNF)(void near*, int);
  36. typedef void _fastcall  (far  * destFFF)(void far*, int);
  37. typedef void _fastcall  (far  * destFNFL)(int, void near*);
  38. typedef void _fastcall  (far  * destFFFL)(int, void far*);
  39. typedef void _cdecl     (near * destNNCT)(int);
  40. typedef void _cdecl     (near * destNFCT)(int);
  41. typedef void _pascal    (near * destNNPT)(int);
  42. typedef void _pascal    (near * destNFPT)(int);
  43. typedef void _fastcall  (near * destNNFT)(int);
  44. typedef void _fastcall  (near * destNFFT)(int);
  45. typedef void _cdecl     (far  * destFNCT)(int);
  46. typedef void _cdecl     (far  * destFFCT)(int);
  47. typedef void _pascal    (far  * destFNPT)(int);
  48. typedef void _pascal    (far  * destFFPT)(int);
  49. typedef void _fastcall  (far  * destFNFT)(int);
  50. typedef void _fastcall  (far  * destFFFT)(int);
  51.  
  52. // VNEW
  53. typedef void _cdecl     (near * constNNC)(void near*);
  54. typedef void _cdecl     (near * constNFC)(void far*);
  55. typedef void _pascal    (near * constNNP)(void near*);
  56. typedef void _pascal    (near * constNFP)(void far*);
  57. typedef void _fastcall  (near * constNNF)(void near*);
  58. typedef void _fastcall  (near * constNFF)(void far*);
  59. typedef void _cdecl     (far  * constFNC)(void near*);
  60. typedef void _cdecl     (far  * constFFC)(void far*);
  61. typedef void _pascal    (far  * constFNP)(void near*);
  62. typedef void _pascal    (far  * constFFP)(void far*);
  63. typedef void _fastcall  (far  * constFNF)(void near*);
  64. typedef void _fastcall  (far  * constFFF)(void far*);
  65. typedef void _cdecl     (near * constNNCT)();
  66. typedef void _cdecl     (near * constNFCT)();
  67. typedef void _pascal    (near * constNNPT)();
  68. typedef void _pascal    (near * constNFPT)();
  69. typedef void _fastcall  (near * constNNFT)();
  70. typedef void _fastcall  (near * constNFFT)();
  71. typedef void _cdecl     (far  * constFNCT)();
  72. typedef void _cdecl     (far  * constFFCT)();
  73. typedef void _pascal    (far  * constFNPT)();
  74. typedef void _pascal    (far  * constFFPT)();
  75. typedef void _fastcall  (far  * constFNFT)();
  76. typedef void _fastcall  (far  * constFFFT)();
  77.  
  78. // VNEWV
  79. typedef void _cdecl     (near * consvNNC)(void near*, int);
  80. typedef void _cdecl     (near * consvNFC)(void far*, int);
  81. typedef void _pascal    (near * consvNNP)(void near*, int);
  82. typedef void _pascal    (near * consvNFP)(void far*, int);
  83. typedef void _pascal    (near * consvNNPL)(int, void near*);
  84. typedef void _pascal    (near * consvNFPL)(int, void far*);
  85. typedef void _fastcall  (near * consvNNF)(void near*, int);
  86. typedef void _fastcall  (near * consvNFF)(void far*, int);
  87. typedef void _fastcall  (near * consvNNFL)(int, void near*);
  88. typedef void _fastcall  (near * consvNFFL)(int, void far*);
  89. typedef void _cdecl     (far  * consvFNC)(void near*, int);
  90. typedef void _cdecl     (far  * consvFFC)(void far*, int);
  91. typedef void _pascal    (far  * consvFNP)(void near*, int);
  92. typedef void _pascal    (far  * consvFFP)(void far*, int);
  93. typedef void _pascal    (far  * consvFNPL)(int, void near*);
  94. typedef void _pascal    (far  * consvFFPL)(int, void far*);
  95. typedef void _fastcall  (far  * consvFNF)(void near*, int);
  96. typedef void _fastcall  (far  * consvFFF)(void far*, int);
  97. typedef void _fastcall  (far  * consvFNFL)(int, void near*);
  98. typedef void _fastcall  (far  * consvFFFL)(int, void far*);
  99. typedef void _cdecl     (near * consvNNCT)(int);
  100. typedef void _cdecl     (near * consvNFCT)(int);
  101. typedef void _pascal    (near * consvNNPT)(int);
  102. typedef void _pascal    (near * consvNFPT)(int);
  103. typedef void _fastcall  (near * consvNNFT)(int);
  104. typedef void _fastcall  (near * consvNFFT)(int);
  105. typedef void _cdecl     (far  * consvFNCT)(int);
  106. typedef void _cdecl     (far  * consvFFCT)(int);
  107. typedef void _pascal    (far  * consvFNPT)(int);
  108. typedef void _pascal    (far  * consvFFPT)(int);
  109. typedef void _fastcall  (far  * consvFNFT)(int);
  110. typedef void _fastcall  (far  * consvFFFT)(int);
  111.  
  112. // VAPP
  113. typedef void _cdecl     (near * appNNC)(void near*, void near*);
  114. typedef void _cdecl     (near * appNFC)(void far*, void far*);
  115. typedef void _pascal    (near * appNNP)(void near*, void near*);
  116. typedef void _pascal    (near * appNFP)(void far*, void far*);
  117. typedef void _pascal    (near * appNNPL)(void near*, void near*);
  118. typedef void _pascal    (near * appNFPL)(void far*, void far*);
  119. typedef void _fastcall  (near * appNNF)(void near*, void near*);
  120. typedef void _fastcall  (near * appNFF)(void far*, void far*);
  121. typedef void _fastcall  (near * appNNFL)(void near*, void near*);
  122. typedef void _fastcall  (near * appNFFL)(void far*, void far*);
  123. typedef void _cdecl     (far  * appFNC)(void near*, void near*);
  124. typedef void _cdecl     (far  * appFFC)(void far*, void far*);
  125. typedef void _pascal    (far  * appFNP)(void near*, void near*);
  126. typedef void _pascal    (far  * appFFP)(void far*, void far*);
  127. typedef void _pascal    (far  * appFNPL)(void near*, void near*);
  128. typedef void _pascal    (far  * appFFPL)(void far*, void far*);
  129. typedef void _fastcall  (far  * appFNF)(void near*, void near*);
  130. typedef void _fastcall  (far  * appFFF)(void far*, void far*);
  131. typedef void _fastcall  (far  * appFNFL)(void near*, void near*);
  132. typedef void _fastcall  (far  * appFFFL)(void far*, void far*);
  133. typedef void _cdecl     (near * appNNCT)(void near*);
  134. typedef void _cdecl     (near * appNFCT)(void far*);
  135. typedef void _pascal    (near * appNNPT)(void near*);
  136. typedef void _pascal    (near * appNFPT)(void far*);
  137. typedef void _fastcall  (near * appNNFT)(void near*);
  138. typedef void _fastcall  (near * appNFFT)(void far*);
  139. typedef void _cdecl     (far  * appFNCT)(void near*);
  140. typedef void _cdecl     (far  * appFFCT)(void far*);
  141. typedef void _pascal    (far  * appFNPT)(void near*);
  142. typedef void _pascal    (far  * appFFPT)(void far*);
  143. typedef void _fastcall  (far  * appFNFT)(void near*);
  144. typedef void _fastcall  (far  * appFFFT)(void far*);
  145.  
  146. // VAPPV
  147. typedef void _cdecl     (near * appvNNC)(void near*, int, void near*);
  148. typedef void _cdecl     (near * appvNFC)(void far*, int, void far*);
  149. typedef void _pascal    (near * appvNNP)(void near*, int, void near*);
  150. typedef void _pascal    (near * appvNFP)(void far*, int, void far*);
  151. typedef void _pascal    (near * appvNNPL)(int, void near*, void near*);
  152. typedef void _pascal    (near * appvNFPL)(int, void far*, void far*);
  153. typedef void _fastcall  (near * appvNNF)(void near*, int, void near*);
  154. typedef void _fastcall  (near * appvNFF)(void far*, int, void far*);
  155. typedef void _fastcall  (near * appvNNFL)(int, void near*, void near*);
  156. typedef void _fastcall  (near * appvNFFL)(int, void far*, void far*);
  157. typedef void _cdecl     (far  * appvFNC)(void near*, int, void near*);
  158. typedef void _cdecl     (far  * appvFFC)(void far*, int, void far*);
  159. typedef void _pascal    (far  * appvFNP)(void near*, int, void near*);
  160. typedef void _pascal    (far  * appvFFP)(void far*, int, void far*);
  161. typedef void _pascal    (far  * appvFNPL)(int, void near*, void near*);
  162. typedef void _pascal    (far  * appvFFPL)(int, void far*, void far*);
  163. typedef void _fastcall  (far  * appvFNF)(void near*, int, void near*);
  164. typedef void _fastcall  (far  * appvFFF)(void far*, int, void far*);
  165. typedef void _fastcall  (far  * appvFNFL)(int, void near*, void near*);
  166. typedef void _fastcall  (far  * appvFFFL)(int, void far*, void far*);
  167. typedef void _cdecl     (near * appvNNCT)(int, void near*);
  168. typedef void _cdecl     (near * appvNFCT)(int, void far*);
  169. typedef void _pascal    (near * appvNNPT)(int, void near*);
  170. typedef void _pascal    (near * appvNFPT)(int, void far*);
  171. typedef void _fastcall  (near * appvNNFT)(int, void near*);
  172. typedef void _fastcall  (near * appvNFFT)(int, void far*);
  173. typedef void _cdecl     (far  * appvFNCT)(int, void near*);
  174. typedef void _cdecl     (far  * appvFFCT)(int, void far*);
  175. typedef void _pascal    (far  * appvFNPT)(int, void near*);
  176. typedef void _pascal    (far  * appvFFPT)(int, void far*);
  177. typedef void _fastcall  (far  * appvFNFT)(int, void near*);
  178. typedef void _fastcall  (far  * appvFFFT)(int, void far*);
  179.  
  180.  
  181. #define  VFARCALL   0x01
  182. #define  VPASCAL    0x02
  183. #define  VFARPTR    0x04
  184. #define  VDEALLOC   0x08
  185. #define  VSTORECNT  0x10
  186. #define  VFASTCALL  0x20
  187. #define  VHUGEVECT  0x40
  188. #define  VFASTTHIS  0x80
  189. #define  VTHISLAST  0x100
  190.  
  191. #define VCALLTYPE   (VFARCALL | VPASCAL | VFARPTR | VFASTCALL | VFASTTHIS | VTHISLAST)
  192.  
  193. #define LOAD_FAR_THIS(p)    asm push ds; asm push si; asm lds si, p
  194. #define END_FAR_THIS()      asm pop si; asm pop ds
  195.  
  196. #define LOAD_NEAR_THIS(p)   asm push si; asm mov si, word ptr p
  197. #define END_NEAR_THIS()     asm pop si
  198.  
  199. // Need fast huge pointers.  Classes will be aligned correctly.
  200. #pragma option -h+
  201.