#![warn(clippy::undocumented_unsafe_blocks)]
use crate::AsSafe;
use winapi::um::unknwnbase::IUnknown;
#[derive(Clone)] #[repr(transparent)]
pub struct Unknown(pub(crate) mcom::Rc<IUnknown>);
convert!(unsafe Unknown, IUnknown);
unsafe impl AsSafe<IUnknown> for Unknown { fn as_safe(&self) -> &IUnknown { &*self.0 } }
#[allow(dead_code)] pub(crate) fn drop_final(unk: impl AsSafe<IUnknown>) {
let unk = unk.as_safe();
let rc = unsafe {
unk.AddRef();
unk.Release()
};
debug_assert_eq!(1, rc, "this wasn't the final object");
}