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),并让该对象保存其数据。 这通常会导致属性包具有此对象的一些字节数组,这些字节数组可以保存为编码文本,例如十六进制字符串、MIME 等。 当属性包稍后用于重新初始化控件时,当调用方请求该对象时,拥有该属性包的客户端必须重新创建该对象,并使用以前保存的位初始化该对象。

这允许对二进制大型对象 (BLOB) 属性(如图片)执行高效暂留操作,其中属性包的所有者告诉图片对象 (该对象作为控件中的属性进行管理,) 保存到特定位置。 这避免了可能与其他基于属性的持久性机制相关的潜在额外复制操作。

E_NOTIMPL不是有效的返回代码,因为实现此接口的任何对象都必须支持接口的整个功能。

要求

要求
最低受支持的客户端 Windows 10内部版本 20348
最低受支持的服务器 Windows 10内部版本 20348
标头 oaidl.h