Chris@16: // time.hpp --------------------------------------------------------------// Chris@16: Chris@16: // Copyright 2010 Vicente J. Botet Escriba Chris@101: // Copyright (c) Microsoft Corporation 2014 Chris@16: Chris@16: // Distributed under the Boost Software License, Version 1.0. Chris@16: // See http://www.boost.org/LICENSE_1_0.txt Chris@16: Chris@16: Chris@16: #ifndef BOOST_DETAIL_WINAPI_TIME_HPP Chris@16: #define BOOST_DETAIL_WINAPI_TIME_HPP Chris@16: Chris@16: #include Chris@101: #include Chris@16: Chris@16: #ifdef BOOST_HAS_PRAGMA_ONCE Chris@16: #pragma once Chris@16: #endif Chris@16: Chris@16: namespace boost { Chris@16: namespace detail { Chris@16: namespace winapi { Chris@101: Chris@16: #if defined( BOOST_USE_WINDOWS_H ) Chris@101: Chris@16: typedef FILETIME FILETIME_; Chris@16: typedef PFILETIME PFILETIME_; Chris@16: typedef LPFILETIME LPFILETIME_; Chris@16: Chris@16: typedef SYSTEMTIME SYSTEMTIME_; Chris@16: typedef SYSTEMTIME* PSYSTEMTIME_; Chris@16: Chris@16: #ifdef BOOST_HAS_GETSYSTEMTIMEASFILETIME // Windows CE does not define GetSystemTimeAsFileTime Chris@16: using ::GetSystemTimeAsFileTime; Chris@16: #endif Chris@101: #if BOOST_PLAT_WINDOWS_DESKTOP Chris@16: using ::FileTimeToLocalFileTime; Chris@101: #endif Chris@16: using ::GetSystemTime; Chris@16: using ::SystemTimeToFileTime; Chris@101: Chris@101: #if BOOST_PLAT_WINDOWS_DESKTOP Chris@16: using ::GetTickCount; Chris@101: #endif Chris@101: #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 Chris@101: using ::GetTickCount64; Chris@101: #endif Chris@16: Chris@16: #else Chris@101: Chris@16: extern "C" { Chris@16: typedef struct _FILETIME { Chris@16: DWORD_ dwLowDateTime; Chris@16: DWORD_ dwHighDateTime; Chris@16: } FILETIME_, *PFILETIME_, *LPFILETIME_; Chris@16: Chris@16: typedef struct _SYSTEMTIME { Chris@16: WORD_ wYear; Chris@16: WORD_ wMonth; Chris@16: WORD_ wDayOfWeek; Chris@16: WORD_ wDay; Chris@16: WORD_ wHour; Chris@16: WORD_ wMinute; Chris@16: WORD_ wSecond; Chris@16: WORD_ wMilliseconds; Chris@16: } SYSTEMTIME_, *PSYSTEMTIME_; Chris@16: Chris@16: #ifdef BOOST_HAS_GETSYSTEMTIMEASFILETIME // Windows CE does not define GetSystemTimeAsFileTime Chris@16: __declspec(dllimport) void WINAPI Chris@16: GetSystemTimeAsFileTime(FILETIME_* lpFileTime); Chris@16: #endif Chris@16: __declspec(dllimport) int WINAPI Chris@16: FileTimeToLocalFileTime(const FILETIME_* lpFileTime, Chris@16: FILETIME_* lpLocalFileTime); Chris@16: __declspec(dllimport) void WINAPI Chris@16: GetSystemTime(SYSTEMTIME_* lpSystemTime); Chris@16: __declspec(dllimport) int WINAPI Chris@16: SystemTimeToFileTime(const SYSTEMTIME_* lpSystemTime, Chris@16: FILETIME_* lpFileTime); Chris@101: #if BOOST_PLAT_WINDOWS_DESKTOP Chris@16: __declspec(dllimport) DWORD_ WINAPI Chris@16: GetTickCount(); Chris@101: #endif Chris@101: #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 Chris@101: __declspec(dllimport) ULONGLONG_ WINAPI Chris@101: GetTickCount64(); Chris@101: #endif Chris@16: } Chris@101: Chris@16: #endif Chris@16: Chris@16: #ifndef BOOST_HAS_GETSYSTEMTIMEASFILETIME Chris@16: inline void WINAPI GetSystemTimeAsFileTime(FILETIME_* lpFileTime) Chris@16: { Chris@16: SYSTEMTIME_ st; Chris@16: GetSystemTime(&st); Chris@16: SystemTimeToFileTime(&st, lpFileTime); Chris@16: } Chris@16: #endif Chris@16: Chris@16: } Chris@16: } Chris@16: } Chris@16: Chris@16: #endif // BOOST_DETAIL_WINAPI_TIME_HPP