Chris@16
|
1 // time.hpp --------------------------------------------------------------//
|
Chris@16
|
2
|
Chris@16
|
3 // Copyright 2010 Vicente J. Botet Escriba
|
Chris@16
|
4
|
Chris@16
|
5 // Distributed under the Boost Software License, Version 1.0.
|
Chris@16
|
6 // See http://www.boost.org/LICENSE_1_0.txt
|
Chris@16
|
7
|
Chris@16
|
8
|
Chris@16
|
9 #ifndef BOOST_DETAIL_WINAPI_TIME_HPP
|
Chris@16
|
10 #define BOOST_DETAIL_WINAPI_TIME_HPP
|
Chris@16
|
11
|
Chris@16
|
12 #include <boost/detail/winapi/basic_types.hpp>
|
Chris@16
|
13
|
Chris@16
|
14 #ifdef BOOST_HAS_PRAGMA_ONCE
|
Chris@16
|
15 #pragma once
|
Chris@16
|
16 #endif
|
Chris@16
|
17
|
Chris@16
|
18 namespace boost {
|
Chris@16
|
19 namespace detail {
|
Chris@16
|
20 namespace winapi {
|
Chris@16
|
21 #if defined( BOOST_USE_WINDOWS_H )
|
Chris@16
|
22 typedef FILETIME FILETIME_;
|
Chris@16
|
23 typedef PFILETIME PFILETIME_;
|
Chris@16
|
24 typedef LPFILETIME LPFILETIME_;
|
Chris@16
|
25
|
Chris@16
|
26 typedef SYSTEMTIME SYSTEMTIME_;
|
Chris@16
|
27 typedef SYSTEMTIME* PSYSTEMTIME_;
|
Chris@16
|
28
|
Chris@16
|
29 #ifdef BOOST_HAS_GETSYSTEMTIMEASFILETIME // Windows CE does not define GetSystemTimeAsFileTime
|
Chris@16
|
30 using ::GetSystemTimeAsFileTime;
|
Chris@16
|
31 #endif
|
Chris@16
|
32 using ::FileTimeToLocalFileTime;
|
Chris@16
|
33 using ::GetSystemTime;
|
Chris@16
|
34 using ::SystemTimeToFileTime;
|
Chris@16
|
35 using ::GetTickCount;
|
Chris@16
|
36
|
Chris@16
|
37 #else
|
Chris@16
|
38 extern "C" {
|
Chris@16
|
39 typedef struct _FILETIME {
|
Chris@16
|
40 DWORD_ dwLowDateTime;
|
Chris@16
|
41 DWORD_ dwHighDateTime;
|
Chris@16
|
42 } FILETIME_, *PFILETIME_, *LPFILETIME_;
|
Chris@16
|
43
|
Chris@16
|
44 typedef struct _SYSTEMTIME {
|
Chris@16
|
45 WORD_ wYear;
|
Chris@16
|
46 WORD_ wMonth;
|
Chris@16
|
47 WORD_ wDayOfWeek;
|
Chris@16
|
48 WORD_ wDay;
|
Chris@16
|
49 WORD_ wHour;
|
Chris@16
|
50 WORD_ wMinute;
|
Chris@16
|
51 WORD_ wSecond;
|
Chris@16
|
52 WORD_ wMilliseconds;
|
Chris@16
|
53 } SYSTEMTIME_, *PSYSTEMTIME_;
|
Chris@16
|
54
|
Chris@16
|
55 #ifdef BOOST_HAS_GETSYSTEMTIMEASFILETIME // Windows CE does not define GetSystemTimeAsFileTime
|
Chris@16
|
56 __declspec(dllimport) void WINAPI
|
Chris@16
|
57 GetSystemTimeAsFileTime(FILETIME_* lpFileTime);
|
Chris@16
|
58 #endif
|
Chris@16
|
59 __declspec(dllimport) int WINAPI
|
Chris@16
|
60 FileTimeToLocalFileTime(const FILETIME_* lpFileTime,
|
Chris@16
|
61 FILETIME_* lpLocalFileTime);
|
Chris@16
|
62 __declspec(dllimport) void WINAPI
|
Chris@16
|
63 GetSystemTime(SYSTEMTIME_* lpSystemTime);
|
Chris@16
|
64 __declspec(dllimport) int WINAPI
|
Chris@16
|
65 SystemTimeToFileTime(const SYSTEMTIME_* lpSystemTime,
|
Chris@16
|
66 FILETIME_* lpFileTime);
|
Chris@16
|
67 __declspec(dllimport) DWORD_ WINAPI
|
Chris@16
|
68 GetTickCount();
|
Chris@16
|
69 }
|
Chris@16
|
70 #endif
|
Chris@16
|
71
|
Chris@16
|
72 #ifndef BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
Chris@16
|
73 inline void WINAPI GetSystemTimeAsFileTime(FILETIME_* lpFileTime)
|
Chris@16
|
74 {
|
Chris@16
|
75 SYSTEMTIME_ st;
|
Chris@16
|
76 GetSystemTime(&st);
|
Chris@16
|
77 SystemTimeToFileTime(&st, lpFileTime);
|
Chris@16
|
78 }
|
Chris@16
|
79 #endif
|
Chris@16
|
80
|
Chris@16
|
81 }
|
Chris@16
|
82 }
|
Chris@16
|
83 }
|
Chris@16
|
84
|
Chris@16
|
85 #endif // BOOST_DETAIL_WINAPI_TIME_HPP
|