Перечисление всех объектов реализации IDispatch на машине - PullRequest
0 голосов
/ 18 ноября 2009

Я бы хотел перечислить все объекты, поддерживающие IDispatch на машине. На данный момент мне нужно знать, что такое идентификатор класса или идентификатор программы, но для проверки моей машины я хотел бы знать, могу ли я просто перечислить все объекты, реализующие IDispatch.

Возможно ли это вообще?

Любая помощь будет высоко ценится:)

1 Ответ

1 голос
/ 18 ноября 2009

Это очень странный запрос. Трубка в условии «все». Простого перечисления с помощью ключа HKCR \ Typelib и LoadTypeLib () недостаточно, для публикации библиотеки типов COM-сервер не требуется. На самом деле вам придется CoCreateInstance () coclass и QueryInterface для IDispatch. Это не только медленно, но и рискованно.

Возможно, вы получите лучший ответ, если объясните, почему на самом деле вы собираетесь делать что-то подобное. Вызов IDispatch :: Invoke () без какого-либо представления о том, что означают аргументы или какими могут быть побочные эффекты, является рецептом катастрофы. Держитесь подальше от имен методов, таких как "ReformatDrive".

...