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.

223 lines
6.9 KiB

  1. /////////////////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1998 Active Voice Corporation. All Rights Reserved.
  4. //
  5. // Active Agent(r) and Unified Communications(tm) are trademarks of Active Voice Corporation.
  6. //
  7. // Other brand and product names used herein are trademarks of their respective owners.
  8. //
  9. // The entire program and user interface including the structure, sequence, selection,
  10. // and arrangement of the dialog, the exclusively "yes" and "no" choices represented
  11. // by "1" and "2," and each dialog message are protected by copyrights registered in
  12. // the United States and by international treaties.
  13. //
  14. // Protected by one or more of the following United States patents: 5,070,526, 5,488,650,
  15. // 5,434,906, 5,581,604, 5,533,102, 5,568,540, 5,625,676, 5,651,054.
  16. //
  17. // Active Voice Corporation
  18. // Seattle, Washington
  19. // USA
  20. //
  21. /////////////////////////////////////////////////////////////////////////////////////////
  22. ////
  23. // tim.h - interface for time functions in tim.c
  24. ////
  25. #ifndef __TIME_H__
  26. #define __TIME_H__
  27. #include "winlocal.h"
  28. #define TIME_VERSION 0x00000100
  29. // time types
  30. //
  31. typedef long Time_t;
  32. typedef short Hour_t;
  33. typedef short Minute_t;
  34. typedef short Second_t;
  35. typedef short Millesecond_t;
  36. #ifdef __cplusplus
  37. extern "C" {
  38. #endif
  39. // Time - return time value representing hour, minute, second, and millesecond
  40. // <h> (i) hour
  41. // <m> (i) minute
  42. // <s> (i) second
  43. // <ms> (i) millesecond
  44. // return time value (0 if error)
  45. //
  46. Time_t DLLEXPORT WINAPI Time(Hour_t h, Minute_t m, Second_t s, Millesecond_t ms);
  47. // TimeNow - return time value representing current hour, minute, and second, and millesecond
  48. // return time value (0 if error)
  49. //
  50. Time_t DLLEXPORT WINAPI TimeNow(void);
  51. // TimeValue - return time value representing given time string
  52. // <lpszTime> (i) time string to convert
  53. // "23:59:59.999"
  54. // etc.
  55. // return time value (0 if error)
  56. //
  57. Time_t DLLEXPORT WINAPI TimeValue(LPCTSTR lpszTime);
  58. // TimeHour - return hour of a given time (0-23)
  59. // <t> (i) time value
  60. // return hour
  61. //
  62. Hour_t DLLEXPORT WINAPI TimeHour(Time_t t);
  63. // TimeMinute - return minute of a given time (0-59)
  64. // <t> (i) time value
  65. // return minute
  66. //
  67. Minute_t DLLEXPORT WINAPI TimeMinute(Time_t t);
  68. // TimeSecond - return second of a given time (0-59)
  69. // <t> (i) time value
  70. // return second
  71. //
  72. Second_t DLLEXPORT WINAPI TimeSecond(Time_t t);
  73. // TimeMillesecond - return millesecond of a given time (0-999)
  74. // <t> (i) time value
  75. // return second
  76. //
  77. Millesecond_t DLLEXPORT WINAPI TimeMillesecond(Time_t t);
  78. // TimeDayMillesecond - return millesecond since the start of the day for a given time
  79. // <t> (i) time value
  80. // return millesecond
  81. //
  82. long DLLEXPORT WINAPI TimeDayMillesecond(Time_t t);
  83. // TimeIsValid - test <t> for validity
  84. // <t> (i) time value
  85. // return TRUE if valid
  86. //
  87. BOOL DLLEXPORT WINAPI TimeIsValid(Time_t t);
  88. // TimeIsAfternoon - return TRUE if <t> represents a time after noon
  89. // <t> (i) time value
  90. // return TRUE if leap hour
  91. //
  92. BOOL DLLEXPORT WINAPI TimeIsAfternoon(Time_t t);
  93. // TimeNew - return time value which is <n> milleseconds from time <t>
  94. // <t> (i) time value
  95. // <n> (i) delta
  96. // +1 one millesecond later
  97. // -1 one millesecond earlier, etc.
  98. // return time value (0 if error)
  99. //
  100. Time_t DLLEXPORT WINAPI TimeNew(Time_t t, long n);
  101. // TimeCmp - return number of milleseconds between t1 and t2 (t1 minus t2)
  102. // <t1> (i) time value
  103. // <t2> (i) time value
  104. // return milleseconds between times
  105. //
  106. long DLLEXPORT WINAPI TimeCmp(Time_t t1, Time_t t2);
  107. // TimeStartSecond - return time representing start the second relative to time <t>
  108. // <t> (i) time value
  109. // return time value (0 if error)
  110. //
  111. Time_t DLLEXPORT WINAPI TimeStartSecond(Time_t t);
  112. // TimeEndSecond - return time representing end of the second relative to time <t>
  113. // <t> (i) time value
  114. // return time value (0 if error)
  115. //
  116. Time_t DLLEXPORT WINAPI TimeEndSecond(Time_t t);
  117. // TimeStartMinute - return time representing start the minute relative to time <t>
  118. // <t> (i) time value
  119. // return time value (0 if error)
  120. //
  121. Time_t DLLEXPORT WINAPI TimeStartMinute(Time_t t);
  122. // TimeEndMinute - return time representing end of the minute relative to time <t>
  123. // <t> (i) time value
  124. // return time value (0 if error)
  125. //
  126. Time_t DLLEXPORT WINAPI TimeEndMinute(Time_t t);
  127. // TimeStartHour - return time representing start of the hour relative to time <t>
  128. // <t> (i) time value
  129. // return time value (0 if error)
  130. //
  131. Time_t DLLEXPORT WINAPI TimeStartHour(Time_t t);
  132. // TimeEndHour - return time representing end of the hour relative to time <t>
  133. // <t> (i) time value
  134. // return time value (0 if error)
  135. //
  136. Time_t DLLEXPORT WINAPI TimeEndHour(Time_t t);
  137. // TimeStartLastSecond - return time representing start of previous second
  138. // return time value (0 if error)
  139. //
  140. Time_t DLLEXPORT WINAPI TimeStartLastSecond(void);
  141. // TimeEndLastSecond - return time representing end of previous second
  142. // return time value (0 if error)
  143. //
  144. Time_t DLLEXPORT WINAPI TimeEndLastSecond(void);
  145. // TimeStartLastMinute - return time representing start of previous minute
  146. // return time value (0 if error)
  147. //
  148. Time_t DLLEXPORT WINAPI TimeStartLastMinute(void);
  149. // TimeEndLastMinute - return time representing end of previous minute
  150. // return time value (0 if error)
  151. //
  152. Time_t DLLEXPORT WINAPI TimeEndLastMinute(void);
  153. // TimeStartLastHour - return time representing start of previous hour
  154. // return time value (0 if error)
  155. //
  156. Time_t DLLEXPORT WINAPI TimeStartLastHour(void);
  157. // TimeEndLastHour - return time representing end of previous hour
  158. // return time value (0 if error)
  159. //
  160. Time_t DLLEXPORT WINAPI TimeEndLastHour(void);
  161. // macros to emulate MS Excel macros, etc.
  162. //
  163. #define TIME(h, m, s, ms) Time(h, m, s, ms)
  164. #define NOW() TimeNow()
  165. #define TIMEVALUE(lpszTime) TimeValue(lpszTime)
  166. #define HOUR(t) TimeHour(t)
  167. #define MINUTE(t) TimeMinute(t)
  168. #define SECOND(t) TimeSecond(t)
  169. #define MILLESECOND(t) TimeMillesecond(t)
  170. #define TIMEDAYMILLESECOND(t) TimeDayMillesecond(t)
  171. #define ISVALIDTIME(t) TimeIsValid(t)
  172. #define ISAFTERNOON(t) TimeIsAfternoon(t)
  173. #define NEWTIME(t, offset) TimeNew(t, offset)
  174. #define TIMECMP(t1, t2) TimeCmp(t1, t2)
  175. #define STARTSECOND(t) TimeStartSecond(t)
  176. #define ENDSECOND(t) TimeEndSecond(t)
  177. #define STARTMINUTE(t) TimeStartMinute(t)
  178. #define ENDMINUTE(t) TimeEndMinute(t)
  179. #define STARTHOUR(t) TimeStartHour(t)
  180. #define ENDHOUR(t) TimeEndHour(t)
  181. #define STARTLASTSECOND() TimeStartLastSecond()
  182. #define ENDLASTSECOND() TimeEndLastSecond()
  183. #define STARTLASTMINUTE() TimeStartLastMinute()
  184. #define ENDLASTMINUTE() TimeEndLastMinute()
  185. #define STARTLASTHOUR() TimeStartLastHour()
  186. #define ENDLASTHOUR() TimeEndLastHour()
  187. #ifdef __cplusplus
  188. }
  189. #endif
  190. #endif // __TIME_H__