Метод 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 (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 Professional, Windows XP [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | shlobj_core.h |
DLL | Shell32.dll (версия 4.71 или более поздняя) |