Esempio n. 1
0
        private static IntPtr GetIconHandleFromFilePath(string filepath, IconSizeEnum iconsize)
        {
            var        shinfo                = new Shell.SHFILEINFO();
            const uint SHGFI_SYSICONINDEX    = 0x4000;
            const int  FILE_ATTRIBUTE_NORMAL = 0x80;
            uint       flags = SHGFI_SYSICONINDEX;

            return(getIconHandleFromFilePathWithFlags(filepath, iconsize, ref shinfo, FILE_ATTRIBUTE_NORMAL, flags));
        }
Esempio n. 2
0
        private static IntPtr GetIconHandleFromFolderPath(string folderpath, IconSizeEnum iconsize)
        {
            var shinfo = new Shell.SHFILEINFO();

            const uint SHGFI_ICON = 0x000000100;
            const uint SHGFI_USEFILEATTRIBUTES  = 0x000000010;
            const int  FILE_ATTRIBUTE_DIRECTORY = 0x00000010;
            uint       flags = SHGFI_ICON | SHGFI_USEFILEATTRIBUTES;

            return(getIconHandleFromFilePathWithFlags(folderpath, iconsize, ref shinfo, FILE_ATTRIBUTE_DIRECTORY, flags));
        }
Esempio n. 3
0
        private static IntPtr getIconHandleFromFilePathWithFlags(
            string filepath, IconSizeEnum iconsize,
            ref Shell.SHFILEINFO shinfo, int fileAttributeFlag, uint flags)
        {
            const int ILD_TRANSPARENT = 1;
            var       retval          = SHGetFileInfo(filepath, fileAttributeFlag, ref shinfo, Marshal.SizeOf(shinfo), flags);

            if (retval == 0)
            {
                throw (new System.IO.FileNotFoundException());
            }
            var iconIndex      = shinfo.iIcon;
            var iImageListGuid = new Guid("46EB5926-582E-4017-9FDF-E8998DAA0950");
            var hres           = SHGetImageList((int)iconsize, ref iImageListGuid, out Shell.IImageList iml);
            var hIcon          = IntPtr.Zero;

            hres = iml.GetIcon(iconIndex, ILD_TRANSPARENT, ref hIcon);
            return(hIcon);
        }
Esempio n. 4
0
 public static extern int SHGetFileInfo(
     string pszPath,
     int dwFileAttributes,
     ref SHFILEINFO psfi,
     int cbFileInfo,
     uint uFlags);
Esempio n. 5
0
        private static IntPtr GetIconHandleFromFolderPath(string folderpath, IconSizeEnum iconsize)
        {
            var shinfo = new SHFILEINFO();

            const uint SHGFI_ICON = 0x000000100;
            const uint SHGFI_USEFILEATTRIBUTES = 0x000000010;
            const int FILE_ATTRIBUTE_DIRECTORY = 0x00000010;
            uint flags = SHGFI_ICON | SHGFI_USEFILEATTRIBUTES;
            return getIconHandleFromFilePathWithFlags(folderpath, iconsize, ref shinfo, FILE_ATTRIBUTE_DIRECTORY, flags);
        }
Esempio n. 6
0
 private static IntPtr getIconHandleFromFilePathWithFlags(
     string filepath, IconSizeEnum iconsize,
     ref SHFILEINFO shinfo, int fileAttributeFlag, uint flags)
 {
     const int ILD_TRANSPARENT = 1;
     var retval = SHGetFileInfo(filepath, fileAttributeFlag, ref shinfo, Marshal.SizeOf(shinfo), flags);
     if (retval == 0) throw (new FileNotFoundException());
     var iconIndex = shinfo.iIcon;
     var iImageListGuid = new Guid("46EB5926-582E-4017-9FDF-E8998DAA0950");
     IImageList iml;
     var hres = SHGetImageList((int)iconsize, ref iImageListGuid, out iml);
     var hIcon = IntPtr.Zero;
     hres = iml.GetIcon(iconIndex, ILD_TRANSPARENT, ref hIcon);
     return hIcon;
 }
Esempio n. 7
0
 private static IntPtr GetIconHandleFromFilePath(string filepath, IconSizeEnum iconsize)
 {
     var shinfo = new SHFILEINFO();
     const uint SHGFI_SYSICONINDEX = 0x4000;
     const int FILE_ATTRIBUTE_NORMAL = 0x80;
     uint flags = SHGFI_SYSICONINDEX;
     return getIconHandleFromFilePathWithFlags(filepath, iconsize, ref shinfo, FILE_ATTRIBUTE_NORMAL, flags);
 }
Esempio n. 8
0
 public static extern int SHGetFileInfo(
     string pszPath,
     int dwFileAttributes,
     ref Shell.SHFILEINFO psfi,
     int cbFileInfo,
     uint uFlags);