Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

177 lines
4.7 KiB

  1. /*
  2. * databeam.h
  3. *
  4. * Copyright (c) 1993 - 1996 by DataBeam Corporation, Lexington, KY
  5. *
  6. * Abstract:
  7. * This file defines common extensions to the C++ language for
  8. * use at DataBeam Corporation.
  9. *
  10. * Author:
  11. * James P. Galvin, Jr.
  12. * Brian L. Pulito
  13. * Carolyn J. Holmes
  14. * John B. O'Nan
  15. *
  16. * Revision History
  17. * 08AUG94 blp Added UniChar
  18. * 15JUL94 blp Added lstrcmp
  19. */
  20. #ifndef _DATABEAM_
  21. #define _DATABEAM_
  22. # include <windows.h>
  23. /*
  24. * The following two macros can be used to get the minimum or the maximum
  25. * of two numbers.
  26. */
  27. #ifndef min
  28. # define min(a,b) (((a) < (b)) ? (a) : (b))
  29. #endif
  30. #ifndef max
  31. # define max(a,b) (((a) > (b)) ? (a) : (b))
  32. #endif
  33. /*
  34. * This typedef defines Boolean as an BOOL, rather than an enum. The
  35. * thinking is that this is more likely to be compatible with other
  36. * uses of Boolean (if any), as well as with the use of "#define" to
  37. * define TRUE and FALSE.
  38. */
  39. #ifndef DBBoolean
  40. typedef BOOL DBBoolean;
  41. typedef BOOL * PDBBoolean;
  42. #endif
  43. /*
  44. * These defines set up values that would typically be used in conjunction
  45. * with the type Boolean as defined above.
  46. */
  47. #ifndef OFF
  48. # define OFF 0
  49. #endif
  50. #ifndef ON
  51. # define ON 1
  52. #endif
  53. /*
  54. * EOS can be used for the NUL byte at the end of a string. Do not
  55. * confuse this with the pointer constant "NULL".
  56. */
  57. #define EOS '\0'
  58. /*
  59. * The following is a list of the standard typedefs that will be used
  60. * in all programs written at DataBeam. Use of this list gives us full
  61. * control over types for portability. It also gives us a standard
  62. * naming convention for all types.
  63. */
  64. typedef char Char;
  65. typedef unsigned char UChar;
  66. typedef char * PChar;
  67. typedef const char * PCChar;
  68. typedef unsigned char * PUChar;
  69. typedef const unsigned char * PCUChar;
  70. typedef char * FPChar;
  71. typedef const char * FPCChar;
  72. typedef unsigned char * FPUChar;
  73. typedef const unsigned char * FPCUChar;
  74. typedef char * HPChar;
  75. typedef const char * HPCChar;
  76. typedef unsigned char * HPUChar;
  77. typedef const unsigned char * HPCUChar;
  78. typedef short Short;
  79. typedef unsigned short UShort;
  80. typedef short * PShort;
  81. typedef const short * PCShort;
  82. typedef unsigned short * PUShort;
  83. typedef const unsigned short * PCUShort;
  84. typedef short * FPShort;
  85. typedef const short * FPCShort;
  86. typedef unsigned short * FPUShort;
  87. typedef const unsigned short * FPCUShort;
  88. typedef short * HPShort;
  89. typedef const short * HPCShort;
  90. typedef unsigned short * HPUShort;
  91. typedef const unsigned short * HPCUShort;
  92. typedef int Int;
  93. typedef unsigned int UInt;
  94. typedef int * PInt;
  95. typedef const int * PCInt;
  96. typedef unsigned int * PUInt;
  97. typedef const unsigned int * PCUInt;
  98. typedef int * FPInt;
  99. typedef const int * FPCInt;
  100. typedef unsigned int * FPUInt;
  101. typedef const unsigned int * FPCUInt;
  102. typedef int * HPInt;
  103. typedef const int * HPCInt;
  104. typedef unsigned int * HPUInt;
  105. typedef const unsigned int * HPCUInt;
  106. typedef long Long;
  107. typedef unsigned long ULong;
  108. typedef long * PLong;
  109. typedef const long * PCLong;
  110. typedef unsigned long * PULong;
  111. typedef const unsigned long * PCULong;
  112. typedef long * FPLong;
  113. typedef const long * FPCLong;
  114. typedef unsigned long * FPULong;
  115. typedef const unsigned long * FPCULong;
  116. typedef long * HPLong;
  117. typedef const long * HPCLong;
  118. typedef unsigned long * HPULong;
  119. typedef const unsigned long * HPCULong;
  120. #ifdef USE_FLOATING_POINT
  121. typedef float Float;
  122. typedef float * PFloat;
  123. typedef const float * PCFloat;
  124. typedef float * FPFloat;
  125. typedef const float * FPCFloat;
  126. typedef float * HPFloat;
  127. typedef const float * HPCFloat;
  128. typedef double Double;
  129. typedef double * PDouble;
  130. typedef const double * PCDouble;
  131. typedef double * FPDouble;
  132. typedef const double * FPCDouble;
  133. typedef double * HPDouble;
  134. typedef const double * HPCDouble;
  135. typedef long double LDouble;
  136. typedef long double * PLDouble;
  137. typedef const long double * PCLDouble;
  138. typedef long double * FPLDouble;
  139. typedef const long double * FPCLDouble;
  140. typedef long double * HPLDouble;
  141. typedef const long double * HPCLDouble;
  142. #endif
  143. typedef void Void;
  144. typedef void * PVoid;
  145. typedef const void * PCVoid;
  146. typedef void * FPVoid;
  147. typedef const void * FPCVoid;
  148. typedef void * HPVoid;
  149. typedef const void * HPCVoid;
  150. /*
  151. * Temporary fix for compatibility with the Symantec compiler, which doesn't
  152. * recognize wchar_t as a valid type.
  153. */
  154. typedef unsigned short UniChar;
  155. typedef UniChar * PUniChar;
  156. typedef UniChar * FPUniChar;
  157. #endif