다음을 통해 공유


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 변형 형식은 포인터이며 다른 수준의 간접 참조가 필요하지 않습니다.

반환 값

이 함수는 이러한 값 중 하나를 반환할 수 있습니다.

반환 코드 Description
S_OK
성공.
DISP_E_BADINDEX
지정한 인덱스가 잘못되었습니다.
E_INVALIDARG
인수 중 하나가 잘못되었습니다.
E_OUTOFMEMORY
요소에 메모리를 할당할 수 없습니다.

설명

이 함수는 요소를 할당하기 전과 후에 SafeArrayLockSafeArrayUnlock 을 자동으로 호출합니다. 데이터 요소가 문자열, 개체 또는 변형인 경우 안전 배열이 제거되면 함수가 올바르게 복사합니다. 기존 요소가 문자열, 개체 또는 변형인 경우 올바르게 지워집니다. 데이터 요소가 VT_DISPATCH 또는 VT_UNKNOWN 경우 AddRef 가 호출되어 개체의 참조 수를 증분합니다.

참고 배열에 여러 잠금이 있을 수 있습니다. 배열이 다른 작업에 의해 잠겨 있는 동안 요소를 배열에 넣을 수 있습니다.
 
SafeArrayPutElement 호출을 보여 주는 예제는 COM 기본 사항 줄 샘플(Lines.cpp CLines::Add)을 참조하세요.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 oleauto.h
라이브러리 OleAut32.lib
DLL OleAut32.dll