Dein Problem resultiert ein bisschen daraus, dass Delphi/
COM-Interfaces keine Mehrfachvererbung unterstützen. Ansonsten könntest du dir einfach ein "Bündel" von zu unterstützenden Interfaces schnüren. (
siehe auch)
Von deinen Lösungen ist Lösung 1 an dieser Sichtweise nächsten dran.
Eine andere Variante wäre es, eine abstrakte Basisklasse zu erstellen, die alle nötigen Interfaces besitzt. Wenn jemand unbedingt eine andere Basis braucht, muss er halt einen Adapter schreiben.
Ich werd auch erstmal mit Variante 1 starten denk ich, da diese Infos essentiell sind und einem viele Supports() Aufrufe ersparen. Weitere Meinungen sind aber trotzdem gerne Willkommen