Skip to content

Latest commit

 

History

History
106 lines (83 loc) · 5.93 KB

nf-shobjidl_core-ishellitemarray-getpropertystore.md

File metadata and controls

106 lines (83 loc) · 5.93 KB
UID title description helpviewer_keywords old-location tech.root ms.assetid ms.date ms.keywords req.header req.include-header req.target-type req.target-min-winverclnt req.target-min-winversvr req.kmdf-ver req.umdf-ver req.ddi-compliance req.unicode-ansi req.idl req.max-support req.namespace req.assembly req.type-library req.lib req.dll req.irql targetos req.typenames req.redist ms.custom f1_keywords dev_langs topic_type api_type api_location api_name
NF:shobjidl_core.IShellItemArray.GetPropertyStore
IShellItemArray::GetPropertyStore (shobjidl_core.h)
Gets a property store.
GetPropertyStore
GetPropertyStore method [Windows Shell]
GetPropertyStore method [Windows Shell]
IShellItemArray interface
IShellItemArray interface [Windows Shell]
GetPropertyStore method
IShellItemArray.GetPropertyStore
IShellItemArray::GetPropertyStore
_shell_IShellItemArray_GetPropertyStore
shell.IShellItemArray_GetPropertyStore
shobjidl_core/IShellItemArray::GetPropertyStore
shell\IShellItemArray_GetPropertyStore.htm
shell
138a604f-e8dd-48ee-9678-a0530c1a16f2
12/05/2018
GetPropertyStore, GetPropertyStore method [Windows Shell], GetPropertyStore method [Windows Shell],IShellItemArray interface, IShellItemArray interface [Windows Shell],GetPropertyStore method, IShellItemArray.GetPropertyStore, IShellItemArray::GetPropertyStore, _shell_IShellItemArray_GetPropertyStore, shell.IShellItemArray_GetPropertyStore, shobjidl_core/IShellItemArray::GetPropertyStore
shobjidl_core.h
Shobjidl.h
Windows
Windows Vista [desktop apps only]
Windows Server 2008 [desktop apps only]
Shobjidl.idl
Windows
19H1
IShellItemArray::GetPropertyStore
shobjidl_core/IShellItemArray::GetPropertyStore
c++
APIRef
kbSyntax
COM
shobjidl_core.h
IShellItemArray.GetPropertyStore

IShellItemArray::GetPropertyStore

-description

Gets a property store.

-parameters

-param flags [in]

Type: GETPROPERTYSTOREFLAGS

One of the GETPROPERTYSTOREFLAGS constants.

-param riid [in]

Type: REFIID

The IID of the object type to retrieve.

-param ppv [out]

Type: void**

When this method returns, contains interface pointer requested in riid. This is typically IPropertyStore or IPropertyStoreCapabilities.

-returns

Type: HRESULT

If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.

-remarks

This method is used to obtain a read-only property store that aggregates properties gathered from all the items in the shell item array.

If there is more than one item in the shell item array, then the resulting property store will aggregate the values from each item according to a set of rules determined by each property. Values read from the property store will be coerced to a canonical form prior to aggregation as discussed at CoerceToCanonicalValue. The output from a call to IPropertyStore::GetValue is computed as follows:

  • Single valued properties follow the rule specified by the aggregation type string in the property description schema.
    • If the aggregation type is "DateRange" and the property type is a filetime, returns a VT_VECTOR | VT_FILETIME of two values, or a VT_FILETIME value if the values were identical.
    • If the aggregation type is "First", returns the first non-empty value.
    • If the aggregation type is "Sum", returns the sum.
    • If the aggregation type is "Average", returns the average of all non-empty values.
    • If the aggregation type is "Minimum", returns the minimum value.
    • If the aggregation type is "Union" and the property type is a string, returns a VT_VECTOR | VT_LPWSTR containing the union of values. The order of the values is unspecified.
    • If the aggregation type is unspecified, incompatible, or "Default", either returns a single value if it is identical for all items in the array, or a special value used to indicate that the values differ between some of the items. The special value is a VT_VECTOR | VT_LPWSTR containing two strings: "Multiple" and "Values". Calling applications should check for this special value by checking for VT_VECTOR | VT_LPWSTR if GetTypeFlags indicates the property is single-valued.
  • Multi-valued string properties return an intersection of their strings. The order is unspecified.
Calls to IsPropertyWritable will return S_FALSE only if all the items have property handlers that implement IPropertyStoreCapabilities and all the property stores indicate they do not support writing the property.

Calling applications may achieve other aggregation behaviors by accessing the individual shell items and their property stores directly. See IPropertyStore::GetCount, IPropertyStore::GetAt, and GetPropertyStore.

Writing to an array of shell items is supported via the IFileOperation API.