Грабли с SHGetFileInfo
От: DmitryCPP  
Дата: 18.10.09 16:32
Оценка:
Уже замучился с этой функцией. Проблема в том, что иконки с оверлеями возвращаются только для файлов лежащих в корневом каталоге диска. Для всех остальных уровнем выше — возвращаются нормальные иконки, НО БЕЗ ОВЕРЛЕЕВ. Пробовал вместо полного имени файла подставлять ITEMIDLIST с флагом SHGFI_PIDL, — результат тот же. Х.з. что дальше делать. Использую вот так:

SHFILEINFO fi = {0};
::SHGetFileInfo( m_fileName.c_str(), // full file name with path
   m_fileAttributes, // file's attributes given from WIN32_FIND_DATA.dwFileAttributes
   &fi, sizeof(SHFILEINFO), 
   SHGFI_ICON | SHGFI_SMALLICON | SHGFI_ADDOVERLAYS | SHGFI_USEFILEATTRIBUTES );


CoInitialize предварительно вызвана. Результат этой функцией возвращается всегда валидный: 1. Что я нетак делаю? А еще лучше если подскажете альтернативный способ получения иконок с оверлеями.
Заранее спасибо!
Здесь вы можете разместить вашу рекламу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.