Уже замучился с этой функцией. Проблема в том, что иконки с оверлеями возвращаются только для файлов лежащих в корневом каталоге диска. Для всех остальных уровнем выше — возвращаются нормальные иконки, НО БЕЗ ОВЕРЛЕЕВ. Пробовал вместо полного имени файла подставлять 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. Что я нетак делаю? А еще лучше если подскажете альтернативный способ получения иконок с оверлеями.
Заранее спасибо!