Freigeben über


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

Weitere Informationen

PSGetPropertyFromPropertyStorage