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 错误代码。
注解
此方法用于获取只读属性存储,该存储聚合从 shell 项数组中的所有项收集的属性。
如果 shell 项数组中有多个项,则生成的属性存储将根据每个属性确定的一组规则聚合每个项的值。 从属性存储中读取的值将在聚合之前强制转换为规范形式,如 CoerceToCanonicalValue 中所述。 调用 IPropertyStore::GetValue 的输出计算如下:
- 单个值属性遵循由属性说明架构中的 聚合类型 字符串指定的规则。
-
- 如果聚合类型为“DateRange”,并且属性类型为 filetime,则返回VT_VECTOR |VT_FILETIME两个值,如果值相同,则为VT_FILETIME值。
- 如果聚合类型为“First”,则返回第一个非空值。
- 如果聚合类型为“Sum”,则返回总和。
- 如果聚合类型为“Average”,则返回所有非空值的平均值。
- 如果聚合类型为“Minimum”,则返回最小值。
- 如果聚合类型为“Union”,并且属性类型为字符串,则返回VT_VECTOR |包含值并集的VT_LPWSTR。 值的顺序未指定。
- 如果聚合类型未指定、不兼容或“Default”,则返回一个值(如果数组中的所有项都相同),或者返回一个用于指示某些项之间的值不同的特殊值。 特殊值是VT_VECTOR |包含两个字符串的VT_LPWSTR:“Multiple”和“Values”。 调用应用程序应通过检查VT_VECTOR来检查此特殊值 |VT_LPWSTR GetTypeFlags 是否指示 属性是单值属性。
- 多值字符串属性返回其字符串的交集。 顺序未指定。
调用应用程序可以通过直接访问单个 shell 项及其属性存储来实现其他聚合行为。 请参阅 IPropertyStore::GetCount、 IPropertyStore::GetAt 和 GetPropertyStore。
支持通过 IFileOperation API 写入 shell 项数组。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | shobjidl_core.h (包括 Shobjidl.h) |