Freigeben über


PSGetPropertyFromPropertyStorage-Funktion (propsys.h)

Ruft den Wert einer Eigenschaft ab, die im serialisierten Eigenschaftenspeicher gespeichert ist.

Syntax

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

Parameter

[in] psps

Typ: PCUSERIALIZEDPROPSTORAGE

Zeiger auf einen zugeordneten Puffer, der die serialisierten Eigenschaften enthält. Dieser Puffer wird durch einen Aufruf von IPersistSerializedPropStorage::GetPropertyStorage abgerufen.

[in] cb

Art: DWORD

Die Größe des PUFFERS USERIALIZESPROPSTORAGE in Bytes, auf den psps verweist.

[in] rpkey

Typ: REFPROPERTYKEY

Verweis auf den PROPERTYKEY , der die Eigenschaft angibt, für die der Wert abgerufen werden soll.

[out] ppropvar

Typ: PROPVARIANT**

Wenn diese Funktion zurückgibt, enthält den angeforderten Wert.

Rückgabewert

Typ: PSSTDAPI

Gibt bei erfolgreicher Ausführung S_OK oder andernfalls einen Fehlerwert zurück.

Hinweise

Diese Funktion soll aufgerufen werden, wenn die aufrufende Anwendung bereits über einen serialisierten Eigenschaftenspeicher verfügt und nicht mehr als einige Eigenschaften aus dem Speicher benötigt. Wenn viele Eigenschaften abgerufen werden müssen, kann die Leistung verbessert werden, indem Sie einen Speichereigenschaftenspeicher über PSCreateMemoryPropertyStore erstellen, den Eigenschaftenspeicher initialisieren, indem Sie IPersistSerializedPropStorage::SetPropertyStorage aufrufen und die Eigenschaften mithilfe von IPropertyStore abrufen.

Beachten Sie, dass PSGetPropertyFromPropertyStorage nur für serialisierte Puffer funktioniert, die von der Systemimplementierung von IPersistSerializedPropStorage erstellt wurden. Sie müssen zuerst einen Speichereigenschaftenspeicher abrufen, indem Sie PSCreateMemoryPropertyStore aufrufen. Dieser Speicher kann dann mithilfe der IPersistSerializedPropStorage-Schnittstelle einen serialisierten Puffer erstellen.

Obwohl SERIALIZEDPROPSTORAGE eine undurchsichtige serialisierte Datenstruktur ist, deren Format sich in Zukunft ändern kann, werden frühere Formate in nachfolgenden Versionen von Windows unterstützt. Da das Format undurchsichtig ist, sollten Anwendungen unterstützte Eigenschaftenspeicher-APIs verwenden, um auf den serialisierten Puffer zuzugreifen und diesen zu bearbeiten (siehe IPersistSerializedPropStorage).

Beispiele

Im folgenden Beispiel, das als Teil eines größeren Programms eingeschlossen werden soll, wird veranschaulicht, wie Sie PSGetPropertyFromPropertyStorage verwenden, um einen Wert aus dem serialisierten Eigenschaftenspeicher zu lesen.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP mit SP2, Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 mit SP1 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile propsys.h
Bibliothek Propsys.lib
DLL Propsys.dll (Version 6.0 oder höher)
Verteilbare Komponente Windows Desktop Search (WDS) 3.0

Weitere Informationen

PSGetNamedPropertyFromPropertyStorage