Нет стандартной службы каталогизации COM, о которой я знаю, хотя COM + может что-то иметь. Взгляните на HKCR\Component Categories
, вы найдете GUID типа компонентов. Подобно 0DE86A57-2BAA-11CF-A229-00AA003D7352, описанному как «Класс реализует IPersistPropertyBag». Coclass объявляет эту же направляющую в своем CLSID\{guid}\Implemented Categories
. Это похоже на хороший сценарий для вашего сценария.
Вам нужно будет выбрать гид и сообщить об этом авторам компонентов. Они должны написать ключ реализованных категорий со своим установщиком.
Это все еще довольно неловкое затруднение с клавишами CLSID, вы не хотите делать это очень часто. Но, по крайней мере, вам не придется загружать библиотеки DLL для обнаружения интерфейсов, которые могут иметь всевозможные неприятные побочные эффекты. Я бы порекомендовал в вашем меню «Параметры» диалоговое окно, позволяющее пользователю начать сканирование и выбрать, а также хороший способ отключить некорректно работающие компоненты.
Кстати, проблема поддержки, которую это может вызвать, обычно заставляет приложения работать из «одобренного» списка.