Another solution...from the same method GetSystemImageListIndex, you can remove the flag SHGFI.ICON from SHGetFileInfo to eliminate the GDI leak so you don't have to Destroy the icon. SHGFI.SYSICONINDEX is enough for getting the image from the image list.