in cppwinrt/component_writers.h [211:252]
static void write_component_interfaces(writer& w, TypeDef const& type)
{
bool const fastabi = has_fastabi(type);
for (auto&&[interface_name, info] : get_interfaces(w, type))
{
if (!info.base && !info.is_default && !is_always_disabled(info.type))
{
if (!fastabi || !info.fastabi)
{
w.write(", @", interface_name);
}
}
}
if (has_composable_constructors(w, type))
{
w.write(", composable");
}
auto base_type = get_base_class(type);
if (!base_type)
{
return;
}
if (settings.component_filter.includes(base_type))
{
return;
}
w.write(", composing");
for (auto&&[interface_name, info] : get_interfaces(w, base_type))
{
if (info.overridable && !is_always_disabled(info.type))
{
w.write(", @", interface_name);
}
}
}