IShellChangeNotify::OnChange 方法 (shlobj_core.h)
通知命名空间扩展已发生影响其项的事件。
语法
HRESULT OnChange(
LONG lEvent,
[in, optional] PCIDLIST_ABSOLUTE pidl1,
[in, optional] PCIDLIST_ABSOLUTE pidl2
);
参数
lEvent
类型: LONG
一个值,该值描述已发生的事件。 通常,一次只指定一个事件。 如果指定了多个事件,则 pidl1 和 pidl2 参数中包含的值对于所有指定事件必须分别相同。 lEvent 参数可以包含以下一个或多个标志。
SHCNE_ALLEVENTS (0x7FFFFFL)
所有事件都已发生。
SHCNE_ASSOCCHANGED (0x08000000L)
文件类型关联已更改。 不使用 pidl1 和 pidl2 参数,并且必须为 NULL。
SHCNE_ATTRIBUTES (0x00000800L)
项目或文件夹的属性已更改。 pidl1 参数包含已更改的项目或文件夹。 不使用 pidl2 参数,应为 NULL。
SHCNE_CREATE (0x00000002L)
已创建非文件夹项。 pidl1 参数包含已创建的项。 不使用 pidl2 参数,应为 NULL。
SHCNE_DELETE (0x00000004L)
已删除非文件夹项。 pidl1 参数包含已删除的项。 不使用 pidl2 参数,应为 NULL。
SHCNE_DRIVEADD (0x00000100L)
已添加驱动器。 pidl1 参数包含已添加的驱动器的根。 不使用 pidl2 参数,应为 NULL。
SHCNE_DRIVEADDGUI (0x00010000L)
Windows XP 及更高版本:未使用。
SHCNE_DRIVEREMOVED (0x00000080L)
已删除驱动器。 pidl1 参数包含已删除的驱动器的根。 不使用 pidl2 参数,应为 NULL。
SHCNE_FREESPACE (0x00040000L)
驱动器上的可用空间量已更改。 pidl1 参数包含可用空间已更改的驱动器的根。 不使用 pidl2 参数,应为 NULL。
SHCNE_MEDIAINSERTED (0x00000020L)
存储介质已插入驱动器。 pidl1 参数包含包含新媒体的驱动器的根。 不使用 pidl2 参数,应为 NULL。
SHCNE_MEDIAREMOVED (0x00000040L)
已从驱动器中删除存储介质。 pidl1 参数包含从中删除介质的驱动器的根。 不使用 pidl2 参数,应为 NULL。
SHCNE_MKDIR (0x00000008L)
已创建文件夹。 pidl1 参数包含已创建的文件夹。 不使用 pidl2 参数,应为 NULL。
SHCNE_NETSHARE (0x00000200L)
正在通过网络共享本地计算机上的文件夹。 pidl1 参数包含正在共享的文件夹。 不使用 pidl2 参数,应为 NULL。
SHCNE_NETUNSHARE (0x00000400L)
本地计算机上的文件夹不再通过网络共享。 pidl1 参数包含不再共享的文件夹。 不使用 pidl2 参数,应为 NULL。
SHCNE_RENAMEFOLDER (0x00020000L)
文件夹的名称已更改。 pidl1 参数包含以前的 PIDL 或文件夹名称。 pidl2 参数包含文件夹的新 PIDL 或名称。
SHCNE_RENAMEITEM (0x00000001L)
非文件夹项的名称已更改。 pidl1 参数包含项的上一个 PIDL 或名称。 pidl2 参数包含项的新 PIDL 或名称。
SHCNE_RMDIR (0x00000010L)
已删除文件夹。 pidl1 参数包含已删除的文件夹。 不使用 pidl2 参数,应为 NULL。
SHCNE_SERVERDISCONNECT (0x00004000L)
计算机已与服务器断开连接。 pidl1 参数包含从中断开计算机连接的服务器。 不使用 pidl2 参数,应为 NULL。
SHCNE_UPDATEDIR (0x00001000L)
现有文件夹的内容已更改,但该文件夹仍然存在且尚未重命名。 pidl1 参数包含已更改的文件夹。 不使用 pidl2 参数,应为 NULL。 如果已创建、删除或重命名文件夹,请分别改用 SHCNE_MKDIR、 SHCNE_RMDIR或 SHCNE_RENAMEFOLDER。
SHCNE_UPDATEIMAGE (0x00008000L)
系统映像列表中的映像已更改。 pidl2 参数包含系统映像列表中已更改的索引。
SHCNE_UPDATEITEM (0x00002000L)
文件夹或非文件夹 (现有项) 已更改,但该项仍然存在且尚未重命名。 pidl1 参数包含已更改的项。 不使用 pidl2 参数,应为 NULL。 如果已创建、删除或重命名非文件夹项,请分别使用 SHCNE_CREATE、 SHCNE_DELETE或 SHCNE_RENAMEITEM。
以下值指定其他事件的组合。
SHCNE_DISKEVENTS (0x0002381FL)
指定所有磁盘事件标识符的组合。
SHCNE_GLOBALEVENTS (0x0C0581E0L)
指定所有全局事件标识符的组合。
以下值修改其他事件值,不能单独使用。
SHCNE_INTERRUPT (0x80000000L)
指定的事件由于系统中断而发生。
[in, optional] pidl1
类型: PCIDLIST_ABSOLUTE
第一个事件相关项标识符。
[in, optional] pidl2
类型: PCIDLIST_ABSOLUTE
第二个事件相关项标识符。
返回值
类型: HRESULT
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
此方法在函数和用法上与 SHChangeNotify 类似。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版、Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | shlobj_core.h |
DLL | Shell32.dll (版本 4.71 或更高版本) |