Struct windows_core::IUnknown
pub struct IUnknown(/* private fields */);
Expand description
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 From<IUnknown> for PROPVARIANT
impl From<IUnknown> for PROPVARIANT
§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.
§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 TryFrom<&PROPVARIANT> for IUnknown
impl TryFrom<&PROPVARIANT> for IUnknown
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)