Compartir a través de


Función PSGetPropertyFromPropertyStorage (propsys.h)

Obtiene el valor de una propiedad tal como se almacena en el almacenamiento de propiedades serializado.

Sintaxis

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

Parámetros

[in] psps

Tipo: PCUSERIALIZEDPROPSTORAGE

Puntero a un búfer asignado que contiene las propiedades serializadas. Este búfer se obtiene mediante una llamada a IPersistSerializedPropStorage::GetPropertyStorage.

[in] cb

Tipo: DWORD

Tamaño, en bytes, del búfer USERIALIZESPROPSTORAGE al que apunta psps.

[in] rpkey

Tipo: REFPROPERTYKEY

Referencia a propertykey que identifica la propiedad para la que se va a obtener el valor.

[out] ppropvar

Tipo: PROPVARIANT**

Cuando se devuelve esta función, contiene el valor solicitado.

Valor devuelto

Tipo: PSSTDAPI

Devuelve S_OK si se ejecuta correctamente o un valor de error de lo contrario.

Comentarios

Esta función está pensada para llamarse si la aplicación que realiza la llamada ya tiene un almacenamiento de propiedades serializado y no necesita más de unas pocas propiedades del almacenamiento. Si es necesario recuperar muchas propiedades, el rendimiento se puede mejorar mediante la creación de un almacén de propiedades de memoria a través de PSCreateMemoryPropertyStore, inicializando el almacén de propiedades mediante una llamada a IPersistSerializedPropStorage::SetPropertyStorage y mediante IPropertyStore para recuperar las propiedades.

Tenga en cuenta que PSGetPropertyFromPropertyStorage solo funciona en búferes serializados creados por la implementación del sistema de IPersistSerializedPropStorage. Primero debe obtener un almacén de propiedades de memoria llamando a PSCreateMemoryPropertyStore. Después, ese almacén puede crear un búfer serializado mediante la interfaz IPersistSerializedPropStorage .

Aunque SERIALIZEDPROPSTORAGE es una estructura de datos serializada opaca cuyo formato puede cambiar en el futuro, se admitirán formatos anteriores en versiones posteriores de Windows. Dado que el formato es opaco, las aplicaciones deben usar las API de almacenamiento de propiedades compatibles para acceder y manipular el búfer serializado (consulte IPersistSerializedPropStorage).

Ejemplos

En el ejemplo siguiente, para incluirse como parte de un programa mayor, se muestra cómo usar PSGetPropertyFromPropertyStorage para leer un valor del almacenamiento de propiedades serializado.

// 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);
}

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP con SP2, Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 con SP1 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado propsys.h
Library Propsys.lib
Archivo DLL Propsys.dll (versión 6.0 o posterior)
Redistribuible Windows Desktop Search (WDS) 3.0

Consulte también

PSGetNamedPropertyFromPropertyStorage