Allow attributing method signatures in a way that affects generated COM interfaces without the need to introduce these attributes in the trait impl.
Currently the VTable generation is tied to the com_impl. There's a chance that can be removed by generating the type conversion functions as generic functions:
extern "system" fn __IFoo_Automation_do_stuff<TStruct>(vtbl: *const *const VTable, params...)
where TStruct: ComInterface<IFoo>
{
let instance_ptr = vtbl - <TStruct as ComInterface<IFoo>>::offset();
let instance : &TStruct = &*vtbl;
...
}
Getting rid of
#[com_impl]
attribute would...Currently the VTable generation is tied to the
com_impl
. There's a chance that can be removed by generating the type conversion functions as generic functions: