VariantCopy 함수(oleauto.h)
대상 변형을 해제하고 원본 변형의 복사본을 만듭니다.
구문
HRESULT VariantCopy(
[out] VARIANTARG *pvargDest,
[in] const VARIANTARG *pvargSrc
);
매개 변수
[out] pvargDest
대상 변형입니다.
[in] pvargSrc
원본 변형입니다.
반환 값
이 함수는 이러한 값 중 하나를 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
성공. |
|
변형에는 잠긴 배열이 포함되어 있습니다. |
|
변형 형식이 유효한 형식이 아닙니다. |
|
인수 중 하나가 잘못되었습니다. |
|
메모리가 부족하여 작업을 완료할 수 없습니다. |
설명
먼저 VariantClear (pvargDest는 초기화되지 않은 메모리 위치가 아니라 유효한 초기화된 변형을 가리킬 수 있음)와 같이 pvargDest가 소유한 모든 메모리를 해제합니다. 그런 다음 pvargDest는 pvargSrc 콘텐츠의 정확한 복사본을 받습니다.
pvargSrc가 VT_BSTR 경우 문자열의 복사본이 만들어집니다. pvargSrcis가 VT_ARRAY 경우 전체 배열이 복사됩니다. pvargSrc가 VT_DISPATCH 또는 VT_UNKNOWN 경우 AddRef 가 호출되어 개체의 참조 횟수를 증분합니다.
복사할 변형이 참조로 전달되는 COM 개체인 경우 pvargSrcparameter의 vtfield는 VT_DISPATCH | VT_BYREF 또는 VT_UNKNOWN | VT_BYREF. 이 경우 VariantCopy 는 참조된 개체에 대한 참조 수를 증가시키지 않습니다. 복사되는 변형은 개체에 대한 참조에 대한 포인터이므로 VariantCopy 는 개체의 참조 수를 증분할 필요가 있는지 확인할 방법이 없습니다. 따라서 호출자는 개체에서 IUnknown::AddRef 를 적절하게 호출해야 합니다.
요구 사항
대상 플랫폼 | Windows |
헤더 | oleauto.h |
라이브러리 | OleAut32.lib |
DLL | OleAut32.dll |