次の方法で共有


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 を呼び出してプロパティ ストアを初期化し、 INamedPropertyStore または IPropertyStore を使用してプロパティを取得することで、パフォーマンスを向上させることができます。

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

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

大規模なプログラムの一部として含める次の例では、 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
Library Propsys.lib
[DLL] Propsys.dll (バージョン 6.0 以降)
再頒布可能パッケージ Windows デスクトップ検索 (WDS) 3.0

こちらもご覧ください

PSGetPropertyFromPropertyStorage