Метод IShellFolder::GetAttributesOf (shobjidl_core.h)
Возвращает атрибуты одного или нескольких объектов файлов или папок, содержащихся в объекте, представленном IShellFolder.
Синтаксис
HRESULT GetAttributesOf(
[in] UINT cidl,
[in] PCUITEMID_CHILD_ARRAY apidl,
[in, out] SFGAOF *rgfInOut
);
Параметры
[in] cidl
Тип: UINT
Количество элементов, из которых извлекаются атрибуты.
[in] apidl
Тип: PCUITEMID_CHILD_ARRAY*
Адрес массива указателей на структуры ITEMIDLIST , каждая из которых однозначно определяет элемент относительно родительской папки. Каждая структура ITEMIDLIST должна содержать ровно одну структуру SHITEMID , за которой следует завершающий ноль.
[in, out] rgfInOut
Тип: SFGAOF*
Указатель на одно значение ULONG , которое в записи содержит побитовые атрибуты SFGAO , запрашиваемые вызывающим приложением. При выходе это значение содержит запрошенные атрибуты, общие для всех указанных элементов.
Возвращаемое значение
Тип: HRESULT
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Чтобы оптимизировать эту операцию, не возвращайте неопределенные флаги.
Для объекта папки атрибут SFGAO_BROWSABLE подразумевает, что клиент может привязаться к этому объекту, как показано в общей форме здесь.
IShellFolder::BindToObject(..., pidl, IID_IShellFolder, &psfItem);
Затем клиент может создать IShellView для этого элемента с помощью этой инструкции.
psfItem->CreateViewObject(..., IID_IShellView,...);
Атрибут SFGAO_DROPTARGET подразумевает, что клиент может привязаться к экземпляру IDropTarget для этой папки, вызвав метод IShellFolder::GetUIObjectOf , как показано ниже.
IShellFolder::GetUIObjectOf(hwnd, 1, &pidl, IID_IDropTarget, NULL, &pv)
Атрибут SFGAO_NONENUMERATED указывает элемент, который не возвращается перечислителем, созданным методом IShellFolder::EnumObjects .
Требования
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | shobjidl_core.h (включая Shobjidl.h) |
DLL | Shell32.dll (версия 4.0 или более поздняя) |