[go: up one dir, main page]

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§

Provided Methods§

source

fn as_raw(&self) -> *mut c_void

Returns the raw COM interface pointer. The resulting pointer continues to be owned by the Interface implementation.

source

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.

source

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.

source

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.

Implementors§

source§

impl Interface for IInspectable

§

type Vtable = IInspectable_Vtbl

source§

impl Interface for IUnknown

§

type Vtable = IUnknown_Vtbl