Derive Macro ComImpl

Source
#[derive(ComImpl)]
{
    // Attributes available to this derive:
    #[interfaces]
}
Expand description

#[derive(ComImpl)]

Automatically implements reference counting for your COM object, creating a pointer via Box::into_raw and deallocating with Box::from_raw. A private inherent method named create_raw is added to your type that takes all of your struct members except the vtable and refcount as parameters in declaration order.

ยงAdditional attributes:

#[interfaces(ISome, IThing)]

  • Specifies the COM interfaces that this type should respond to in QueryInterface. IUnknown is included implicitly. If this attribute is not specified it will be assumed that the only types responded to are IUnknown and the type specified in the VTable.