Condividi tramite


Funzione PSGetPropertyFromPropertyStorage (propsys.h)

Ottiene il valore di una proprietà archiviata nell'archiviazione delle proprietà serializzate.

Sintassi

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

Parametri

[in] psps

Tipo: PCUSERIALIZEDPROPSTORAGE

Puntatore a un buffer allocato che contiene le proprietà serializzate. Questo buffer viene ottenuto da una chiamata a IPersistSerializedPropStorage::GetPropertyStorage.

[in] cb

Tipo: DWORD

Dimensioni, in byte, del buffer USERIALIZESPROPSTORAGE a cui punta psps.

[in] rpkey

Tipo: REFPROPERTYKEY

Riferimento a PROPERTYKEY che identifica la proprietà per cui ottenere il valore.

[out] ppropvar

Tipo: PROPVARIANT**

Quando termina, questa funzione contiene il valore richiesto.

Valore restituito

Tipo: PSSTDAPI

Restituisce S_OK in caso di esito positivo o un valore di errore in caso contrario.

Commenti

Questa funzione deve essere chiamata se l'applicazione chiamante dispone già di un archivio di proprietà serializzato e non richiede più di alcune proprietà dall'archiviazione. Se è necessario recuperare molte proprietà, è possibile migliorare le prestazioni creando un archivio delle proprietà di memoria tramite PSCreateMemoryPropertyStore, inizializzando l'archivio delle proprietà chiamando IPersistSerializedPropStorage::SetPropertyStorage e usando IPropertyStore per recuperare le proprietà.

Si noti che PSGetPropertyFromPropertyStorage funziona solo su buffer serializzati creati dall'implementazione di sistema di IPersistSerializedPropStorage. È innanzitutto necessario ottenere un archivio delle proprietà di memoria chiamando PSCreateMemoryPropertyStore. Tale archivio può quindi creare un buffer serializzato usando l'interfaccia IPersistSerializedPropStorage .

Anche se SERIALIZEDPROPSTORAGE è una struttura di dati serializzata opaca il cui formato può cambiare in futuro, i formati precedenti saranno supportati nelle versioni successive di Windows. Poiché il formato è opaco, le applicazioni devono usare le API di archiviazione delle proprietà supportate per accedere e modificare il buffer serializzato (vedere IPersistSerializedPropStorage).

Esempio

Nell'esempio seguente, da includere come parte di un programma più ampio, viene illustrato come usare PSGetPropertyFromPropertyStorage per leggere un valore dall'archiviazione delle proprietà serializzate.

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

Requisiti

Requisito Valore
Client minimo supportato Windows XP con SP2, Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 con SP1 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione propsys.h
Libreria Propsys.lib
DLL Propsys.dll (versione 6.0 o successiva)
Componente ridistribuibile Windows Desktop Search (WDS) 3.0

Vedi anche

PSGetNamedPropertyFromPropertyStorage