我SHGetFileInfo
用来获取特定文件类型的图标。MSDN 说SHFILEINFO
:
图标 类型:HICON 代表文件的图标的句柄。你有责任 当您不再使用 DestroyIcon 销毁此句柄 需要它。
要从 HIcon 获取图标,我使用Icon.FromHandle
. 同样,MSDN 说:
评论
使用此方法时,必须处理掉原来的图标 通过使用 Win32 API 中的 DestroyIcon 方法来确保 资源被释放。
SGHFI_ICON
由于描述包含以下信息,因此更加令人困惑:
SHGFI_ICON (0x000000100) 检索代表文件的图标的句柄和 系统图像列表中图标的索引。手柄是 复制到 psfi 指定结构的 hIcon 成员, 并且索引被复制到 iIcon 成员。
从这个描述来看,这个句柄似乎是由操作系统保存的,我实际上不应该销毁它。
我的问题是:如果,如果是,我应该什么时候处理图标句柄?
- 紧接着
Icon.FromHandle()
? - 当我不再需要从创建的图标时
Icon.FromHandle()
?(在这种情况下,我想我宁愿复制图标,释放原件并返回副本以避免处理泄漏) - 从不(它会以某种方式自动完成?SHGetFileInfo 的许多示例 - 即使在 SO 上 - 也不包括任何释放图标句柄的代码)