Share via


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 基本概念行範例 (CLines::Add in Lines.cpp) 。

規格需求

需求
目標平台 Windows
標頭 oleauto.h
程式庫 OleAut32.lib
Dll OleAut32.dll