Trait windows_core::Interface
pub unsafe trait Interface: Sized {
type Vtable;
// Provided methods
fn as_raw(&self) -> *mut c_void { ... }
fn into_raw(self) -> *mut c_void { ... }
unsafe fn from_raw(raw: *mut c_void) -> Self { ... }
unsafe fn from_raw_borrowed(raw: &*mut c_void) -> Option<&Self> { ... }
}
Expand description
Provides low-level access to an interface vtable.
This trait is automatically implemented by the generated bindings and should not be implemented manually.
Safety
Required Associated Types§
type Vtable
Provided Methods§
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(raw: *mut c_void) -> Self
unsafe fn from_raw(raw: *mut c_void) -> Self
Creates an Interface
by taking ownership of the raw
COM interface pointer.
Safety
The raw
pointer must be owned by the caller and represent a valid COM interface pointer. In other words,
it must point to a vtable beginning with the IUnknown
function pointers and match the vtable of Interface
.
unsafe fn from_raw_borrowed(raw: &*mut c_void) -> Option<&Self>
unsafe fn from_raw_borrowed(raw: &*mut c_void) -> Option<&Self>
Creates an Interface
that is valid so long as the raw
COM interface pointer is valid.
Safety
The raw
pointer must be a valid COM interface pointer. In other words, it must point to a vtable
beginning with the IUnknown
function pointers and match the vtable of Interface
.