if (w32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
entry->_icon_id = ICID_FOLDER;
else if (scan_flags & SCAN_EXTRACT_ICONS)
- entry->extract_icon();
+ try {
+ entry->extract_icon();
+ } catch(COMException&) {
+ // ignore unexpected exceptions while extracting icons
+ }
last = entry;
} while(FindNextFile(hFind, &w32fd));
if (!(entry->_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ||
!(attribs & SFGAO_FILESYSTEM)) {
if (scan_flags & SCAN_EXTRACT_ICONS)
- entry->extract_icon();
+ try {
+ entry->extract_icon();
+ } catch(COMException&) {
+ // ignore unexpected exceptions while extracting icons
+ }
} else if (entry->_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
entry->_icon_id = ICID_FOLDER;
else