wEventId
描述已发生的事件。通常情况下,一次只能指定一个事件。如果超过指定一个事件,则包含在dwItem1和dwItem2参数的值分别在所有指定的事件中都必须相同。这个参数可以是一个或多个下列值:
SHCNE_ALLEVENTS
所有事件都已经发生。
SHCNE_ASSOCCHANGED
一个文件类型关联发生了变化。SHCNF_IDLIST必须指定在uFlags参数。dwItem1和dwItem2没有使用,必须为NULL。
SHCNE_ATTRIBUTES
一个项目或文件夹的属性发生了变化。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。 dwItem1包含的项目或文件夹已经改变。dwItem2未使用,应为NULL。
SHCNE_CREATE
一个非文件夹项目已创建。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。dwItem1包含所创建的项目。dwItem2未使用,应为NULL。
SHCNE_DELETE
一个非文件夹项目已经被删除。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。dwItem1包含已删除的项目。dwItem2未使用,应为NULL。
SHCNE_DRIVEADD
一个驱动器已被添加。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。dwItem1包含已添加驱动器的根。dwItem2未使用,应为NULL。
SHCNE_DRIVEADDGUI
增加了一个驱动器,外壳应为驱动器创建一个新的窗口。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。dwItem1包含已添加驱动器的根。dwItem2未使用,应为NULL。
Windows XP and later: Not used.
SHCNE_DRIVEREMOVED
一个驱动器已被删除。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。dwItem1包含被删除的驱动器的根。dwItem2未使用,应为NULL。
SHCNE_EXTENDED_EVENT
目前未使用。
SHCNE_FREESPACE
一个驱动器上的可用空间量发生了变化。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。dwItem1包含可用空间变化的驱动器的根。dwItem2未使用,应为NULL。
SHCNE_MEDIAINSERTED
存储介质已被插入到驱动器。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。dwItem1包含该驱动器的根。dwItem2未使用,应为NULL。
SHCNE_MEDIAREMOVED
存储介质已从一个驱动器删除。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。dwItem1包含该驱动器的根。dwItem2未使用,应为NULL。
SHCNE_MKDIR.
一个文件夹已被创建。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。dwItem1包含所创建的文件夹。dwItem2未使用,应为NULL。
SHCNE_NETSHARE
一个本地计算机上的文件夹通过网络被共享。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。dwItem1包含了被共享的文件夹。dwItem2未使用,应为NULL。
SHCNE_NETUNSHARE
一个本地计算机上的文件夹不再通过网络被共享。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。dwItem1包含了不再被共享的文件夹。dwItem2未使用,应为NULL。
SHCNE_RENAMEFOLDER
文件夹的名称已更改。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。dwItem1包含文件夹之前的PIDL或名称。dwItem2包含文件夹新的PIDL或名称。
SHCNE_RENAMEITEM
一个非文件夹项目的名称已更改。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。dwItem1包含项目之前的PIDL或名称。dwItem2包含项目新的PIDL或名称。
SHCNE_RMDIR
一个文件夹已被删除。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。dwItem1包含被删除的文件夹。dwItem2未使用,应为NULL。
SHCNE_SERVERDISCONNECT
计算机已经从服务器断开。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。dwItem1包含从该计算机已断开的服务器。dwItem2未使用,应为NULL。
SHCNE_UPDATEDIR
现有文件夹的内容发生了变化,但文件夹仍然存在,并没有被重新命名。SHCNF_IDLIST或SHCNF_PATH必须指定在uFlags。dwItem1包含已更改的文件夹。dwItem2未使用,应为NULL。如果是文件夹已被创建,删除或重命名,则应分别使用SHCNE_MKDIR,SHCNE_RMDIR,或SHCNE_RENAMEFOLDER。
SHCNE_UPDATEIMAGE
系统图像列表里的一个图像发生了变化。SHCNF_DWORD必须指定在uFlags。dwItem2包含已更改的系统图像列表的图像索引。dwItem1未使用,应为NULL。
SHCNE_UPDATEITEM
现有的项目(文件夹或非文件夹)发生了变化,但该项目依然存在,并没有被重新命名。SHCNF_IDLIST或SHCNF_PATH必须指定uFlags。dwItem1包含已更改的项目。 dwItem2未使用,应为NULL。如果是非文件夹项目已被创建,删除或重命名,则应分别使用SHCNE_CREATE,SHCNE_DELETE,或SHCNE_RENAMEITEM代替。
SHCNE_DISKEVENTS
指定一个所有磁盘事件标识符的组合。
SHCNE_GLOBALEVENTS
指定一个所有全局事件标识符的组合。
SHCNE_INTERRUPT
指定的事件发生导致系统中断。由于该值修改其他事件值,它不能被单独使用。
uFlags
指示dwItem1和dwItem2参数含义的标志。uFlags参数必须是以下值之一:
SHCNF_DWORD
dwItem1和dwItem2参数是DWORD值.
SHCNF_IDLIST
dwItem1和dwItem2是代表这个项目被变更影响的ITEMIDLIST结构的地址。每个ITEMIDLIST必须是相对于桌面的文件夹。
SHCNF_PATH
dwItem1和dwItem2是最大长度为MAX_PATH的以'\0'结束的字符串的地址,包含了该被变更影响的项目的完整路径名称。
SHCNF_PRINTER
dwItem1和dwItem2是以'\0'结束的字符串的地址,代表被变更影响的打印机的友好名称。
SHCNF_FLUSH
函数不应该返回,直到已通知所有受影响的组件。由于这标志修改其他数据类型标志,它不能由自己使用。
SHCNF_FLUSHNOWAIT
函数应该开始通知所有受影响的组件,但当进程已经开始通知时就应返回。由于这标志修改其他数据类型标志,它不能由自己使用。此标志包含SHCNF_FLUSH。
SHCNF_NOTIFYRECURSIVE
Notify clients registered for all children.
dwItem1
可选。第一个事件相关的值。
dwItem2
可选。第二个事件相关的值。
这个函数没有返回值。
应用程序注册的任何类型的新的处理程序必须调用SHChangeNotify并指定SHCNE_ASSOCCHANGED标志来指示外壳去刷新缓存和搜索新的处理程序。
Version 4.00 and later of Shell32.dll
Windows NT/2000: Requires Windows NT 4.0 or later.
Windows 95/98: Requires Windows 95 or later.
Header: Declared in shlobj.h.
Import Library: shell32.lib.