Condividi tramite


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

Vedi anche

PSGetPropertyFromPropertyStorage