IShellChangeNotify::OnChange 方法 (shlobj_core.h)

通知命名空间扩展已发生影响其项的事件。

语法

HRESULT OnChange(
                 LONG              lEvent,
  [in, optional] PCIDLIST_ABSOLUTE pidl1,
  [in, optional] PCIDLIST_ABSOLUTE pidl2
);

参数

lEvent

类型: LONG

一个值,该值描述已发生的事件。 通常,一次只指定一个事件。 如果指定了多个事件,则 pidl1pidl2 参数中包含的值对于所有指定事件必须分别相同。 lEvent 参数可以包含以下一个或多个标志。

SHCNE_ALLEVENTS (0x7FFFFFL)

所有事件都已发生。

SHCNE_ASSOCCHANGED (0x08000000L)

文件类型关联已更改。 不使用 pidl1pidl2 参数,并且必须为 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_MKDIRSHCNE_RMDIRSHCNE_RENAMEFOLDER

SHCNE_UPDATEIMAGE (0x00008000L)

系统映像列表中的映像已更改。 pidl2 参数包含系统映像列表中已更改的索引。

SHCNE_UPDATEITEM (0x00002000L)

文件夹或非文件夹 (现有项) 已更改,但该项仍然存在且尚未重命名。 pidl1 参数包含已更改的项。 不使用 pidl2 参数,应为 NULL。 如果已创建、删除或重命名非文件夹项,请分别使用 SHCNE_CREATESHCNE_DELETESHCNE_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 或更高版本)