В моем коде я получаю список изображений с помощью функции SHGETImageList с размером SHIL_JUMBO.
IImageList iml;
var hres = SHGetImageList(SHIL_JUMBO, ref iidImageList, out iml);
IntPtr hIcon = IntPtr.Zero;
iml.GetIcon(i, ILD_TRANSPARENT | ILD_IMAGE, ref hIcon);
Icon ico = (Icon)System.Drawing.Icon.FromHandle(hIcon).Clone();
ShellAPI.DestroyIcon(hIcon);
Все в порядке, но когда нужно получить значки меньшего размера (когда на них нет размером 256x256) функция GetIcon возвращает мне значок размером 256x256, но со значком размером 32x32 в верхнем левом углу. Я хочу изменить размер этого значка до нового размера (256 x 256).
У меня нет информации, как заставить систему изменить размер моего значка до 256 x 256. Каждая функция в iml (например, GetImageInfo, GetImageRect) для этот размер возвращает пустую структуру.
Можно получить информацию о том, что этот значок меньше, и я могу получить значок из другого источника.