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 (0x7FFFFFFFL)

所有事件都已發生。

SHCNE_ASSOCCHANGED (0x08000000L)

檔類型關聯已變更。 pidl1pidl2 參數不會使用,而且必須是 NULL

SHCNE_ATTRIBUTES (0x000000800L)

項目或資料夾的屬性已變更。 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 (0x000000080L)

已移除磁碟驅動器。 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 版或更新版本)