1 /** 2 * This file is part of the mingw-w64 runtime package. 3 * No warranty is given; refer to the file DISCLAIMER within this package. 4 */ 5 #ifndef _TIMEZONEAPI_H_ 6 #define _TIMEZONEAPI_H_ 7 8 #include <apiset.h> 9 #include <apisetcconv.h> 10 #include <minwindef.h> 11 #include <minwinbase.h> 12 13 #ifdef __cplusplus 14 extern "C" { 15 #endif 16 17 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) 18 19 #define TIME_ZONE_ID_INVALID ((DWORD)0xffffffff) 20 21 typedef struct _TIME_ZONE_INFORMATION { 22 LONG Bias; 23 WCHAR StandardName[32]; 24 SYSTEMTIME StandardDate; 25 LONG StandardBias; 26 WCHAR DaylightName[32]; 27 SYSTEMTIME DaylightDate; 28 LONG DaylightBias; 29 } TIME_ZONE_INFORMATION,*PTIME_ZONE_INFORMATION,*LPTIME_ZONE_INFORMATION; 30 31 typedef struct _TIME_DYNAMIC_ZONE_INFORMATION { 32 LONG Bias; 33 WCHAR StandardName[32]; 34 SYSTEMTIME StandardDate; 35 LONG StandardBias; 36 WCHAR DaylightName[32]; 37 SYSTEMTIME DaylightDate; 38 LONG DaylightBias; 39 WCHAR TimeZoneKeyName[128]; 40 BOOLEAN DynamicDaylightTimeDisabled; 41 } DYNAMIC_TIME_ZONE_INFORMATION,*PDYNAMIC_TIME_ZONE_INFORMATION; 42 43 WINBASEAPI WINBOOL WINAPI SystemTimeToTzSpecificLocalTime (CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation, CONST SYSTEMTIME *lpUniversalTime, LPSYSTEMTIME lpLocalTime); 44 WINBASEAPI WINBOOL WINAPI TzSpecificLocalTimeToSystemTime (CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation, CONST SYSTEMTIME *lpLocalTime, LPSYSTEMTIME lpUniversalTime); 45 WINBASEAPI WINBOOL WINAPI FileTimeToSystemTime (CONST FILETIME *lpFileTime, LPSYSTEMTIME lpSystemTime); 46 WINBASEAPI WINBOOL WINAPI SystemTimeToFileTime (CONST SYSTEMTIME *lpSystemTime, LPFILETIME lpFileTime); 47 WINBASEAPI DWORD WINAPI GetTimeZoneInformation (LPTIME_ZONE_INFORMATION lpTimeZoneInformation); 48 #if _WIN32_WINNT >= 0x0600 49 WINBASEAPI DWORD WINAPI GetDynamicTimeZoneInformation (PDYNAMIC_TIME_ZONE_INFORMATION pTimeZoneInformation); 50 #endif 51 #if _WIN32_WINNT >= 0x0601 52 WINBOOL WINAPI GetTimeZoneInformationForYear (USHORT wYear, PDYNAMIC_TIME_ZONE_INFORMATION pdtzi, LPTIME_ZONE_INFORMATION ptzi); 53 #endif 54 #if _WIN32_WINNT >= 0x0602 55 WINBASEAPI DWORD WINAPI EnumDynamicTimeZoneInformation (CONST DWORD dwIndex, PDYNAMIC_TIME_ZONE_INFORMATION lpTimeZoneInformation); 56 WINBASEAPI DWORD WINAPI GetDynamicTimeZoneInformationEffectiveYears (CONST PDYNAMIC_TIME_ZONE_INFORMATION lpTimeZoneInformation, LPDWORD FirstYear, LPDWORD LastYear); 57 WINBASEAPI WINBOOL WINAPI SystemTimeToTzSpecificLocalTimeEx (CONST DYNAMIC_TIME_ZONE_INFORMATION *lpTimeZoneInformation, CONST SYSTEMTIME *lpUniversalTime, LPSYSTEMTIME lpLocalTime); 58 WINBASEAPI WINBOOL WINAPI TzSpecificLocalTimeToSystemTimeEx (CONST DYNAMIC_TIME_ZONE_INFORMATION *lpTimeZoneInformation, CONST SYSTEMTIME *lpLocalTime, LPSYSTEMTIME lpUniversalTime); 59 #endif 60 61 #endif 62 63 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) 64 WINBASEAPI WINBOOL WINAPI SetTimeZoneInformation (CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation); 65 #if _WIN32_WINNT >= 0x0600 66 WINBASEAPI WINBOOL WINAPI SetDynamicTimeZoneInformation (CONST DYNAMIC_TIME_ZONE_INFORMATION *lpTimeZoneInformation); 67 #endif 68 #endif 69 70 #ifdef __cplusplus 71 } 72 #endif 73 #endif 74