#![allow(non_camel_case_types, non_snake_case)]
use crate::decl::*;
use crate::dxgi::vts::*;
use crate::kernel::privs::*;
use crate::ole::privs::*;
use crate::prelude::*;
com_interface! { IDXGIKeyedMutex: "9d8e1289-d7b3-465f-8126-250e349af85d";
}
impl dxgi_IDXGIObject for IDXGIKeyedMutex {}
impl dxgi_IDXGIDeviceSubObject for IDXGIKeyedMutex {}
impl dxgi_IDXGIKeyedMutex for IDXGIKeyedMutex {}
pub trait dxgi_IDXGIKeyedMutex: dxgi_IDXGIDeviceSubObject {
fn AcquireSync(&self, key: u64, dw_milliseconds: Option<u32>) -> HrResult<()> {
HrRet(unsafe {
(vt::<IDXGIKeyedMutexVT>(self).AcquireSync)(
self.ptr(),
key,
dw_milliseconds.unwrap_or(INFINITE),
)
}).to_hrresult()
}
fn ReleaseSync(&self, key: u64) -> HrResult<()> {
HrRet(unsafe { (vt::<IDXGIKeyedMutexVT>(self).ReleaseSync)(self.ptr(), key) }).to_hrresult()
}
}