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」,則會傳回所有非空白值的平均值。
- 如果匯總類型為 「Minimum」,則傳回最小值。
- 如果匯總類型為 「Union」,且屬性類型為字串,則傳回VT_VECTOR |VT_LPWSTR包含值的聯集。 未指定值的順序。
- 如果匯總類型未指定、不相容或“Default”,如果陣列中的所有專案都相同,或用來指出某些專案之間的值不同,則會傳回單一值。 特殊值為 VT_VECTOR |VT_LPWSTR包含兩個字串:“Multiple” 和 “Values”。 呼叫應用程式應該藉由檢查VT_VECTOR來檢查此特殊值 |VT_LPWSTR如果 GetTypeFlags 指出屬性為單一值。
- 多重值字串屬性會傳回其字串的交集。 未指定順序。
呼叫應用程式可能會藉由直接存取個別殼層專案及其屬性存放區,來達成其他匯總行為。 請參閱 IPropertyStore::GetCount、 IPropertyStore::GetAt 和 GetPropertyStore。
透過 IFileOperation API 支援寫入殼層項目的陣列。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | shobjidl_core.h (包含 Shobjidl.h) |