Interesting. Based on my understanding, it seems that they solve the biggest hurdle in cleanly implementing Qt bindings - the lack of inheritance - by using macros.

On a small project of mine, macros were also my choice for working around lack of inheritance; I wonder how this scale on large(r) projects, including this one.

The Rust Windows API provides a cast method to jump through the inheritance hierarchy.

Previously, additionally, all base class methods were generated for derived classes (structs). This was removed due to high compile times

https://github.com/microsoft/windows-rs