Интерфейс IShellItemImageFactory, используемый для получения миниатюр оболочки Vista / 7, не работает? - PullRequest
2 голосов
/ 21 декабря 2009

Я хочу использовать IShellItemImageFactory , чтобы получить эскиз оболочки файлов. Согласно документам MSDN, если я передам структуру SIZE размером 256x256, он должен заполнить параметр HBITMAP точечным рисунком 256x256, а если я использую флаг SIIGBF_RESIZETOFIT, он должен изменить размеры меньших уменьшенных изображений до 256x256. Это не так. Вместо этого получается растровое изображение 256x256 с небольшим значком, нарисованным в середине.

Хорошо, может быть, это просто не то, что SIIGBF_RESIZETOFIT должен делать. Но тогда, насколько я понимаю, я должен иметь возможность использовать SIIGBF_BIGGERSIZEOK и указать крошечный размер (скажем, 1x1), и он должен вместо этого вернуть фактический размер миниатюры. Это не так. Я всегда получаю любой размер, который передаю.

Я использую этот API неправильно или он просто сломан? Кажется, в Интернете очень мало примеров. В нескольких постах обсуждений есть люди, которые предполагают, что API не работает. Если он действительно сломан, как я могу определить, есть ли у данного элемента оболочки миниатюра? Таким образом, я могу использовать этот метод для получения миниатюр и извлечения значка в противном случае.

1 Ответ

0 голосов
/ 13 декабря 2010

Вы видели http://mattolenik.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=cat%3D.NET

Я пробовал это, и, кажется, хорошо работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...