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 |