Метод IShellItemArray::GetPropertyStore (shobjidl_core.h)
Возвращает хранилище свойств.
Синтаксис
HRESULT GetPropertyStore(
[in] GETPROPERTYSTOREFLAGS flags,
[in] REFIID riid,
[out] void **ppv
);
Параметры
[in] flags
Одна из констант GETPROPERTYSTOREFLAGS .
[in] riid
Тип: REFIID
Идентификатор IID извлекаемого типа объекта.
[out] ppv
Тип: void**
При возврате этим методом содержит указатель интерфейса, запрошенный в riid. Обычно это IPropertyStore или IPropertyStoreCapabilities.
Возвращаемое значение
Тип: HRESULT
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Этот метод используется для получения хранилища свойств только для чтения, которое агрегирует свойства, собранные из всех элементов в массиве элементов оболочки.
Если в массиве элементов оболочки несколько элементов, то результирующее хранилище свойств будет агрегировать значения из каждого элемента в соответствии с набором правил, определенных каждым свойством. Значения, прочитанные из хранилища свойств, будут приведены к канонической форме перед агрегированием, как описано в coerceToCanonicalValue. Выходные данные вызова IPropertyStore::GetValue вычисляются следующим образом:
- Однозначные свойства следуют правилу, заданному строкой типа агрегирования в схеме описания свойства.
-
- Если тип агрегирования — DateRange, а тип свойства — filetime, возвращает VT_VECTOR | VT_FILETIME двух значений или значение VT_FILETIME, если значения совпадают.
- Если агрегатный тип имеет значение First, возвращает первое непустое значение.
- Если тип агрегирования — Sum, возвращается сумма.
- Если агрегирование имеет тип "Average", возвращает среднее значение всех непустых значений.
- Если агрегирование имеет тип "Минимум", возвращает минимальное значение.
- Если тип агрегирования — Union, а тип свойства — строка, возвращает VT_VECTOR | VT_LPWSTR, содержащий объединение значений. Порядок значений не указан.
- Если тип агрегирования не указан, несовместим или "По умолчанию", возвращает одно значение, если оно идентично для всех элементов в массиве, или специальное значение, указывающее, что значения отличаются между некоторыми элементами. Специальным значением является VT_VECTOR | VT_LPWSTR, содержащая две строки: "Multiple" и "Values". Вызывающие приложения должны проверка для этого специального значения, проверив VT_VECTOR | VT_LPWSTR, если GetTypeFlags указывает, что свойство имеет однозначное значение.
- Многозначные строковые свойства возвращают пересечение строк. Заказ не указан.
Вызов приложений может достичь других способов агрегирования, напрямую обращаюсь к отдельным элементам оболочки и их хранилищам свойств. См. статьи IPropertyStore::GetCount, IPropertyStore::GetAt и GetPropertyStore.
Запись в массив элементов оболочки поддерживается через API IFileOperation .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | shobjidl_core.h (включая Shobjidl.h) |