1 #![allow(non_snake_case, non_upper_case_globals, non_camel_case_types, dead_code, clippy::all)] 2 windows_targets::link!("kernel32.dll" "system" fn GetTimeZoneInformationForYear(wyear : u16, pdtzi : *const DYNAMIC_TIME_ZONE_INFORMATION, ptzi : *mut TIME_ZONE_INFORMATION) -> BOOL); 3 windows_targets::link!("kernel32.dll" "system" fn SystemTimeToFileTime(lpsystemtime : *const SYSTEMTIME, lpfiletime : *mut FILETIME) -> BOOL); 4 windows_targets::link!("kernel32.dll" "system" fn SystemTimeToTzSpecificLocalTime(lptimezoneinformation : *const TIME_ZONE_INFORMATION, lpuniversaltime : *const SYSTEMTIME, lplocaltime : *mut SYSTEMTIME) -> BOOL); 5 windows_targets::link!("kernel32.dll" "system" fn TzSpecificLocalTimeToSystemTime(lptimezoneinformation : *const TIME_ZONE_INFORMATION, lplocaltime : *const SYSTEMTIME, lpuniversaltime : *mut SYSTEMTIME) -> BOOL); 6 pub type BOOL = i32; 7 pub type BOOLEAN = u8; 8 #[repr(C)] 9 #[derive(Clone, Copy)] 10 pub struct DYNAMIC_TIME_ZONE_INFORMATION { 11 pub Bias: i32, 12 pub StandardName: [u16; 32], 13 pub StandardDate: SYSTEMTIME, 14 pub StandardBias: i32, 15 pub DaylightName: [u16; 32], 16 pub DaylightDate: SYSTEMTIME, 17 pub DaylightBias: i32, 18 pub TimeZoneKeyName: [u16; 128], 19 pub DynamicDaylightTimeDisabled: BOOLEAN, 20 } 21 #[repr(C)] 22 #[derive(Clone, Copy)] 23 pub struct FILETIME { 24 pub dwLowDateTime: u32, 25 pub dwHighDateTime: u32, 26 } 27 #[repr(C)] 28 #[derive(Clone, Copy)] 29 pub struct SYSTEMTIME { 30 pub wYear: u16, 31 pub wMonth: u16, 32 pub wDayOfWeek: u16, 33 pub wDay: u16, 34 pub wHour: u16, 35 pub wMinute: u16, 36 pub wSecond: u16, 37 pub wMilliseconds: u16, 38 } 39 #[repr(C)] 40 #[derive(Clone, Copy)] 41 pub struct TIME_ZONE_INFORMATION { 42 pub Bias: i32, 43 pub StandardName: [u16; 32], 44 pub StandardDate: SYSTEMTIME, 45 pub StandardBias: i32, 46 pub DaylightName: [u16; 32], 47 pub DaylightDate: SYSTEMTIME, 48 pub DaylightBias: i32, 49 } 50