#![allow(non_camel_case_types, non_snake_case)]
use crate::co;
use crate::decl::*;
use crate::dwm::ffi;
use crate::kernel::privs::*;
use crate::ole::privs::*;
impl HWND {
pub fn DwmExtendFrameIntoClientArea(&self, margins_inset: &MARGINS) -> HrResult<()> {
HrRet(unsafe { ffi::DwmExtendFrameIntoClientArea(self.ptr(), pcvoid(margins_inset)) })
.to_hrresult()
}
pub fn DwmGetWindowAttribute(&self, attribute: co::DWMWA) -> HrResult<DwmAttr> {
let mut buf_u32 = 0u32;
let mut buf_rc = RECT::new();
let (ptr, sz) = DwmAttr::ptr_sz_of_flag(attribute, &mut buf_u32, &mut buf_rc);
HrRet(unsafe { ffi::DwmGetWindowAttribute(self.ptr(), attribute.raw(), ptr, sz) })
.to_hrresult()
.map(|_| DwmAttr::from_raw(attribute, buf_u32, buf_rc))
}
pub fn DwmInvalidateIconicBitmaps(&self) -> HrResult<()> {
HrRet(unsafe { ffi::DwmInvalidateIconicBitmaps(self.ptr()) }).to_hrresult()
}
pub fn DwmModifyPreviousDxFrameDuration(
&self,
num_refreshes: i32,
relative_to_current: bool,
) -> HrResult<()> {
HrRet(unsafe {
ffi::DwmModifyPreviousDxFrameDuration(
self.ptr(),
num_refreshes,
relative_to_current as _,
)
})
.to_hrresult()
}
pub fn DwmSetIconicLivePreviewBitmap(
&self,
hbmp: HBITMAP,
pt_client: Option<POINT>,
sit_flags: Option<co::DWM_SIT>,
) -> HrResult<()> {
HrRet(unsafe {
ffi::DwmSetIconicLivePreviewBitmap(
self.ptr(),
hbmp.ptr(),
pcvoid_or_null(pt_client.as_ref()),
sit_flags.unwrap_or_default().raw(),
)
})
.to_hrresult()
}
pub fn DwmSetIconicThumbnail(
&self,
hbmp: HBITMAP,
sit_flags: Option<co::DWM_SIT>,
) -> HrResult<()> {
HrRet(unsafe {
ffi::DwmSetIconicThumbnail(self.ptr(), hbmp.ptr(), sit_flags.unwrap_or_default().raw())
})
.to_hrresult()
}
pub fn DwmSetWindowAttribute(&self, attribute: DwmAttr) -> HrResult<()> {
let mut buf_u32 = 0u32;
let mut buf_rc = RECT::new();
HrRet(unsafe {
ffi::DwmSetWindowAttribute(
self.ptr(),
attribute.flag().raw(),
attribute.ptr(&mut buf_u32, &mut buf_rc),
attribute.sz(),
)
})
.to_hrresult()
}
}