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 |