Здравствуйте, programmater, Вы писали:
В общем и целом, после исследования получилось что (почти) идеальный способ для
загрузки иконок из произвольного файла является
PrivateExtractIcons()
MSDN
Попробовал — почти отлично работает. В ней можно задать желаемый размер иконки.
Однако с ней есть проблемы:
1. Она сама по собственному желанию внутри себя может растянуть иконку, сделав её ужасными квадратиками, если указать несуществующее разрешение.
Т.е. говоришь ей "дай картинку 128х128 — она может дать её увеличив из 32х23" ... А существующее разрешения иконки через API узнать я не нашёл как.
2. It is recommended that you do not use it in new programs because it might be altered or unavailable in subsequent versions of Windows
Без комментариев...
Сильный

в очередной раз.
Итого, я пришёл к выводу, что самое разумное — это руками загрузить иконку из PE. Благо это не сложно на самом деле...
Единственное жалко, что адекватного API для работы с иконками нет.
В процессе поиска я наткнулся на статью. Парень бился с теми же проблемами и пришел к тому же решению:
CodeProject
Спасибо дяде ejor'у за наше счастливое детство!
В общем, имхо, в области упревления иконками Win32 API не самая удобная и правильная система ...