#![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! { IDXGIDeviceSubObject: "3d3e0379-f9de-4d58-bb6c-18d62992f1a6";
}
impl dxgi_IDXGIObject for IDXGIDeviceSubObject {}
impl dxgi_IDXGIDeviceSubObject for IDXGIDeviceSubObject {}
pub trait dxgi_IDXGIDeviceSubObject: dxgi_IDXGIObject {
#[must_use]
fn GetDevice<T>(&self) -> HrResult<T>
where
T: ole_IUnknown,
{
let mut queried = unsafe { T::null() };
HrRet(unsafe {
(vt::<IDXGIDeviceSubObjectVT>(self).GetDevice)(
self.ptr(),
pcvoid(&T::IID),
queried.as_mut(),
)
}).to_hrresult()
.map(|_| queried)
}
}