66 lines
2.4 KiB
C#
66 lines
2.4 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: SEGATools.Registry.ShellNotification
|
|
// Assembly: SEGATools, Version=1.0.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
|
|
// MVID: D631183F-57B1-40A1-B502-5364D288307A
|
|
// Assembly location: SEGATools.dll
|
|
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace SEGATools.Registry
|
|
{
|
|
internal class ShellNotification
|
|
{
|
|
[DllImport("shell32.dll")]
|
|
private static extern void SHChangeNotify(
|
|
uint wEventId,
|
|
uint uFlags,
|
|
IntPtr dwItem1,
|
|
IntPtr dwItem2);
|
|
|
|
public static void NotifyOfChange() => ShellNotification.SHChangeNotify(134217728U, 8192U, IntPtr.Zero, IntPtr.Zero);
|
|
|
|
[Flags]
|
|
private enum ShellChangeNotificationEvents : uint
|
|
{
|
|
SHCNE_RENAMEITEM = 1,
|
|
SHCNE_CREATE = 2,
|
|
SHCNE_DELETE = 4,
|
|
SHCNE_MKDIR = 8,
|
|
SHCNE_RMDIR = 16, // 0x00000010
|
|
SHCNE_MEDIAINSERTED = 32, // 0x00000020
|
|
SHCNE_MEDIAREMOVED = 64, // 0x00000040
|
|
SHCNE_DRIVEREMOVED = 128, // 0x00000080
|
|
SHCNE_DRIVEADD = 256, // 0x00000100
|
|
SHCNE_NETSHARE = 512, // 0x00000200
|
|
SHCNE_NETUNSHARE = 1024, // 0x00000400
|
|
SHCNE_ATTRIBUTES = 2048, // 0x00000800
|
|
SHCNE_UPDATEDIR = 4096, // 0x00001000
|
|
SHCNE_UPDATEITEM = 8192, // 0x00002000
|
|
SHCNE_SERVERDISCONNECT = 16384, // 0x00004000
|
|
SHCNE_UPDATEIMAGE = 32768, // 0x00008000
|
|
SHCNE_DRIVEADDGUI = 65536, // 0x00010000
|
|
SHCNE_RENAMEFOLDER = 131072, // 0x00020000
|
|
SHCNE_FREESPACE = 262144, // 0x00040000
|
|
SHCNE_EXTENDED_EVENT = 67108864, // 0x04000000
|
|
SHCNE_ASSOCCHANGED = 134217728, // 0x08000000
|
|
SHCNE_DISKEVENTS = SHCNE_RENAMEFOLDER | SHCNE_UPDATEITEM | SHCNE_UPDATEDIR | SHCNE_ATTRIBUTES | SHCNE_RMDIR | SHCNE_MKDIR | SHCNE_DELETE | SHCNE_CREATE | SHCNE_RENAMEITEM, // 0x0002381F
|
|
SHCNE_GLOBALEVENTS = SHCNE_ASSOCCHANGED | SHCNE_EXTENDED_EVENT | SHCNE_FREESPACE | SHCNE_DRIVEADDGUI | SHCNE_UPDATEIMAGE | SHCNE_DRIVEADD | SHCNE_DRIVEREMOVED | SHCNE_MEDIAREMOVED | SHCNE_MEDIAINSERTED, // 0x0C0581E0
|
|
SHCNE_ALLEVENTS = 2147483647, // 0x7FFFFFFF
|
|
SHCNE_INTERRUPT = 2147483648, // 0x80000000
|
|
}
|
|
|
|
private enum ShellChangeNotificationFlags
|
|
{
|
|
SHCNF_IDLIST = 0,
|
|
SHCNF_PATHA = 1,
|
|
SHCNF_PRINTERA = 2,
|
|
SHCNF_DWORD = 3,
|
|
SHCNF_PATHW = 5,
|
|
SHCNF_PRINTERW = 6,
|
|
SHCNF_TYPE = 255, // 0x000000FF
|
|
SHCNF_FLUSH = 4096, // 0x00001000
|
|
SHCNF_FLUSHNOWAIT = 8192, // 0x00002000
|
|
}
|
|
}
|
|
}
|