Partager via


Fonction PSGetPropertyFromPropertyStorage (propsys.h)

Obtient la valeur d’une propriété telle qu’elle est stockée dans le stockage de propriétés sérialisées.

Syntaxe

PSSTDAPI PSGetPropertyFromPropertyStorage(
  [in]  PCUSERIALIZEDPROPSTORAGE psps,
  [in]  DWORD                    cb,
  [in]  REFPROPERTYKEY           rpkey,
  [out] PROPVARIANT              *ppropvar
);

Paramètres

[in] psps

Type : PCUSERIALIZEDPROPSTORAGE

Pointeur vers une mémoire tampon allouée qui contient les propriétés sérialisées. Cette mémoire tampon est obtenue par un appel à IPersistSerializedPropStorage ::GetPropertyStorage.

[in] cb

Type : DWORD

Taille, en octets, de la mémoire tampon USERIALIZESPROPSTORAGE pointée par psps.

[in] rpkey

Type : REFPROPERTYKEY

Référence à la PROPRIÉTÉKEY qui identifie la propriété pour laquelle obtenir la valeur.

[out] ppropvar

Type : PROPVARIANT**

Lorsque cette fonction retourne, contient la valeur demandée.

Valeur retournée

Type : PSSTDAPI

Retourne S_OK en cas de réussite, ou une valeur d’erreur dans le cas contraire.

Remarques

Cette fonction est destinée à être appelée si l’application appelante dispose déjà d’un stockage de propriétés sérialisé et n’a pas besoin de plus de quelques propriétés du stockage. Si de nombreuses propriétés doivent être récupérées, vous pouvez améliorer les performances en créant un magasin de propriétés mémoire via PSCreateMemoryPropertyStore, en initialisant le magasin de propriétés en appelant IPersistSerializedPropStorage ::SetPropertyStorage, et en utilisant IPropertyStore pour récupérer les propriétés.

Notez que PSGetPropertyFromPropertyStorage fonctionne uniquement sur les mémoires tampons sérialisées créées par l’implémentation système d’IPersistSerializedPropStorage. Vous devez d’abord obtenir un magasin de propriétés mémoire en appelant PSCreateMemoryPropertyStore. Ce magasin peut ensuite créer une mémoire tampon sérialisée à l’aide de l’interface IPersistSerializedPropStorage .

Bien que SERIALIZEDPROPSTORAGE soit une structure de données sérialisée opaque dont le format peut changer à l’avenir, les formats antérieurs seront pris en charge dans les versions ultérieures de Windows. Étant donné que le format est opaque, les applications doivent utiliser les API de stockage de propriété prises en charge pour accéder à la mémoire tampon sérialisée et manipuler (voir IPersistSerializedPropStorage).

Exemples

L’exemple suivant, à inclure dans le cadre d’un programme plus grand, montre comment utiliser PSGetPropertyFromPropertyStorage pour lire une valeur à partir du stockage de propriétés sérialisées.

// SERIALIZEDPROPSTORAGE *pStorage;
// DWORD cbStorage;
// Assume the variables pStorage and cbStorage are initialized and valid.  
PROPVARIANT propvar;

HRESULT hr = PSGetPropertyFromPropertyStorage(pStorage, cb, PKEY_Rating, &propvar);

if (SUCCEEDED(hr))
{
    // propvar is now valid.
 
    PropVariantClear(&propvar);
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP avec SP2, Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 avec SP1 [applications de bureau uniquement]
Plateforme cible Windows
En-tête propsys.h
Bibliothèque Propsys.lib
DLL Propsys.dll (version 6.0 ou ultérieure)
Composant redistribuable Windows Desktop Search (WDS) 3.0

Voir aussi

PSGetNamedPropertyFromPropertyStorage