Partager via


PsGetNamedPropertyFromPropertyStorage, fonction (propsys.h)

Obtient une valeur du stockage de propriétés sérialisées par nom de propriété.

Syntaxe

PSSTDAPI PSGetNamedPropertyFromPropertyStorage(
  [in]  PCUSERIALIZEDPROPSTORAGE psps,
  [in]  DWORD                    cb,
  [in]  LPCWSTR                  pszName,
  [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. Appelez IPersistSerializedPropStorage ::GetPropertyStorage pour obtenir la mémoire tampon.

[in] cb

Type : DWORD

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

[in] pszName

Type : LPCWSTR

Pointeur vers une chaîne Unicode terminée par un caractère Null qui contient le nom de la propriété.

[out] ppropvar

Type : PROPVARIANT*

Lorsque cette fonction est retournée, 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 besoin que 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 en appelant PSCreateMemoryPropertyStore, en initialisant le magasin de propriétés en appelant IPersistSerializedPropStorage ::SetPropertyStorage et en utilisant INamedPropertyStore ou IPropertyStore pour récupérer les propriétés.

Notez que PSGetNamedPropertyFromPropertyStorage fonctionne uniquement sur les mémoires tampons sérialisées créées par l’implémentation système de IPersistSerializedPropStorage. Vous devez d’abord obtenir un magasin de propriétés de 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 sur les versions ultérieures de Windows. Étant donné que le format est opaque, les applications doivent utiliser les API de stockage de propriétés prises en charge pour accéder à la mémoire tampon sérialisée et la manipuler (voir IPersistSerializedPropStorage et PSGetPropertyFromPropertyStorage).

Exemples

L’exemple suivant, à inclure dans le cadre d’un programme plus large, montre comment utiliser PSGetNamedPropertyFromPropertyStorage 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 = PSGetNamedPropertyFromPropertyStorage(pStorage, cb, L"MyProperty", &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

PSGetPropertyFromPropertyStorage