@dascandy In COM land this is normally done with code rather than data; IUnknown::QueryInterface gets passed the GUID of the desired type, and the implementer of the CoClass has a switch for the GUIDs they know about, and a static_cast. (Because it is code there are some funny edge cases like tear-offs that are kind of irrelevant now) There is COM impact in the vtbl layout but not in the RTTI data because COM doesn't use RTTI.