Home | History | Annotate | Download | only in include
      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