Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
 ///
 ///  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));
 }
Ejemplo n.º 3
0
        ///
        /// 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;
        }
Ejemplo n.º 4
0
 ///
 ///  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);
 }
Ejemplo n.º 6
0
 public static Icon GetFolderIcon(
     EnumIconSize size,
     EnumFolderType folderType)
 {
     return(GetFolderIcon(null, size, folderType));
 }