Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ActiveX, управление 
:(
    Опции темы
Лена
Дата 7.9.2006, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: 11
Всего: 11



Как осуществить следующее:
При нажатии на кнопку, надо вывести в список все зарегистрированные на компьютере ActiveX. После выбора из списка выбранный ActiveX должен загружаться на форму и в соседних списках должны быть автоматически загружены его свойства и методы. Выбрав метод из списка и задав параметры для него пользователь при желании может выполнит его.
Если можно расскажите по подробней шаги реализации такой программы.
Спасибо.

PM MAIL   Вверх
pandrew
Дата 7.9.2006, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.3.2006

Репутация: 3
Всего: 3



Вообще-то вся желаемая тобой функциональность уже реализована в MS SDK.

Список формируется на основе анализа реестра (HKEY_CLASSES_ROOT), откуда можно вытащить CLSID.
Далее видимо надо будет загружать OCX в контейнер (TOleContainer) и вытаскивать cписок методов.

PM MAIL   Вверх
Лена
Дата 7.9.2006, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: 11
Всего: 11



>Вообще-то вся желаемая тобой функциональность уже реализована в MS SDK.

Что-то ни могу найти.  smile 
Подскажите где это описано в  MS SDK?


PM MAIL   Вверх
pandrew
Дата 7.9.2006, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.3.2006

Репутация: 3
Всего: 3



К сожалению точно не помню, а найти быстро не получается. 
Называлась утилита приблизительно OleTestContainer входила в полную MS VS6
PM MAIL   Вверх
Лена
Дата 7.9.2006, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: 11
Всего: 11



>входила в полную MS VS6 

К сожалению мне это надо реализовать на Builder. 
Я посмотрела в реестре раздел CLSID, но как вытащить названия не знаю. Вот в Builder если нажать меню Project далее Import Type Library, то получаем окно со списком ActiveX (см.рисунок). Как построить такой список? 


Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  new_1.gif 12,33 Kb
PM MAIL   Вверх
pandrew
Дата 7.9.2006, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.3.2006

Репутация: 3
Всего: 3



Цитата(Лена @ 7.9.2006,  15:50)
К сожалению мне это надо реализовать на Builder. 

Это что учебное задание? Но, я думаю, непосредственно в коде построения списка, разница между VS и Bulder будет малозаметна.
Цитата(Лена @ 7.9.2006,  15:50)
Я посмотрела в реестре раздел CLSID, но как вытащить названия не знаю.

А если, зная 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
PM MAIL   Вверх
Лена
Дата 7.9.2006, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: 11
Всего: 11



>Я точно знаю, что списки строятся через просмотр реестра HCR\CLSID с анализом ветвей InprocServer32 и др

Я думаю надо анализировать в CLSID папку ProgID. Вот как вытащить название пока не разобралась.

> Калверта,

Эта книга у меня есть smile

> Возможно в ОС существует готовый ActiveX для построения списков и работы с интерфейсами

Мечта бедной Лены! smile

> Попробуй сходить на форумы VS там больше народу.

Нашла код для VC но на Builder переделать не получилось: http://www.codeguru.com/cpp/com-tech/activ...icle.php/c5527/

Спасибо за ссылку, буду пытаться разобраться. smile

PM MAIL   Вверх
pandrew
Дата 7.9.2006, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.3.2006

Репутация: 3
Всего: 3



По-моему это то что тебе надо, ну а переделывать там вообще нечего. Добавь себе в проект 
Код

#include "objbase.h"
#include "comcat.h"

и замени последние строки
Код

 CString strControlName(bstrClassName);
 m_list1.AddString (strControlName);

на
Код

 AnsiString strControlName(bstrClassName);
 m_list1->Items->Add (strControlName);

где m_list1 - TListBox на твоей форме
PM MAIL   Вверх
Лена
Дата 7.9.2006, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: 11
Всего: 11



ПОЛУЧИЛОСЬ, большое спасибо!  smile 
Я до этого добовляла не тот инклуд: #include <shlobj.h> для ф-ции CoInitialize


Жаль местами код не понятный.  smile 

Теперь еще более сложная задача предстоит загрузить выбранный ActiveX в контейнер.  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.