public void RefreshInfo() { // Name if (_parent != null && _parent is FShellFolder) { FShellFolder folder = (FShellFolder)_parent; _name = folder.GetSubObjectName(_handle); } // Info SShFileInfo info = new SShFileInfo(); EShGetFileInfo flag = EShGetFileInfo.Pidl | EShGetFileInfo.DisplayName | EShGetFileInfo.TypeName | EShGetFileInfo.Pidl | EShGetFileInfo.Icon | EShGetFileInfo.SmallIcon | EShGetFileInfo.SysIconIndex; IntPtr rsPtr = RShell32.SHGetFileInfo(FullPidl.Ptr, 0, ref info, Marshal.SizeOf(typeof(SShFileInfo)), flag); if (_name == null) { _name = info.szDisplayName; } _icon = info.iIcon; }
public static int GetLargeIconIndex(IntPtr ipIDList) { SShFileInfo psfi = new SShFileInfo(); EShGetFileInfo dwflag = EShGetFileInfo.Icon | EShGetFileInfo.LargeIcon | EShGetFileInfo.Pidl | EShGetFileInfo.SysIconIndex; IntPtr ipIcon = RShell32.SHGetFileInfo(ipIDList, 0, ref psfi, Marshal.SizeOf(psfi), dwflag); return(psfi.iIcon); }
public static extern IntPtr SHGetFileInfo( string Path, EFileAttribute fileAttributes, out SShFileInfo sfi, int cbFileInfo, EShGetFileInfo flags);
public static extern IntPtr SHGetFileInfo( IntPtr ppidl, EFileAttribute dwFileAttributes, ref SShFileInfo sfi, int cbFileInfo, EShGetFileInfo uFlags);