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


Интерфейс IShellFolder (shobjidl_core.h)

Предоставляемые всеми объектами папок пространства имен оболочки, его методы используются для управления папками.

Наследование

Интерфейс IShellFolder наследуется от интерфейса IUnknown . IShellFolder также имеет следующие типы элементов:

Методы

Интерфейс IShellFolder содержит следующие методы.

 
IShellFolder::BindToObject

Извлекает обработчик, обычно объект папки оболочки, который реализует IShellFolder для определенного элемента. Необязательные параметры, управляющие построением обработчика, передаются в контексте привязки.
IShellFolder::BindToStorage

Запрашивает указатель на интерфейс хранения объекта.
IShellFolder::CompareIDs

Определяет относительный порядок двух файловых объектов или папок с учетом их списков идентификаторов элементов.
IShellFolder::CreateViewObject

Запрашивает объект , который можно использовать для получения сведений из объекта папки или взаимодействия с ним.
IShellFolder::EnumObjects

Позволяет клиенту определить содержимое папки, создав объект перечисления идентификаторов элементов и возвратив его интерфейс IEnumIDList. Затем методы, поддерживаемые этим интерфейсом, можно использовать для перечисления содержимого папки.
IShellFolder::GetAttributesOf

Возвращает атрибуты одного или нескольких объектов файлов или папок, содержащихся в объекте, представленном IShellFolder.
IShellFolder::GetDisplayNameOf

Извлекает отображаемое имя для указанного объекта файла или вложенной папки.
IShellFolder::GetUIObjectOf

Возвращает объект , который можно использовать для выполнения действий с указанными файловым объектами или папками.
IShellFolder::P arseDisplayName

Преобразует отображаемое имя файлового объекта или папки в список идентификаторов элементов.
IShellFolder::SetNameOf

Задает отображаемое имя объекта файла или вложенной папки, изменяя идентификатор элемента в процессе.

Комментарии

Реализуйте этот интерфейс для объектов, расширяющих пространство имен оболочки. Например, реализуйте этот интерфейс, чтобы создать отдельное пространство имен, требующее корневого Обозреватель Windows, или установить новое пространство имен непосредственно в иерархии системного пространства имен. Вы наиболее знакомы с содержимым пространства имен, поэтому несете ответственность за реализацию всего необходимого для доступа к данным.

Используйте этот интерфейс, если необходимо отобразить или выполнить операцию с содержимым пространства имен оболочки. Объекты, поддерживающие IShellFolder , обычно создаются другими объектами папок оболочки. Чтобы получить интерфейс IShellFolder папки, обычно сначала вызывается SHGetDesktopFolder. Эта функция возвращает указатель на интерфейс IShellFolder рабочего стола. Затем его методы можно использовать для получения интерфейса IShellFolder для определенной папки пространства имен.

Обратите внимание, что методы IShellFolder принимают только PID-файлы, относящиеся к папке. Некоторые методы IShellFolder , например IShellFolder::GetAttributesOf, принимают только одноуровневые PID-файлы. Иными словами, PIDL должен содержать только одну структуру SHITEMID , а также завершающее значение NULL. При перечислении содержимого папки с помощью IEnumIDList вы получите PIDLs этой формы. Другие методы, такие как IShellFolder::CompareIDs, принимают многоуровневые PID-файлы. Эти PIDL могут иметь несколько структур SHITEMID и определять объекты на один или несколько уровней ниже родительской папки. Проверьте ссылку, чтобы убедиться, какой тип PIDL может быть принят определенным методом.
 

Примеры

Пример реализации IShellFolder можно увидеть в примере Обозреватель data provider Sample (Пример поставщика данных Обозреватель). Использование различных методов IShellFolder можно найти в нескольких примерах, включая пример операций с файлами.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header shobjidl_core.h