|
|
|
Прусак |
|
|||
Новичок Профиль Группа: Участник Сообщений: 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 не поддерживает такой тип данных. Подскажите, что можно сделать в данной ситуации. Спасибо |
|||
|
||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
CImageList - это MFC'ный класс, обвертка вокруг Windows common image list control. Очевидно, что в COM объекте создавать классы из чужого окружения (MFC в данном случае) и выдавать их наружу бесполезно и крайне опасно . А вот создать и вернуть сам Windows common image list control можно (конечно, если COM сервер находится в dll), это будет HIMAGELIST (который можно считать void*). У себя потом позовете CImageList::Attach
Это сообщение отредактировал(а) xvr - 18.4.2014, 13:50 |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |