#![allow(non_camel_case_types, non_snake_case)]
use crate::co;
use crate::decl::*;
#[repr(C)]
pub struct VS_FIXEDFILEINFO {
dwSignature: u32,
pub dwStrucVersion: u32,
dwFileVersionMS: u32,
dwFileVersionLS: u32,
dwProductVersionMS: u32,
dwProductVersionLS: u32,
pub dwFileFlagsMask: co::VS_FF,
pub dwFileFlags: co::VS_FF,
pub dwFileOS: co::VOS,
pub dwFileType: co::VFT,
pub dwFileSubtype: co::VFT2,
dwFileDateMS: u32,
dwFileDateLS: u32,
}
impl Default for VS_FIXEDFILEINFO {
fn default() -> Self {
let mut obj = unsafe { std::mem::zeroed::<Self>() };
obj.dwSignature = 0xfeef_04bd;
obj
}
}
impl VS_FIXEDFILEINFO {
#[must_use]
pub const fn dwFileVersion(&self) -> [u16; 4] {
[HIWORD(self.dwFileVersionMS), LOWORD(self.dwFileVersionMS),
HIWORD(self.dwFileVersionLS), LOWORD(self.dwFileVersionLS)]
}
pub fn set_dwFileVersion(&mut self, val: [u16; 4]) {
self.dwFileVersionMS = MAKEDWORD(val[1], val[0]);
self.dwFileVersionLS = MAKEDWORD(val[3], val[2]);
}
#[must_use]
pub const fn dwProductVersion(&self) -> [u16; 4] {
[HIWORD(self.dwProductVersionMS), LOWORD(self.dwProductVersionMS),
HIWORD(self.dwProductVersionLS), LOWORD(self.dwProductVersionLS)]
}
pub fn set_dwProductVersion(&mut self, val: [u16; 4]) {
self.dwProductVersionMS = MAKEDWORD(val[1], val[0]);
self.dwProductVersionLS = MAKEDWORD(val[3], val[2]);
}
#[must_use]
pub const fn dwFileDate(&self) -> u64 {
MAKEQWORD(self.dwFileDateLS, self.dwFileDateMS)
}
pub fn set_dwFileDate(&mut self, val: u64) {
self.dwFileDateLS = LODWORD(val);
self.dwFileDateMS = HIDWORD(val);
}
}