Compartilhar via


Função PSGetPropertyFromPropertyStorage (propsys.h)

Obtém o valor de uma propriedade como armazenado no armazenamento de propriedades serializado.

Sintaxe

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

Parâmetros

[in] psps

Tipo: PCUSERIALIZEDPROPSTORAGE

Ponteiro para um buffer alocado que contém as propriedades serializadas. Esse buffer é obtido por uma chamada para IPersistSerializedPropStorage::GetPropertyStorage.

[in] cb

Tipo: DWORD

O tamanho, em bytes, do buffer USERIALIZESPROPSTORAGE apontado por psps.

[in] rpkey

Tipo: REFPROPERTYKEY

Referência à PROPERTYKEY que identifica a propriedade para a qual obter o valor.

[out] ppropvar

Tipo: PROPVARIANT**

Quando essa função retorna, contém o valor solicitado.

Retornar valor

Tipo: PSSTDAPI

Retorna S_OK se tiver êxito ou um valor de erro, caso contrário.

Comentários

Essa função deve ser chamada se o aplicativo de chamada já tiver um armazenamento de propriedades serializado e não precisar de mais do que algumas propriedades do armazenamento. Se muitas propriedades precisarem ser recuperadas, o desempenho poderá ser aprimorado criando um repositório de propriedades de memória por meio de PSCreateMemoryPropertyStore, inicializando o repositório de propriedades chamando IPersistSerializedPropStorage::SetPropertyStorage e usando IPropertyStore para recuperar as propriedades.

Observe que PSGetPropertyFromPropertyStorage funciona apenas em buffers serializados criados pela implementação do sistema de IPersistSerializedPropStorage. Primeiro, você deve obter um repositório de propriedades de memória chamando PSCreateMemoryPropertyStore. Esse repositório pode criar um buffer serializado usando a interface IPersistSerializedPropStorage .

Embora SERIALIZEDPROPSTORAGE seja uma estrutura de dados serializada opaca cujo formato pode mudar no futuro, os formatos anteriores terão suporte em versões subsequentes do Windows. Como o formato é opaco, os aplicativos devem usar APIs de armazenamento de propriedades com suporte para acessar e manipular o buffer serializado (consulte IPersistSerializedPropStorage).

Exemplos

O exemplo a seguir, a ser incluído como parte de um programa maior, demonstra como usar PSGetPropertyFromPropertyStorage para ler um valor do armazenamento de propriedades 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 Valor
Cliente mínimo com suporte Windows XP com SP2, Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 com SP1 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho propsys.h
Biblioteca Propsys.lib
DLL Propsys.dll (versão 6.0 ou posterior)
Redistribuível Pesquisa da Área de Trabalho do Windows (WDS) 3.0

Confira também

PSGetNamedPropertyFromPropertyStorage