Example #1
0
 public static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags);
Example #2
0
        private int GetImageIndex(string p)
        {
            FileInfo fi = new FileInfo(p);
            int iIndex = -1;
            if (m_extensionIndexes.TryGetValue(fi.Extension.ToLower(CultureInfo.InvariantCulture), out iIndex))
                return iIndex;

            SHFILEINFO shinfo = new SHFILEINFO();
            Win32.SHGetFileInfo(fi.Extension, 0, ref shinfo, (uint)Marshal.SizeOf(shinfo), Win32.SHGFI_USEFILEATTRIBUTES | Win32.SHGFI_ICON | Win32.SHGFI_SMALLICON);

            if (shinfo.hIcon != IntPtr.Zero)
            {
                System.Drawing.Icon myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon);
                return AddImage(fi.Extension, myIcon);
            }
            return 0;
        }