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 |