Método IShellItemArray::GetPropertyStore (shobjidl_core.h)
Obtiene un almacén de propiedades.
Sintaxis
HRESULT GetPropertyStore(
[in] GETPROPERTYSTOREFLAGS flags,
[in] REFIID riid,
[out] void **ppv
);
Parámetros
[in] flags
Tipo: GETPROPERTYSTOREFLAGS
Una de las constantes GETPROPERTYSTOREFLAGS .
[in] riid
Tipo: REFIID
IID del tipo de objeto que se va a recuperar.
[out] ppv
Tipo: void**
Cuando este método devuelve, contiene el puntero de interfaz solicitado en riid. Esto suele ser IPropertyStore o IPropertyStoreCapabilities.
Valor devuelto
Tipo: HRESULT
Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.
Comentarios
Este método se usa para obtener un almacén de propiedades de solo lectura que agrega propiedades recopiladas de todos los elementos de la matriz de elementos de shell.
Si hay más de un elemento en la matriz de elementos de shell, el almacén de propiedades resultante agregará los valores de cada elemento según un conjunto de reglas determinado por cada propiedad. Los valores leídos del almacén de propiedades se coercirán en un formulario canónico antes de la agregación, como se describe en CoerceToCanonicalValue. La salida de una llamada a IPropertyStore::GetValue se calcula de la siguiente manera:
- Las propiedades con valores únicos siguen la regla especificada por la cadena de tipo de agregación en el esquema de descripción de la propiedad.
-
- Si el tipo de agregación es "DateRange" y el tipo de propiedad es filetime, devuelve un VT_VECTOR | VT_FILETIME de dos valores o un valor de VT_FILETIME si los valores eran idénticos.
- Si el tipo de agregación es "First", devuelve el primer valor no vacío.
- Si el tipo de agregación es "Sum", devuelve la suma.
- Si el tipo de agregación es "Average", devuelve el promedio de todos los valores no vacíos.
- Si el tipo de agregación es "Minimum", devuelve el valor mínimo.
- Si el tipo de agregación es "Union" y el tipo de propiedad es una cadena, devuelve un VT_VECTOR | VT_LPWSTR que contiene la unión de valores. El orden de los valores no se especifica.
- Si el tipo de agregación no está especificado, no es compatible o "Predeterminado", devuelve un único valor si es idéntico para todos los elementos de la matriz o un valor especial utilizado para indicar que los valores difieren entre algunos de los elementos. El valor especial es un VT_VECTOR | VT_LPWSTR que contiene dos cadenas: "Multiple" y "Values". Las aplicaciones que llaman deben comprobar este valor especial comprobando si hay VT_VECTOR | VT_LPWSTR si GetTypeFlags indica que la propiedad tiene un solo valor.
- Las propiedades de cadena multivalor devuelven una intersección de sus cadenas. El orden no está especificado.
Las aplicaciones que llaman pueden lograr otros comportamientos de agregación accediendo directamente a los elementos de shell individuales y sus almacenes de propiedades. Consulte IPropertyStore::GetCount, IPropertyStore::GetAt y GetPropertyStore.
La escritura en una matriz de elementos de shell se admite a través de la API IFileOperation .
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | shobjidl_core.h (incluya Shobjidl.h) |