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 |