PSGetPropertyFromPropertyStorage 関数 (propsys.h)

シリアル化されたプロパティ ストレージに格納されているプロパティの値を取得します。

構文

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

パラメーター

[in] psps

種類: PCUSERIALIZEDPROPSTORAGE

シリアル化されたプロパティを含む割り当てられたバッファーへのポインター。 このバッファーは、 IPersistSerializedPropStorage::GetPropertyStorage の呼び出しによって取得されます。

[in] cb

型: DWORD

psps が指す USERIALIZESPROPSTORAGE バッファーのサイズ (バイト単位)。

[in] rpkey

型: REFPROPERTYKEY

値を取得するプロパティを識別する PROPERTYKEY への参照。

[out] ppropvar

型: PROPVARIANT**

この関数が戻るとき、 には要求された値が格納されます。

戻り値

種類: PSSTDAPI

成功した場合 はS_OK を返し、それ以外の場合はエラー値を返します。

注釈

この関数は、呼び出し元のアプリケーションに既にシリアル化されたプロパティ ストレージがあり、ストレージからいくつかのプロパティが必要ない場合に呼び出すことを目的としています。 多くのプロパティを取得する必要がある場合は、 PSCreateMemoryPropertyStore を使用してメモリ プロパティ ストアを作成し、 IPersistSerializedPropStorage::SetPropertyStorage を呼び出してプロパティ ストアを初期化し、 IPropertyStore を使用してプロパティを取得することで、パフォーマンスを向上させることができます。

PSGetPropertyFromPropertyStorage、IPersistSerializedPropStorage のシステム実装によって作成されたシリアル化されたバッファーでのみ機能します。 まず 、PSCreateMemoryPropertyStore を呼び出してメモリ プロパティ ストアを取得する必要があります。 そのストアでは、 IPersistSerializedPropStorage インターフェイスを使用してシリアル化されたバッファーを作成できます。

SERIALIZEDPROPSTORAGE は、将来形式が変更される可能性がある不透明なシリアル化されたデータ構造ですが、それ以降のバージョンの Windows では以前の形式がサポートされます。 形式は不透明であるため、アプリケーションはサポートされているプロパティ ストレージ API を使用して、シリアル化されたバッファーにアクセスして操作する必要があります ( 「IPersistSerializedPropStorage」を参照)。

大規模なプログラムの一部として含める次の例では、 PSGetPropertyFromPropertyStorage を使用してシリアル化されたプロパティ ストレージから値を読み取る方法を示します。

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

要件

要件
サポートされている最小のクライアント WINDOWS XP と SP2、Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 SP1 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー propsys.h
Library Propsys.lib
[DLL] Propsys.dll (バージョン 6.0 以降)
再頒布可能パッケージ Windows デスクトップ検索 (WDS) 3.0

こちらもご覧ください

PSGetNamedPropertyFromPropertyStorage