【发布时间】:2010-09-14 22:15:09
【问题描述】:
出于某种原因,为 .lnk 文件调用 SHGetFileInfo 会返回带有链接覆盖的图标,即使我没有请求它:
Shell.SHGetFileInfo(path, 0, ref shFileInfo, (uint)Marshal.SizeOf(shFileInfo),
SHGFI.ICON | SHGFI.SMALLICON | SHGFI.TYPENAME | SHGFI.DISPLAYNAME);
我正在使用 shFileInfo.hIcon 来获取图标句柄(Windows 7、x64)。关于为什么会发生这种情况以及如何在没有覆盖的情况下获取图标的任何建议?
【问题讨论】:
-
是否有可能有人错误输入了 SHGFI.DISPLAYNAME 的值?它应该是 0x200。 SHGFI.ADDOVERLAYS 为 0x20。容易犯的错误。
-
已经考虑过 - 定义是:.ICON = 0x100、.SMALLICON = 0x1、.TYPENAME = 0x400 和 .DISPLAYNAME = 0x200。