SafeArrayPutElement 函数 (oleauto.h)

将数据元素存储在数组中的指定位置。

语法

HRESULT SafeArrayPutElement(
  [in] SAFEARRAY *psa,
  [in] LONG      *rgIndices,
  [in] void      *pv
);

参数

[in] psa

SafeArrayCreate 创建的数组描述符。

[in] rgIndices

数组每个维度的索引向量。 最右 (最小有效) 维度为 rgIndices[0]。 最左侧的维度存储在 。rgIndices[psa->cDims – 1]

[in] pv

要分配给数组的数据。 VT_DISPATCH、VT_UNKNOWN和VT_BSTR的变体类型是指针,不需要其他间接级别。

返回值

此函数可以返回其中一个值。

返回代码 说明
S_OK
成功。
DISP_E_BADINDEX
指定的索引无效。
E_INVALIDARG
其中一个参数无效。
E_OUTOFMEMORY
无法为 元素分配内存。

注解

此函数在分配元素之前和之后自动调用 SafeArrayLockSafeArrayUnlock 。 如果数据元素是字符串、对象或变体,则函数在销毁安全数组时会正确复制它。 如果现有元素是字符串、对象或变体,则会正确清除它。 如果数据元素是VT_DISPATCH或VT_UNKNOWN,则调用 AddRef 以递增对象的引用计数。

注意 一个数组上可以有多个锁。 当数组被其他操作锁定时,可以将元素放入数组中。
 
有关演示如何调用 SafeArrayPutElement 的示例,请参阅 com Fundamentals Lines 示例 (CLines::Add in Lines.cpp) 。

要求

要求
目标平台 Windows
标头 oleauto.h
Library OleAut32.lib
DLL OleAut32.dll