Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как ускорить SHGetFileInfo

4.4K
10 марта 2004 года
Vitalios
13 / / 08.01.2004
Функция получения индекса иконки файла в системном списке иконок:

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);
Подскажите пожалуйста, как можно увеличить ее производительность ? Спасибо.
10
11 марта 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Vitalios

При отображении большого количества иконок Фукция сильно тормозит.


А насколько сильно? Сильнее, чем Проводник? Если нет, то, боюсь, увеличить производительность уже не удастся.

4.4K
11 марта 2004 года
Vitalios
13 / / 08.01.2004
Цитата:
Originally posted by smartsoft

А насколько сильно? Сильнее, чем Проводник? Если нет, то, боюсь, увеличить производительность уже не удастся.



Где-то в полтора раза сильнее. Но ,к примеру, Total Commander отображает большие каталоги почти мгновенно.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог