Share via


IPropertyBag::Write メソッド (oaidl.h)

名前付きプロパティを呼び出し元で初期化された VARIANT に保存します。

構文

HRESULT Write(
  LPCOLESTR pszPropName,
  VARIANT   *pVar
);

パラメーター

pszPropName

書き込むプロパティの名前を含む文字列のアドレス。 これを NULL にすることはできません。

pVar

保存するプロパティ値を保持する呼び出し元で初期化された VARIANT のアドレス。 呼び出し元はこの VARIANT を所有し、すべての割り当てを担当します。 つまり、プロパティ バッグは VARIANT 内のデータを解放しようとしません。

注釈

Write メソッドは、pVar の呼び出し元初期化 VARIANT の型と値を使用して、pszPropName という名前のプロパティを保存するようにプロパティ バッグに指示します。 場合によっては、呼び出し元がプロパティ バッグに別のオブジェクトを保存するように指示している場合があります (たとえば、 pVar->vt がVT_UNKNOWN場合)。 このような場合、プロパティ バッグはこのオブジェクト ポインターに対して IPersistStream や IPersistPropertyBag などの永続化インターフェイスを照会し、そのオブジェクトにもデータを保存させます。 通常、この結果、プロパティ バッグにはこのオブジェクトのバイト配列が含まれます。この配列は、16 進数の文字列、MIME など、エンコードされたテキストとして保存できます。 後でプロパティ バッグを使用してコントロールを再初期化する場合、プロパティ バッグを所有するクライアントは、呼び出し元が要求したときにオブジェクトを再作成し、以前に保存したビットでそのオブジェクトを初期化する必要があります。

これにより、画像などのバイナリ ラージ オブジェクト (BLOB) プロパティに対する効率的な永続化操作が可能になります。このプロパティ バッグの所有者は、画像オブジェクト (保存されたコントロールのプロパティとして管理されます) に特定の場所に保存するように指示します。 これにより、他のプロパティ ベースの永続化メカニズムに関係する可能性のある追加のコピー操作が回避されます。

E_NOTIMPLは、このインターフェイスを実装するオブジェクトがインターフェイスの機能全体をサポートする必要があるため、有効なリターン コードではありません。

要件

要件
サポートされている最小のクライアント Windows 10 ビルド 20348
サポートされている最小のサーバー Windows 10 ビルド 20348
Header oaidl.h