![]() |
|
|
![]()
|
|
| Лена |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: 11 Всего: 11 |
Как осуществить следующее:
При нажатии на кнопку, надо вывести в список все зарегистрированные на компьютере ActiveX. После выбора из списка выбранный ActiveX должен загружаться на форму и в соседних списках должны быть автоматически загружены его свойства и методы. Выбрав метод из списка и задав параметры для него пользователь при желании может выполнит его. Если можно расскажите по подробней шаги реализации такой программы. Спасибо. |
|||
|
||||
| pandrew |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.3.2006 Репутация: 3 Всего: 3 |
Вообще-то вся желаемая тобой функциональность уже реализована в MS SDK.
Список формируется на основе анализа реестра (HKEY_CLASSES_ROOT), откуда можно вытащить CLSID. Далее видимо надо будет загружать OCX в контейнер (TOleContainer) и вытаскивать cписок методов. |
|||
|
||||
| Лена |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: 11 Всего: 11 |
>Вообще-то вся желаемая тобой функциональность уже реализована в MS SDK.
Что-то ни могу найти. Подскажите где это описано в MS SDK? |
|||
|
||||
| pandrew |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.3.2006 Репутация: 3 Всего: 3 |
К сожалению точно не помню, а найти быстро не получается.
Называлась утилита приблизительно OleTestContainer входила в полную MS VS6 |
|||
|
||||
| Лена |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: 11 Всего: 11 |
>входила в полную MS VS6
К сожалению мне это надо реализовать на Builder. Я посмотрела в реестре раздел CLSID, но как вытащить названия не знаю. Вот в Builder если нажать меню Project далее Import Type Library, то получаем окно со списком ActiveX (см.рисунок). Как построить такой список? Присоединённый файл ( Кол-во скачиваний: 7 )
new_1.gif 12,33 Kb |
|||
|
||||
| pandrew |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.3.2006 Репутация: 3 Всего: 3 |
Это что учебное задание? Но, я думаю, непосредственно в коде построения списка, разница между VS и Bulder будет малозаметна.
А если, зная CLSID сгонять на ветку HCR\Typelib? Можешь еще убедиться, что при выборе пунктов Project/Import type library и Component/Import ActiveX строятся разные списки. Я точно знаю, что списки строятся через просмотр реестра HCR\CLSID с анализом ветвей InprocServer32 и др.. Ищи инфу по регистрации COM в системе (по Builder и Delhi книги Елмановой, Калверта, Холингвэрта) и/или книжки по реестру Windows. Возможно в ОС существует готовый ActiveX для построения списков и работы с интерфейсами. Больно уж похожи списки и диалоги для импорта в разных IDE. Попробуй сходить на форумы VS там больше народу. Вот вроде что-то похожее на тест-контейнер, но современное http://msdn2.microsoft.com/en-us/library/ms241446.aspx |
||||
|
|||||
| Лена |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: 11 Всего: 11 |
>Я точно знаю, что списки строятся через просмотр реестра HCR\CLSID с анализом ветвей InprocServer32 и др
Я думаю надо анализировать в CLSID папку ProgID. Вот как вытащить название пока не разобралась. > Калверта, Эта книга у меня есть > Возможно в ОС существует готовый ActiveX для построения списков и работы с интерфейсами Мечта бедной Лены! > Попробуй сходить на форумы VS там больше народу. Нашла код для VC но на Builder переделать не получилось: http://www.codeguru.com/cpp/com-tech/activ...icle.php/c5527/ Спасибо за ссылку, буду пытаться разобраться. |
|||
|
||||
| pandrew |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.3.2006 Репутация: 3 Всего: 3 |
По-моему это то что тебе надо, ну а переделывать там вообще нечего. Добавь себе в проект
и замени последние строки
на
где m_list1 - TListBox на твоей форме |
||||||
|
|||||||
| Лена |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: 11 Всего: 11 |
ПОЛУЧИЛОСЬ, большое спасибо!
Я до этого добовляла не тот инклуд: #include <shlobj.h> для ф-ции CoInitialize Жаль местами код не понятный. Теперь еще более сложная задача предстоит загрузить выбранный ActiveX в контейнер. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |