Какова наилучшая схема загрузки иконок для приложения?
Немного предыстории... Я создаю FTP-подобное приложение с 4 панелями (панель локальной папки, панель локального файла, панель облачной папки, панель облачного файла). В обеих файловых панелях одним из столбцов является имя файла, рядом с которым я хочу отобразить значок (точно так же, как вы видите в проводнике Windows).
Делать к тому, что у меня нет физического файла для всех файлов в облаке, мне приходится тыкать в реестр (с расширением файла в руках) и получать комбинацию ExeFileName и IconIndex для этого типа файла, а оттуда извлекать значок. Тем не менее, я думаю, что у меня есть следующие варианты, и хотел бы узнать ваше мнение:
1) Загружайте все комбинации ExeFileName/IconIndex для каждого расширения (например: .doc, .txt) при загрузке программы и по мере необходимости запрашивайте и используйте их для вызова API ExtractIcon Win32.
2) Заглядывать в реестр только при необходимости, чтобы получить комбинации ExeFileName/IconIndex и вызывать API ExtractIcon Win32 для значка соответствующего типа файла.
3) Сохраните 1-байтовый файл каждого известного расширения в каталоге и вызовите SHGetFileInfo Win32 API и при необходимости извлеките соответствующий значок из файла.
4) Сохраните файл физического значка для каждого расширения файла во время установки в каталоге и вызовите его при необходимости (но не изменится при изменении, добавлении или удалении ассоциации файлов).
5) Выбросьте все это и купите набор значков в магазине значков, в котором есть 1000 лучших известных типов файлов значков, и отображайте неизвестный тип значков других типов файлов.
Спасибо за ваше время и комментарии.
-Джесси Хоул