Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Runtime.InteropServices;
- namespace Unstub
- {
- class ShellNotification
- {
- [DllImport("shell32.dll", CharSet = CharSet.Auto)]
- public static extern Int32 SHParseDisplayName(
- [MarshalAs(UnmanagedType.LPWStr)] String pszName,
- IntPtr pbc,
- out IntPtr ppidl,
- UInt32 sfgaoIn,
- out UInt32 psfgaoOut);
- [DllImport("shell32.dll", CharSet = CharSet.Auto)]
- internal static extern void SHChangeNotify(
- UInt32 wEventId,
- UInt32 uFlags,
- IntPtr dwItem1,
- IntPtr dwItem2);
- [Flags]
- private enum ShellChangeNotificationEvents : uint
- {
- //...
- SHCNE_UPDATEITEM = 0x00002000,
- //...
- }
- private enum ShellChangeNotificationFlags
- {
- //...
- SHCNF_FLUSH = 0x1000,
- //...
- }
- public static void refreshThumbnail(string path)
- {
- try
- {
- uint iAttribute;
- IntPtr pidl;
- SHParseDisplayName(path, IntPtr.Zero, out pidl, 0, out iAttribute);
- SHChangeNotify(
- (uint)ShellChangeNotificationEvents.SHCNE_UPDATEITEM,
- (uint)ShellChangeNotificationFlags.SHCNF_FLUSH,
- pidl,
- IntPtr.Zero);
- }
- catch { }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement