Rémi Bernon (@rbernon) commented about tools/widl/header.c:
type_t *iface = type, *async_iface;
if (type_get_type(type) == TYPE_DELEGATE) iface = type_delegate_get_iface(iface); + else /* TYPE_INTERFACE */ + { + if (iface->written) return; + if (iface->details.iface && iface->details.iface->inherit && + type_iface_get_inherit(iface->details.iface->inherit) /* skip IUnknown */) + write_type(header, type->details.iface->inherit, true);
It might be more interesting to only extract the interface specific bits into a write_interface helper instead, as there's already some helpers for other kind of types, and as inherited type can only be an interface. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/8500#note_108744