共用方式為


PSGetNamedPropertyFromPropertyStorage 函式 (propsys.h)

依屬性名稱從串行化屬性記憶體取得值。

語法

PSSTDAPI PSGetNamedPropertyFromPropertyStorage(
  [in]  PCUSERIALIZEDPROPSTORAGE psps,
  [in]  DWORD                    cb,
  [in]  LPCWSTR                  pszName,
  [out] PROPVARIANT              *ppropvar
);

參數

[in] psps

類型: PCUSERIALIZEDPROPSTORAGE

包含串行化屬性之已配置緩衝區的指標。 呼叫 IPersistSerializedPropStorage::GetPropertyStorage 以取得緩衝區。

[in] cb

類型: DWORD

PSps 指向之 USERIALIZESPROPSTORAGE 緩衝區的大小,以位元組為單位。

[in] pszName

類型: LPCWSTR

以 Null 結尾的 Unicode 字串指標,其中包含屬性的名稱。

[out] ppropvar

類型: PROPVARIANT*

當此函式傳回時,會包含要求的 值。

傳回值

類型: PSSTDAPI

如果成功,則傳回 S_OK ,否則傳回錯誤值。

備註

如果呼叫的應用程式已經有串行化屬性儲存區,而且記憶體中不需要超過幾個屬性,則此函式是想要呼叫的。 如果需要擷取許多屬性,可以藉由呼叫 PSCreateMemoryPropertyStore 來建立記憶體屬性存放區,藉由呼叫 IPersistSerializedPropStorage::SetPropertyStorage 來初始化屬性存放區,以及使用 INamedPropertyStoreIPropertyStore 來擷取屬性來初始化屬性存放區。

請注意, PSGetNamedPropertyFromPropertyStorage 僅適用於 IPersistSerializedPropStorage 系統實作所建立的串行化緩衝區。 您必須先呼叫 PSCreateMemoryPropertyStore 來取得記憶體屬性存放區;該存放區接著可以使用 IPersistSerializedPropStorage 介面建立串行化緩衝區。

雖然 SERIALIZEDPROPSTORAGE 是不透明的串行化數據結構,其格式未來可能會變更,但後續版本的 Windows 將會支援舊版的格式。 因為格式不透明,所以應用程式應該使用支援的屬性記憶體 API 來存取及操作串行化緩衝區 (請參閱 IPersistSerializedPropStoragePSGetPropertyFromPropertyStorage) 。

範例

下列範例要包含在較大的程式中,示範如何使用 PSGetNamedPropertyFromPropertyStorage 從串行化屬性記憶體讀取值。

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

規格需求

需求
最低支援的用戶端 Windows XP 搭配 SP2、Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 SP1 [僅限傳統型應用程式]
目標平台 Windows
標頭 propsys.h
程式庫 Propsys.lib
Dll Propsys.dll (6.0 版或更新版本)
可轉散發套件 Windows 桌面搜尋 (WDS) 3.0

另請參閱

PSGetPropertyFromPropertyStorage