Metodo IShellItemArray::GetPropertyStore (shobjidl_core.h)
Ottiene un archivio delle proprietà.
Sintassi
HRESULT GetPropertyStore(
[in] GETPROPERTYSTOREFLAGS flags,
[in] REFIID riid,
[out] void **ppv
);
Parametri
[in] flags
Tipo: GETPROPERTYSTOREFLAGS
Una delle costanti GETPROPERTYSTOREFLAGS .
[in] riid
Tipo: REFIID
IID del tipo di oggetto da recuperare.
[out] ppv
Tipo: void**
Quando termina, questo metodo contiene il puntatore di interfaccia richiesto in riid. Si tratta in genere di IPropertyStore o IPropertyStoreCapabilities.
Valore restituito
Tipo: HRESULT
Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .
Commenti
Questo metodo viene usato per ottenere un archivio di proprietà di sola lettura che aggrega le proprietà raccolte da tutti gli elementi nella matrice di elementi della shell.
Se nella matrice di elementi della shell sono presenti più elementi, l'archivio delle proprietà risultante aggrega i valori di ogni elemento in base a un set di regole determinate da ogni proprietà. I valori letti dall'archivio delle proprietà verranno forzati in una forma canonica prima dell'aggregazione, come illustrato in CoerceToCanonicalValue. L'output di una chiamata a IPropertyStore::GetValue viene calcolato come segue:
- Le proprietà con valori singoli seguono la regola specificata dalla stringa del tipo di aggregazione nello schema della descrizione della proprietà.
-
- Se il tipo di aggregazione è "DateRange" e il tipo di proprietà è un filetime, restituisce un VT_VECTOR | VT_FILETIME di due valori o un valore VT_FILETIME se i valori sono identici.
- Se il tipo di aggregazione è "First", restituisce il primo valore non vuoto.
- Se il tipo di aggregazione è "Sum", restituisce la somma.
- Se il tipo di aggregazione è "Average", restituisce la media di tutti i valori non vuoti.
- Se il tipo di aggregazione è "Minimum", restituisce il valore minimo.
- Se il tipo di aggregazione è "Union" e il tipo di proprietà è una stringa, restituisce un VT_VECTOR | VT_LPWSTR contenente l'unione dei valori. L'ordine dei valori non è specificato.
- Se il tipo di aggregazione non è specificato, incompatibile o "Default", restituisce un singolo valore se è identico per tutti gli elementi della matrice o un valore speciale utilizzato per indicare che i valori differiscono tra alcuni elementi. Il valore speciale è un VT_VECTOR | VT_LPWSTR contenente due stringhe: "Multiple" e "Values". Le applicazioni chiamante devono verificare la presenza di questo valore speciale controllando la presenza di VT_VECTOR | VT_LPWSTR se GetTypeFlags indica che la proprietà è a valore singolo.
- Le proprietà di stringa multivalore restituiscono un'intersezione delle stringhe. L'ordine non è specificato.
Le applicazioni chiamanti possono ottenere altri comportamenti di aggregazione accedendo direttamente ai singoli elementi della shell e ai relativi archivi di proprietà. Vedere IPropertyStore::GetCount, IPropertyStore::GetAt e GetPropertyStore.
La scrittura in una matrice di elementi della shell è supportata tramite l'API IFileOperation .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | shobjidl_core.h (include Shobjidl.h) |