PSGetNamedPropertyFromPropertyStorage-Funktion (propsys.h)
Ruft einen Wert aus dem serialisierten Eigenschaftenspeicher nach Eigenschaftsname ab.
Syntax
PSSTDAPI PSGetNamedPropertyFromPropertyStorage(
[in] PCUSERIALIZEDPROPSTORAGE psps,
[in] DWORD cb,
[in] LPCWSTR pszName,
[out] PROPVARIANT *ppropvar
);
Parameter
[in] psps
Typ: PCUSERIALIZEDPROPSTORAGE
Ein Zeiger auf einen zugeordneten Puffer, der die serialisierten Eigenschaften enthält. Rufen Sie IPersistSerializedPropStorage::GetPropertyStorage auf, um den Puffer abzurufen.
[in] cb
Art: DWORD
Die Größe des USERIALIZESPROPSTORAGE-Puffers in Bytes, auf den psps verweist.
[in] pszName
Typ: LPCWSTR
Ein Zeiger auf eine mit NULL endende Unicode-Zeichenfolge, die den Namen der Eigenschaft enthält.
[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 durch Erstellen eines Speichereigenschaftenspeichers durch Aufrufen von PSCreateMemoryPropertyStore, Initialisieren des Eigenschaftenspeichers durch Aufrufen von IPersistSerializedPropStorage::SetPropertyStorage und Verwenden von INamedPropertyStore oder IPropertyStore zum Abrufen der Eigenschaften verbessert werden.
Beachten Sie, dass PSGetNamedPropertyFromPropertyStorage nur für serialisierte Puffer funktioniert, die von der Systemimplementierung von IPersistSerializedPropStorage erstellt wurden. Sie müssen zuerst einen Speicher für Die Speichereigenschaften 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 nicht transparent ist, sollten Anwendungen unterstützte Eigenschaftenspeicher-APIs verwenden, um auf den serialisierten Puffer zuzugreifen und diesen zu bearbeiten (siehe IPersistSerializedPropStorage und PSGetPropertyFromPropertyStorage).
Beispiele
Im folgenden Beispiel, das als Teil eines größeren Programms eingeschlossen werden soll, wird veranschaulicht, wie Sie PSGetNamedPropertyFromPropertyStorage 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 = PSGetNamedPropertyFromPropertyStorage(pStorage, cb, L"MyProperty", &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 |