github.com/searKing/golang/go@v1.2.74/os/signal/cgo/include/boost/winapi/time.hpp (about) 1 /* 2 * Copyright 2010 Vicente J. Botet Escriba 3 * Copyright (c) Microsoft Corporation 2014 4 * Copyright 2015, 2017 Andrey Semashev 5 * 6 * Distributed under the Boost Software License, Version 1.0. 7 * See http://www.boost.org/LICENSE_1_0.txt 8 */ 9 10 #ifndef BOOST_WINAPI_TIME_HPP_INCLUDED_ 11 #define BOOST_WINAPI_TIME_HPP_INCLUDED_ 12 13 #include <boost/winapi/basic_types.hpp> 14 15 #ifdef BOOST_HAS_PRAGMA_ONCE 16 #pragma once 17 #endif 18 19 #if !defined( BOOST_USE_WINDOWS_H ) 20 extern "C" { 21 struct _FILETIME; 22 struct _SYSTEMTIME; 23 24 BOOST_SYMBOL_IMPORT boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC 25 GetSystemTime(::_SYSTEMTIME* lpSystemTime); 26 27 #ifdef BOOST_HAS_GETSYSTEMTIMEASFILETIME // Windows CE does not define GetSystemTimeAsFileTime 28 BOOST_SYMBOL_IMPORT boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC 29 GetSystemTimeAsFileTime(::_FILETIME* lpSystemTimeAsFileTime); 30 #endif 31 32 BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC 33 SystemTimeToFileTime( 34 const ::_SYSTEMTIME* lpSystemTime, 35 ::_FILETIME* lpFileTime); 36 37 BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC 38 FileTimeToSystemTime( 39 const ::_FILETIME* lpFileTime, 40 ::_SYSTEMTIME* lpSystemTime); 41 42 #if BOOST_WINAPI_PARTITION_APP_SYSTEM 43 44 BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC 45 FileTimeToLocalFileTime( 46 const ::_FILETIME* lpFileTime, 47 ::_FILETIME* lpLocalFileTime); 48 49 BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC 50 LocalFileTimeToFileTime( 51 const ::_FILETIME* lpLocalFileTime, 52 ::_FILETIME* lpFileTime); 53 54 #endif // BOOST_WINAPI_PARTITION_APP_SYSTEM 55 56 #if BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM 57 BOOST_SYMBOL_IMPORT boost::winapi::DWORD_ BOOST_WINAPI_WINAPI_CC 58 GetTickCount(BOOST_WINAPI_DETAIL_VOID); 59 #endif // BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM 60 61 #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 62 BOOST_SYMBOL_IMPORT boost::winapi::ULONGLONG_ BOOST_WINAPI_WINAPI_CC 63 GetTickCount64(BOOST_WINAPI_DETAIL_VOID); 64 #endif 65 66 } // extern "C" 67 #endif // !defined( BOOST_USE_WINDOWS_H ) 68 69 namespace boost { 70 namespace winapi { 71 72 typedef struct BOOST_MAY_ALIAS _FILETIME { 73 DWORD_ dwLowDateTime; 74 DWORD_ dwHighDateTime; 75 } FILETIME_, *PFILETIME_, *LPFILETIME_; 76 77 typedef struct BOOST_MAY_ALIAS _SYSTEMTIME { 78 WORD_ wYear; 79 WORD_ wMonth; 80 WORD_ wDayOfWeek; 81 WORD_ wDay; 82 WORD_ wHour; 83 WORD_ wMinute; 84 WORD_ wSecond; 85 WORD_ wMilliseconds; 86 } SYSTEMTIME_, *PSYSTEMTIME_, *LPSYSTEMTIME_; 87 88 #if BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM 89 using ::GetTickCount; 90 #endif 91 #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 92 using ::GetTickCount64; 93 #endif 94 95 BOOST_FORCEINLINE VOID_ GetSystemTime(LPSYSTEMTIME_ lpSystemTime) 96 { 97 ::GetSystemTime(reinterpret_cast< ::_SYSTEMTIME* >(lpSystemTime)); 98 } 99 100 BOOST_FORCEINLINE BOOL_ SystemTimeToFileTime(const SYSTEMTIME_* lpSystemTime, FILETIME_* lpFileTime) 101 { 102 return ::SystemTimeToFileTime(reinterpret_cast< const ::_SYSTEMTIME* >(lpSystemTime), reinterpret_cast< ::_FILETIME* >(lpFileTime)); 103 } 104 105 BOOST_FORCEINLINE BOOL_ FileTimeToSystemTime(const FILETIME_* lpFileTime, SYSTEMTIME_* lpSystemTime) 106 { 107 return ::FileTimeToSystemTime(reinterpret_cast< const ::_FILETIME* >(lpFileTime), reinterpret_cast< ::_SYSTEMTIME* >(lpSystemTime)); 108 } 109 110 #if BOOST_WINAPI_PARTITION_APP_SYSTEM 111 BOOST_FORCEINLINE BOOL_ FileTimeToLocalFileTime(const FILETIME_* lpFileTime, FILETIME_* lpLocalFileTime) 112 { 113 return ::FileTimeToLocalFileTime(reinterpret_cast< const ::_FILETIME* >(lpFileTime), reinterpret_cast< ::_FILETIME* >(lpLocalFileTime)); 114 } 115 116 BOOST_FORCEINLINE BOOL_ LocalFileTimeToFileTime(const FILETIME_* lpLocalFileTime, FILETIME_* lpFileTime) 117 { 118 return ::LocalFileTimeToFileTime(reinterpret_cast< const ::_FILETIME* >(lpLocalFileTime), reinterpret_cast< ::_FILETIME* >(lpFileTime)); 119 } 120 #endif // BOOST_WINAPI_PARTITION_APP_SYSTEM 121 122 #if defined( BOOST_HAS_GETSYSTEMTIMEASFILETIME ) 123 BOOST_FORCEINLINE VOID_ GetSystemTimeAsFileTime(LPFILETIME_ lpSystemTimeAsFileTime) 124 { 125 ::GetSystemTimeAsFileTime(reinterpret_cast< ::_FILETIME* >(lpSystemTimeAsFileTime)); 126 } 127 #else 128 // Windows CE does not define GetSystemTimeAsFileTime 129 BOOST_FORCEINLINE VOID_ GetSystemTimeAsFileTime(FILETIME_* lpFileTime) 130 { 131 boost::winapi::SYSTEMTIME_ st; 132 boost::winapi::GetSystemTime(&st); 133 boost::winapi::SystemTimeToFileTime(&st, lpFileTime); 134 } 135 #endif 136 137 } 138 } 139 140 #endif // BOOST_WINAPI_TIME_HPP_INCLUDED_