Поделиться через


Метод 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 или более поздняя)