Для неординарных вопросов. Если вы опытный программист, попавший в трудную ситуацию, — вам сюда.
Модератор: gaidar
Правила форума
Этот раздел не предназначен для того, чтобы вы адресовали свою проблему профессионалам.
Этот раздел предназначен для профессионалов, которые столкнулись с проблемой и не могут решить ее самостоятельно.
Если вы считаете себя профессионалом, а свою проблему сложной — вам сюда.
Если модератор посчитает, что вы ошиблись, то на первый раз он перенесет ваше сообщение в основной раздел без последствий для автора. Во второй раз тема будет закрыта, а автору будет выписано нарушение. В третий раз автор будет забанен.
-
Antonariy
-
- Повелитель Internet Explorer
-
-
- Сообщения: 4824
- Зарегистрирован: 28.04.2005 (Чт) 14:33
- Откуда: Мимо проходил
-
Antonariy » 01.06.2007 (Пт) 12:45
Есть dll с неким интерфейсом и есть несколько dll с классами, которые его реализуют. Как получить список progid этих классов из системы? Есть ли вообще такая инфа в реестре?
Лучший способ понять что-то самому — объяснить это другому.
-
tyomitch
-
- Пользователь #1352
-
-
- Сообщения: 12822
- Зарегистрирован: 20.10.2002 (Вс) 17:02
- Откуда: חיפה
tyomitch » 01.06.2007 (Пт) 13:29
Нету.
-
keks-n
-
- Доктор VB наук
-
-
- Сообщения: 2509
- Зарегистрирован: 19.09.2005 (Пн) 17:17
- Откуда: г. Москва
-
keks-n » 01.06.2007 (Пт) 13:46
Antonariy
Здесь только перечисление всех библиотек типов, их последовательная загрузка и обход по содержащимся классам. Иначе никак. К тому же, в tlb может не быть указано, что интерфейс поддерживается.
-
tyomitch
-
- Пользователь #1352
-
-
- Сообщения: 12822
- Зарегистрирован: 20.10.2002 (Вс) 17:02
- Откуда: חיפה
tyomitch » 01.06.2007 (Пт) 14:00
К тому же, не у любого класса, зарегистрированного по ProgID, может быть TLB.
-
keks-n
-
- Доктор VB наук
-
-
- Сообщения: 2509
- Зарегистрирован: 19.09.2005 (Пн) 17:17
- Откуда: г. Москва
-
keks-n » 01.06.2007 (Пт) 14:11
Так что единственный способ - CoCreateInstance а потом QueryInterface. Я, правда, не помню, CreateInstance, вроде бы, даёт возможность сразу получить нужный интерфейс и можно обойтись 1-им вызовом.
-
tyomitch
-
- Пользователь #1352
-
-
- Сообщения: 12822
- Зарегистрирован: 20.10.2002 (Вс) 17:02
- Откуда: חיפה
tyomitch » 01.06.2007 (Пт) 14:45
Даёт.
-
Antonariy
-
- Повелитель Internet Explorer
-
-
- Сообщения: 4824
- Зарегистрирован: 28.04.2005 (Чт) 14:33
- Откуда: Мимо проходил
-
Antonariy » 01.06.2007 (Пт) 15:00
Понял, перечисление всех библиотек типов не наш метод. Лучше уж в базу писать все возможные progid и проверять их наличие через createobject.
Лучший способ понять что-то самому — объяснить это другому.
Вернуться в Раздел для Профессионалов
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6