Как ускорить SHGetFileInfo
int __fastcall GetShellImage(AnsiString FName, bool Large)
{
_SHFILEINFOA FileInfo;
int Flags;
int Result;
memset(&FileInfo, 0, sizeof(FileInfo));
Flags = FILE_ATTRIBUTE_NORMAL | SHGFI_SYSICONINDEX | SHGFI_ICON ;
if (Large)
Flags = Flags | SHGFI_LARGEICON;
else
Flags = Flags | SHGFI_SMALLICON;
SHGetFileInfo(FName.c_str(), 0, &FileInfo, sizeof(FileInfo), Flags);
Result = FileInfo.iIcon;
return Result;
}
При отображении большого количества иконок Фукция сильно тормозит. Выяснил, что тормоза дает функция
SHGetFileInfo(FName.c_str(), 0, &FileInfo, sizeof(FileInfo), Flags);
Подскажите пожалуйста, как можно увеличить ее производительность ? Спасибо.
Цитата:
Originally posted by Vitalios
При отображении большого количества иконок Фукция сильно тормозит.
При отображении большого количества иконок Фукция сильно тормозит.
А насколько сильно? Сильнее, чем Проводник? Если нет, то, боюсь, увеличить производительность уже не удастся.
Цитата:
Originally posted by smartsoft
А насколько сильно? Сильнее, чем Проводник? Если нет, то, боюсь, увеличить производительность уже не удастся.
А насколько сильно? Сильнее, чем Проводник? Если нет, то, боюсь, увеличить производительность уже не удастся.
Где-то в полтора раза сильнее. Но ,к примеру, Total Commander отображает большие каталоги почти мгновенно.