Share via


Méthode IShellItemArray ::GetPropertyStore (shobjidl_core.h)

Obtient un magasin de propriétés.

Syntaxe

HRESULT GetPropertyStore(
  [in]  GETPROPERTYSTOREFLAGS flags,
  [in]  REFIID                riid,
  [out] void                  **ppv
);

Paramètres

[in] flags

Type : GETPROPERTYSTOREFLAGS

Une des constantes GETPROPERTYSTOREFLAGS .

[in] riid

Type : REFIID

IID du type d’objet à récupérer.

[out] ppv

Type : void**

Lorsque cette méthode est retournée, contient le pointeur d’interface demandé dans riid. Il s’agit généralement de IPropertyStore ou IPropertyStoreCapabilities.

Valeur retournée

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

Cette méthode est utilisée pour obtenir un magasin de propriétés en lecture seule qui agrège les propriétés collectées à partir de tous les éléments du tableau d’éléments de l’interpréteur de commandes.

S’il existe plusieurs éléments dans le tableau d’éléments de l’interpréteur de commandes, le magasin de propriétés résultant agrège les valeurs de chaque élément en fonction d’un ensemble de règles déterminé par chaque propriété. Les valeurs lues à partir du magasin de propriétés sont converties sous une forme canonique avant l’agrégation, comme indiqué dans CoerceToCanonicalValue. La sortie d’un appel à IPropertyStore ::GetValue est calculée comme suit :

  • Les propriétés à valeur unique suivent la règle spécifiée par la chaîne de type d’agrégation dans le schéma de description de propriété.
    • Si le type d’agrégation est « DateRange » et que le type de propriété est un filetime, retourne un VT_VECTOR | VT_FILETIME de deux valeurs, ou une valeur VT_FILETIME si les valeurs étaient identiques.
    • Si le type d’agrégation est « First », retourne la première valeur non vide.
    • Si le type d’agrégation est « Sum », retourne la somme.
    • Si le type d’agrégation est « Moyenne », retourne la moyenne de toutes les valeurs non vides.
    • Si le type d’agrégation est « Minimum », retourne la valeur minimale.
    • Si le type d’agrégation est « Union » et que le type de propriété est une chaîne, retourne un VT_VECTOR | VT_LPWSTR contenant l’union de valeurs. L’ordre des valeurs n’est pas spécifié.
    • Si le type d’agrégation n’est pas spécifié, incompatible ou « Par défaut », retourne une valeur unique si elle est identique pour tous les éléments du tableau, ou une valeur spéciale utilisée pour indiquer que les valeurs diffèrent entre certains éléments. La valeur spéciale est un VT_VECTOR | VT_LPWSTR contenant deux chaînes : « Multiple » et « Valeurs ». Les applications appelantes doivent case activée pour cette valeur spéciale en recherchant VT_VECTOR | VT_LPWSTR si GetTypeFlags indique que la propriété a une valeur unique.
  • Les propriétés de chaîne à valeurs multiples retournent une intersection de leurs chaînes. L’ordre n’est pas spécifié.
Les appels à IsPropertyWritable retournent S_FALSE uniquement si tous les éléments ont des gestionnaires de propriétés qui implémentent IPropertyStoreCapabilities et que tous les magasins de propriétés indiquent qu’ils ne prennent pas en charge l’écriture de la propriété.

L’appel d’applications peut obtenir d’autres comportements d’agrégation en accédant directement aux éléments de l’interpréteur de commandes individuels et à leurs magasins de propriétés. Consultez IPropertyStore ::GetCount, IPropertyStore ::GetAt et GetPropertyStore.

L’écriture dans un tableau d’éléments d’interpréteur de commandes est prise en charge via l’API IFileOperation .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête shobjidl_core.h (incluez Shobjidl.h)