Funzione PSGetNamedPropertyFromPropertyStorage (propsys.h)
Ottiene un valore dall'archiviazione delle proprietà serializzate in base al nome della proprietà.
Sintassi
PSSTDAPI PSGetNamedPropertyFromPropertyStorage(
[in] PCUSERIALIZEDPROPSTORAGE psps,
[in] DWORD cb,
[in] LPCWSTR pszName,
[out] PROPVARIANT *ppropvar
);
Parametri
[in] psps
Tipo: PCUSERIALIZEDPROPSTORAGE
Puntatore a un buffer allocato che contiene le proprietà serializzate. Chiamare IPersistSerializedPropStorage::GetPropertyStorage per ottenere il buffer.
[in] cb
Tipo: DWORD
Dimensioni, in byte, del buffer USERIALIZESPROPSTORAGE a cui punta psps.
[in] pszName
Tipo: LPCWSTR
Puntatore a una stringa Unicode con terminazione Null contenente il nome della proprietà.
[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 chiamando PSCreateMemoryPropertyStore, inizializzando l'archivio delle proprietà chiamando IPersistSerializedPropStorage::SetPropertyStorage e usando INamedPropertyStore o IPropertyStore per recuperare le proprietà.
Si noti che PSGetNamedPropertyFromPropertyStorage 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 e PSGetPropertyFromPropertyStorage).
Esempio
Nell'esempio seguente, da includere come parte di un programma più ampio, viene illustrato come usare PSGetNamedPropertyFromPropertyStorage 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 = PSGetNamedPropertyFromPropertyStorage(pStorage, cb, L"MyProperty", &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 |