Compartir a través de


Función PSGetNamedPropertyFromPropertyStorage (propsys.h)

Obtiene un valor del almacenamiento de propiedades serializado por nombre de propiedad.

Sintaxis

PSSTDAPI PSGetNamedPropertyFromPropertyStorage(
  [in]  PCUSERIALIZEDPROPSTORAGE psps,
  [in]  DWORD                    cb,
  [in]  LPCWSTR                  pszName,
  [out] PROPVARIANT              *ppropvar
);

Parámetros

[in] psps

Tipo: PCUSERIALIZEDPROPSTORAGE

Puntero a un búfer asignado que contiene las propiedades serializadas. Llame a IPersistSerializedPropStorage::GetPropertyStorage para obtener el búfer.

[in] cb

Tipo: DWORD

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

[in] pszName

Tipo: LPCWSTR

Puntero a una cadena Unicode terminada en null que contiene el nombre de la propiedad.

[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 mediante una llamada a PSCreateMemoryPropertyStore, inicializando el almacén de propiedades llamando a IPersistSerializedPropStorage::SetPropertyStorage y usando INamedPropertyStore o IPropertyStore para recuperar las propiedades.

Tenga en cuenta que PSGetNamedPropertyFromPropertyStorage 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 y PSGetPropertyFromPropertyStorage).

Ejemplos

En el ejemplo siguiente, para incluirse como parte de un programa mayor, se muestra cómo usar PSGetNamedPropertyFromPropertyStorage 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 = PSGetNamedPropertyFromPropertyStorage(pStorage, cb, L"MyProperty", &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

PSGetPropertyFromPropertyStorage