winsafe\user\handles/
hmonitor.rs1#![allow(non_camel_case_types, non_snake_case)]
2
3use crate::co;
4use crate::decl::*;
5use crate::kernel::privs::*;
6use crate::user::ffi;
7
8handle! { HMONITOR;
9 }
12
13impl HMONITOR {
14 pub fn GetMonitorInfo(&self) -> SysResult<MONITORINFOEX> {
17 let mut mi = MONITORINFOEX::default();
18 BoolRet(unsafe { ffi::GetMonitorInfoW(self.ptr(), pvoid(&mut mi)) })
19 .to_sysresult()
20 .map(|_| mi)
21 }
22
23 #[must_use]
26 pub fn MonitorFromPoint(pt: POINT, flags: co::MONITOR) -> HMONITOR {
27 unsafe { HMONITOR::from_ptr(ffi::MonitorFromPoint(pt.x, pt.y, flags.raw())) }
28 }
29
30 #[must_use]
33 pub fn MonitorFromRect(rc: RECT, flags: co::MONITOR) -> HMONITOR {
34 unsafe { HMONITOR::from_ptr(ffi::MonitorFromRect(pcvoid(&rc), flags.raw())) }
35 }
36}