144 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			144 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * Copyright 2010 Vicente J. Botet Escriba
							 | 
						||
| 
								 | 
							
								 * Copyright (c) Microsoft Corporation 2014
							 | 
						||
| 
								 | 
							
								 * Copyright 2015, 2017 Andrey Semashev
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Distributed under the Boost Software License, Version 1.0.
							 | 
						||
| 
								 | 
							
								 * See http://www.boost.org/LICENSE_1_0.txt
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_WINAPI_TIME_HPP_INCLUDED_
							 | 
						||
| 
								 | 
							
								#define BOOST_WINAPI_TIME_HPP_INCLUDED_
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <boost/winapi/basic_types.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/winapi/detail/header.hpp>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef BOOST_HAS_PRAGMA_ONCE
							 | 
						||
| 
								 | 
							
								#pragma once
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined( BOOST_USE_WINDOWS_H )
							 | 
						||
| 
								 | 
							
								extern "C" {
							 | 
						||
| 
								 | 
							
								struct _FILETIME;
							 | 
						||
| 
								 | 
							
								struct _SYSTEMTIME;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
							 | 
						||
| 
								 | 
							
								GetSystemTime(::_SYSTEMTIME* lpSystemTime);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef BOOST_HAS_GETSYSTEMTIMEASFILETIME  // Windows CE does not define GetSystemTimeAsFileTime
							 | 
						||
| 
								 | 
							
								BOOST_WINAPI_IMPORT boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
							 | 
						||
| 
								 | 
							
								GetSystemTimeAsFileTime(::_FILETIME* lpSystemTimeAsFileTime);
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
							 | 
						||
| 
								 | 
							
								SystemTimeToFileTime(
							 | 
						||
| 
								 | 
							
								    const ::_SYSTEMTIME* lpSystemTime,
							 | 
						||
| 
								 | 
							
								    ::_FILETIME* lpFileTime);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
							 | 
						||
| 
								 | 
							
								FileTimeToSystemTime(
							 | 
						||
| 
								 | 
							
								    const ::_FILETIME* lpFileTime,
							 | 
						||
| 
								 | 
							
								    ::_SYSTEMTIME* lpSystemTime);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if BOOST_WINAPI_PARTITION_APP_SYSTEM
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
							 | 
						||
| 
								 | 
							
								FileTimeToLocalFileTime(
							 | 
						||
| 
								 | 
							
								    const ::_FILETIME* lpFileTime,
							 | 
						||
| 
								 | 
							
								    ::_FILETIME* lpLocalFileTime);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
							 | 
						||
| 
								 | 
							
								LocalFileTimeToFileTime(
							 | 
						||
| 
								 | 
							
								    const ::_FILETIME* lpLocalFileTime,
							 | 
						||
| 
								 | 
							
								    ::_FILETIME* lpFileTime);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif // BOOST_WINAPI_PARTITION_APP_SYSTEM
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM
							 | 
						||
| 
								 | 
							
								BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::DWORD_ BOOST_WINAPI_WINAPI_CC
							 | 
						||
| 
								 | 
							
								GetTickCount(BOOST_WINAPI_DETAIL_VOID);
							 | 
						||
| 
								 | 
							
								#endif // BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
							 | 
						||
| 
								 | 
							
								BOOST_WINAPI_IMPORT boost::winapi::ULONGLONG_ BOOST_WINAPI_WINAPI_CC
							 | 
						||
| 
								 | 
							
								GetTickCount64(BOOST_WINAPI_DETAIL_VOID);
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								} // extern "C"
							 | 
						||
| 
								 | 
							
								#endif // !defined( BOOST_USE_WINDOWS_H )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace boost {
							 | 
						||
| 
								 | 
							
								namespace winapi {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct BOOST_MAY_ALIAS _FILETIME {
							 | 
						||
| 
								 | 
							
								    DWORD_ dwLowDateTime;
							 | 
						||
| 
								 | 
							
								    DWORD_ dwHighDateTime;
							 | 
						||
| 
								 | 
							
								} FILETIME_, *PFILETIME_, *LPFILETIME_;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct BOOST_MAY_ALIAS _SYSTEMTIME {
							 | 
						||
| 
								 | 
							
								    WORD_ wYear;
							 | 
						||
| 
								 | 
							
								    WORD_ wMonth;
							 | 
						||
| 
								 | 
							
								    WORD_ wDayOfWeek;
							 | 
						||
| 
								 | 
							
								    WORD_ wDay;
							 | 
						||
| 
								 | 
							
								    WORD_ wHour;
							 | 
						||
| 
								 | 
							
								    WORD_ wMinute;
							 | 
						||
| 
								 | 
							
								    WORD_ wSecond;
							 | 
						||
| 
								 | 
							
								    WORD_ wMilliseconds;
							 | 
						||
| 
								 | 
							
								} SYSTEMTIME_, *PSYSTEMTIME_, *LPSYSTEMTIME_;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM
							 | 
						||
| 
								 | 
							
								using ::GetTickCount;
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
							 | 
						||
| 
								 | 
							
								using ::GetTickCount64;
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								BOOST_FORCEINLINE VOID_ GetSystemTime(LPSYSTEMTIME_ lpSystemTime)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    ::GetSystemTime(reinterpret_cast< ::_SYSTEMTIME* >(lpSystemTime));
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								BOOST_FORCEINLINE BOOL_ SystemTimeToFileTime(const SYSTEMTIME_* lpSystemTime, FILETIME_* lpFileTime)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    return ::SystemTimeToFileTime(reinterpret_cast< const ::_SYSTEMTIME* >(lpSystemTime), reinterpret_cast< ::_FILETIME* >(lpFileTime));
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								BOOST_FORCEINLINE BOOL_ FileTimeToSystemTime(const FILETIME_* lpFileTime, SYSTEMTIME_* lpSystemTime)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    return ::FileTimeToSystemTime(reinterpret_cast< const ::_FILETIME* >(lpFileTime), reinterpret_cast< ::_SYSTEMTIME* >(lpSystemTime));
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if BOOST_WINAPI_PARTITION_APP_SYSTEM
							 | 
						||
| 
								 | 
							
								BOOST_FORCEINLINE BOOL_ FileTimeToLocalFileTime(const FILETIME_* lpFileTime, FILETIME_* lpLocalFileTime)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    return ::FileTimeToLocalFileTime(reinterpret_cast< const ::_FILETIME* >(lpFileTime), reinterpret_cast< ::_FILETIME* >(lpLocalFileTime));
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								BOOST_FORCEINLINE BOOL_ LocalFileTimeToFileTime(const FILETIME_* lpLocalFileTime, FILETIME_* lpFileTime)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    return ::LocalFileTimeToFileTime(reinterpret_cast< const ::_FILETIME* >(lpLocalFileTime), reinterpret_cast< ::_FILETIME* >(lpFileTime));
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#endif // BOOST_WINAPI_PARTITION_APP_SYSTEM
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined( BOOST_HAS_GETSYSTEMTIMEASFILETIME )
							 | 
						||
| 
								 | 
							
								BOOST_FORCEINLINE VOID_ GetSystemTimeAsFileTime(LPFILETIME_ lpSystemTimeAsFileTime)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    ::GetSystemTimeAsFileTime(reinterpret_cast< ::_FILETIME* >(lpSystemTimeAsFileTime));
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								// Windows CE does not define GetSystemTimeAsFileTime
							 | 
						||
| 
								 | 
							
								BOOST_FORCEINLINE VOID_ GetSystemTimeAsFileTime(FILETIME_* lpFileTime)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    boost::winapi::SYSTEMTIME_ st;
							 | 
						||
| 
								 | 
							
								    boost::winapi::GetSystemTime(&st);
							 | 
						||
| 
								 | 
							
								    boost::winapi::SystemTimeToFileTime(&st, lpFileTime);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <boost/winapi/detail/footer.hpp>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif // BOOST_WINAPI_TIME_HPP_INCLUDED_
							 |