Struct IUnknown
pub struct IUnknown(/* private fields */);Expand description
Base interface for all COM interfaces.
All COM interfaces (and thus WinRT classes and interfaces) implement IUnknown under the hood to provide reference-counted lifetime management as well as the ability to query for additional interfaces that the object may implement.
Trait Implementations§
§impl From<&IInspectable> for &IUnknown
 
impl From<&IInspectable> for &IUnknown
§fn from(value: &IInspectable) -> Self
 
fn from(value: &IInspectable) -> Self
Converts to this type from the input type.
§impl From<IInspectable> for IUnknown
 
impl From<IInspectable> for IUnknown
§fn from(value: IInspectable) -> Self
 
fn from(value: IInspectable) -> Self
Converts to this type from the input type.
§impl Interface for IUnknown
 
impl Interface for IUnknown
§fn as_raw(&self) -> *mut c_void
 
fn as_raw(&self) -> *mut c_void
Returns the raw COM interface pointer. The resulting pointer continues to be owned by the 
Interface implementation.§fn into_raw(self) -> *mut c_void
 
fn into_raw(self) -> *mut c_void
Returns the raw COM interface pointer and releases ownership. It the caller’s responsibility to release the COM interface pointer.
§unsafe fn from_raw_borrowed(raw: &*mut c_void) -> Option<&Self>
 
unsafe fn from_raw_borrowed(raw: &*mut c_void) -> Option<&Self>
§fn cast<T: Interface>(&self) -> Result<T>
 
fn cast<T: Interface>(&self) -> Result<T>
Attempts to cast the current interface to another interface using 
QueryInterface. Read more§fn cast_to_any<T>(&self) -> Result<&dyn Any>
 
fn cast_to_any<T>(&self) -> Result<&dyn Any>
This casts the given COM interface to [
&dyn Any]. Read more§fn cast_object_ref<T>(&self) -> Result<&T::Outer>
 
fn cast_object_ref<T>(&self) -> Result<&T::Outer>
This casts the given COM interface to [
&dyn Any]. It returns a reference to the “outer”
object, e.g. &MyApp_Impl, not the inner &MyApp object. Read more§fn cast_object<T>(&self) -> Result<ComObject<T>>
 
fn cast_object<T>(&self) -> Result<ComObject<T>>
This casts the given COM interface to [
&dyn Any]. It returns a reference to the “outer”
object, e.g. MyApp_Impl, not the inner MyApp object. Read more§unsafe fn query(&self, iid: *const GUID, interface: *mut *mut c_void) -> HRESULT
 
unsafe fn query(&self, iid: *const GUID, interface: *mut *mut c_void) -> HRESULT
Call 
QueryInterface on this interface Read more§fn to_ref(&self) -> InterfaceRef<'_, Self>
 
fn to_ref(&self) -> InterfaceRef<'_, Self>
Creates an 
InterfaceRef for this reference. The InterfaceRef tracks lifetimes statically,
and eliminates the need for dynamic reference count adjustments (AddRef/Release).impl Eq for IUnknown
Auto Trait Implementations§
impl Freeze for IUnknown
impl RefUnwindSafe for IUnknown
impl !Send for IUnknown
impl !Sync for IUnknown
impl Unpin for IUnknown
impl UnwindSafe for IUnknown
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more