Trait windows::core::Interface

pub unsafe trait Interface: Vtable {
    const IID: GUID;

    fn cast<T: Interface>(&self) -> Result<T> { ... }
    fn downgrade(&self) -> Result<Weak<Self>> { ... }
Expand description

Provides low-level access to a COM interface.

This trait is automatically implemented by the generated bindings and should not be implemented manually.


It is only safe to implement this trait if the implementing type is a valid COM interface pointer meaning the following criteria are met:

  • its in-memory representation is equal to NonNull<NonNull<Self::VTable>>
  • the vtable is correctly structured beginning with the IUnknown function pointers
  • the vtable must be the correct vtable for the supplied IID

Required Associated Constants§

A unique identifier representing this interface.

Provided Methods§

Attempts to cast the current interface to another interface using QueryInterface.

The name cast is preferred to query because there is a WinRT method named query but not one named cast.

Attempts to create a Weak reference to this object.