|
分類:[C# (Windows)]
SHGetFileInfoでICONを取得した場合かならず、Destroyアイコンで破棄しないといけないのでしょうか?
SHFILEINFO shfi = new SHFILEINFO(); IntPtr hSystemImageList = IntPtr.Zero; hSystemImageList = WindowsAPI.SHGetFileInfo(@"c:\", 0, out shfi, Marshal.SizeOf(typeof(SHFILEINFO)), ShellFileInfoFlags.SHGFI_SYSICONINDEX | ShellFileInfoFlags.SHGFI_SMALLICON); int z = WindowsAPI.SendMessage(this.Handle, 0x1003, 0x0001, (int)hSystemImageList);
こんな感じにリストビューとアイコンを結びつけた後、
SHFILEINFO shfi = new SHFILEINFO(); lvItem.mask = ListViewItemFlags.LVIF_IMAGE; IntPtr z = WindowsAPI.SHGetFileInfo(filePath, 0, out shfi, Marshal.SizeOf(typeof(SHFILEINFO)), ShellFileInfoFlags.SHGFI_SYSICONINDEX | ShellFileInfoFlags.SHGFI_SMALLICON | ShellFileInfoFlags.SHGFI_LARGEICON); lvItem.iImage = shfi.iIcon; int z2 = WindowsAPI.SendMessage(this.Handle, ListViewMessages.LVM_SETITEM,0,ref lvItem);
こんな感じに、リストビューのアイテムにアイコンを結び付けているのですが、 この後、
TTFA.Win32.WindowsAPI.DestroyIcon(shfi.hIcon);
このように、DestroyIconを呼ぶ必要はあるのでしょうか? ぐぐってみても、破壊しないといけないやら、破壊してはいけないやらで、意見がわかれて、どっち?と混乱しています。
|