1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#![allow(non_snake_case)]
use crate::aliases::WinResult;
use crate::ffi::user32;
use crate::funcs::GetLastError;
use crate::privs::bool_to_winresult;
pub_struct_handle! {
HICON
}
impl HICON {
pub fn CopyIcon(self) -> WinResult<HICON> {
unsafe { user32::CopyIcon(self.ptr).as_mut() }
.map(|ptr| Self { ptr })
.ok_or_else(|| GetLastError())
}
pub fn DestroyIcon(self) -> WinResult<()> {
bool_to_winresult(unsafe { user32::DestroyIcon(self.ptr) })
}
}