Função PSGetNamedPropertyFromPropertyStorage (propsys.h)
Obtém um valor do armazenamento de propriedades serializado pelo nome da propriedade.
Sintaxe
PSSTDAPI PSGetNamedPropertyFromPropertyStorage(
[in] PCUSERIALIZEDPROPSTORAGE psps,
[in] DWORD cb,
[in] LPCWSTR pszName,
[out] PROPVARIANT *ppropvar
);
Parâmetros
[in] psps
Tipo: PCUSERIALIZEDPROPSTORAGE
Um ponteiro para um buffer alocado que contém as propriedades serializadas. Chame IPersistSerializedPropStorage::GetPropertyStorage para obter o buffer.
[in] cb
Tipo: DWORD
O tamanho, em bytes, do buffer USERIALIZESPROPSTORAGE apontado por psps.
[in] pszName
Tipo: LPCWSTR
Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o nome da propriedade.
[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 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 chamando PSCreateMemoryPropertyStore, inicializando o repositório de propriedades chamando IPersistSerializedPropStorage::SetPropertyStorage e usando INamedPropertyStore ou IPropertyStore para recuperar as propriedades.
Observe que PSGetNamedPropertyFromPropertyStorage 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 e PSGetPropertyFromPropertyStorage).
Exemplos
O exemplo a seguir, a ser incluído como parte de um programa maior, demonstra como usar PSGetNamedPropertyFromPropertyStorage 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 = PSGetNamedPropertyFromPropertyStorage(pStorage, cb, L"MyProperty", &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 |