/// <summary> /// lookup and return an icon from windows shell /// </summary> /// <param name="folderPath">path to folder<param> /// <param name="size">large or small</param> /// <param name="folderType">open or closed</param> /// <returns>requested icon</returns> public static System.Drawing.Icon GetFolderIcon( string folderPath, EnumIconSize size, EnumFolderType folderType) { EnumFileInfoFlags flags = EnumFileInfoFlags.ICON | EnumFileInfoFlags.USEFILEATTRIBUTES; if (folderType == EnumFolderType.Open) { flags |= EnumFileInfoFlags.OPENICON; } if (EnumIconSize.Small == size) { flags |= EnumFileInfoFlags.SMALLICON; } else { flags |= EnumFileInfoFlags.LARGEICON; } ShellFileInfo shellFileInfo = new ShellFileInfo(); SHGetFileInfo( folderPath, conFILE_ATTRIBUTE_DIRECTORY, ref shellFileInfo, (uint)System.Runtime.InteropServices.Marshal.SizeOf(shellFileInfo), (uint)flags); // deep copy System.Drawing.Icon icon = (System.Drawing.Icon)System.Drawing.Icon.FromHandle(shellFileInfo.hIcon).Clone(); // release handle DestroyIcon(shellFileInfo.hIcon); return(icon); }
/// /// lookup and return an icon from windows shell /// /// "size">large or small /// "folderType">open or closed /// requested icon public static System.Drawing.Icon GetFolderIcon( EnumIconSize size, EnumFolderType folderType) { return(GetFolderIcon(null, size, folderType)); }
/// /// lookup and return an icon from windows shell /// /// "folderPath">path to folder /// "size">large or small /// "folderType">open or closed /// requested icon public static System.Drawing.Icon GetFolderIcon( string folderPath, EnumIconSize size, EnumFolderType folderType) { EnumFileInfoFlags flags = EnumFileInfoFlags.ICON | EnumFileInfoFlags.USEFILEATTRIBUTES; if (folderType == EnumFolderType.Open) { flags |= EnumFileInfoFlags.OPENICON; } if (EnumIconSize.Small == size) { flags |= EnumFileInfoFlags.SMALLICON; } else { flags |= EnumFileInfoFlags.LARGEICON; } ShellFileInfo shellFileInfo = new ShellFileInfo(); SHGetFileInfo( folderPath, conFILE_ATTRIBUTE_DIRECTORY, ref shellFileInfo, (uint)System.Runtime.InteropServices.Marshal.SizeOf(shellFileInfo), (uint)flags); // deep copy System.Drawing.Icon icon = (System.Drawing.Icon)System.Drawing.Icon.FromHandle(shellFileInfo.hIcon).Clone(); // release handle DestroyIcon(shellFileInfo.hIcon); return icon; }
/// /// lookup and return an icon from windows shell /// /// "size">large or small /// "folderType">open or closed /// requested icon public static System.Drawing.Icon GetFolderIcon( EnumIconSize size, EnumFolderType folderType) { return GetFolderIcon(null, size, folderType); }
public static Icon GetFolderIcon( EnumIconSize size, EnumFolderType folderType) { return GetFolderIcon(null, size, folderType); }
public static Icon GetFolderIcon( EnumIconSize size, EnumFolderType folderType) { return(GetFolderIcon(null, size, folderType)); }