Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передать из com-объекта CImageList 
:(
    Опции темы
Прусак
Дата 18.4.2014, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет!

Начал разбираться com объектами, поэтому возник, возможно, глупый вопрос.

Есть задание: надо реализовать файловый менеджер, но вся работа с файловой системой должна выполняться на com-сервере. Сталкнулся с проблемой как отобразить иконки для папок и файлов. 
Необходимо иметь список иконок CImageList* m_pImgList.

HIMAGELIST hlmg = (HIMAGELIST)::SHGetFileInfo("c:\\",0, &info, sizeof (info), SHGFI_SYSICONINDEX | SHGFI_SMALLICON); 

m_TreeControl.SetImageList(m_pImgList, TVSIL_NORMAL);  



Но покольку вся работа с файловой системой происходит в ком, а отображение в клиенте, то необходимо как-то передать список иконок в клиента, но com не поддерживает такой тип данных. 
Подскажите, что можно сделать в данной ситуации.

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


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



CImageList - это MFC'ный класс, обвертка вокруг Windows common image list control. Очевидно, что в COM объекте создавать классы из чужого окружения (MFC в данном случае) и выдавать их наружу бесполезно и крайне опасно  smile. А вот создать и вернуть сам Windows common image list control можно (конечно, если COM сервер находится в dll), это будет HIMAGELIST (который можно считать void*). У себя потом позовете CImageList::Attach


Это сообщение отредактировал(а) xvr - 18.4.2014, 13:50
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема »


 




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


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

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