Я хочу использовать IShellItemImageFactory , чтобы получить эскиз оболочки файлов. Согласно документам MSDN, если я передам структуру SIZE размером 256x256, он должен заполнить параметр HBITMAP точечным рисунком 256x256, а если я использую флаг SIIGBF_RESIZETOFIT, он должен изменить размеры меньших уменьшенных изображений до 256x256. Это не так. Вместо этого получается растровое изображение 256x256 с небольшим значком, нарисованным в середине.
Хорошо, может быть, это просто не то, что SIIGBF_RESIZETOFIT должен делать. Но тогда, насколько я понимаю, я должен иметь возможность использовать SIIGBF_BIGGERSIZEOK и указать крошечный размер (скажем, 1x1), и он должен вместо этого вернуть фактический размер миниатюры. Это не так. Я всегда получаю любой размер, который передаю.
Я использую этот API неправильно или он просто сломан? Кажется, в Интернете очень мало примеров. В нескольких постах обсуждений есть люди, которые предполагают, что API не работает. Если он действительно сломан, как я могу определить, есть ли у данного элемента оболочки миниатюра? Таким образом, я могу использовать этот метод для получения миниатюр и извлечения значка в противном случае.