use windows::Win32::{Foundation::*, UI::WindowsAndMessaging::*}; pub(crate) trait HiLoWord { fn hiword(&self) -> u16; fn loword(&self) -> u16; fn signed_hiword(&self) -> i16; fn signed_loword(&self) -> i16; } impl HiLoWord for WPARAM { fn hiword(&self) -> u16 { ((self.0 >> 16) & 0xFFFF) as u16 } fn loword(&self) -> u16 { (self.0 & 0xFFFF) as u16 } fn signed_hiword(&self) -> i16 { ((self.0 >> 16) & 0xFFFF) as i16 } fn signed_loword(&self) -> i16 { (self.0 & 0xFFFF) as i16 } } impl HiLoWord for LPARAM { fn hiword(&self) -> u16 { ((self.0 >> 16) & 0xFFFF) as u16 } fn loword(&self) -> u16 { (self.0 & 0xFFFF) as u16 } fn signed_hiword(&self) -> i16 { ((self.0 >> 16) & 0xFFFF) as i16 } fn signed_loword(&self) -> i16 { (self.0 & 0xFFFF) as i16 } }