次の方法で共有


IPropertyStore::SetValue メソッド (propsys.h)

このメソッドは、プロパティ値を設定するか、既存の値を置換または削除します。

構文

HRESULT SetValue(
  REFPROPERTYKEY key,
  REFPROPVARIANT propvar
);

パラメーター

key

TBD

propvar

TBD

戻り値

メソッドは IPropertyStore::SetValue 、次のいずれかを返すことができます。

リターン コード 説明
S_OK
プロパティの変更が成功しました。
INPLACE_S_TRUNCATED
値は設定されましたが、切り捨てられました。
STG_E_ACCESSDENIED
これはエラー コードです。 プロパティ ストアは読み取り専用であるため、 メソッドで値を設定できませんでした。

注釈

IPropertyStore::SetValue は、現在のプロパティ ストア インスタンスにのみ影響します。 プロパティ ハンドラーは、 IPropertyStore::SetValue メモリ内のデータ構造にプロパティの変更を蓄積することによって実装します。 プロパティの変更は、 IPropertyStore::Commit が呼び出された場合にのみストリームに書き込まれます。

読み取り専用プロパティ ストアで IPropertyStore::Commit が呼び出された場合、プロパティ ハンドラーはこれを決定し、STG_E_ACCESSDENIEDを返します。

の結果SetValueとして値が追加または削除された場合、IPropertyStore::GetCount および IPropertyStore::GetAt による後続の列挙には、その変更と、変更された値を反映するIPropertyStore::SetValue後続の呼び出しが反映されます。

新しいプロパティの追加

キーによって指されたプロパティ値がストアに存在しない場合は、 IPropertyStore::SetValue その値をストアに追加します。

既存のプロパティ値の置換

キーによって指されていたプロパティ値が既にストアに存在する場合は、格納されている値が置き換えられます。

既存のプロパティの削除

プロパティ ストアから値を削除するには、pv が指す構造体の vt メンバーをVT_EMPTYに設定します。 その値が存在しない場合は、何も行わないと、メソッドはS_OKを返します。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header propsys.h
Library Propsys.idl
IRQL すべてのレベル

こちらもご覧ください

IPropertyStore

IPropertyStore::Commit

IPropertyStore::GetAt

IPropertyStore::GetCount