SHGetFileInfo在没有请求时返回带有叠加层的图标

时间:2010-09-14 22:15:10

标签: c# .net winapi

出于某种原因,为.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)。关于为什么会发生这种情况的任何建议,以及如何获得没有叠加层的图标?

1 个答案:

答案 0 :(得分:2)

我终于能够通过获取系统图像列表中的图标索引并使用ImageList_GetIcon获取无覆盖图标的句柄来解决此问题:

http://social.msdn.microsoft.com/Forums/en-US/windowsgeneraldevelopmentissues/thread/83817b05-580e-476a-916f-eb3309cda7bb