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 (0x7FFFFFFFL)
所有事件都已發生。
SHCNE_ASSOCCHANGED (0x08000000L)
檔類型關聯已變更。 pidl1 和 pidl2 參數不會使用,而且必須是 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_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 版或更新版本) |