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 14extern "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