다음을 통해 공유


VariantChangeTypeEx 함수(oleauto.h)

중요

이 API는 CY 값이 매우 클 때 VarI8FromCy가 잘못된 값을 생성하는 Microsoft 지원 항목에 설명된 문제의 영향을 받습니다.

LCID를 사용하여 변형을 한 형식에서 다른 형식으로 변환합니다.

구문

HRESULT VariantChangeTypeEx(
  [out] VARIANTARG       *pvargDest,
  [in]  const VARIANTARG *pvarSrc,
  [in]  LCID             lcid,
  [in]  USHORT           wFlags,
  [in]  VARTYPE          vt
);

매개 변수

[out] pvargDest

대상 변형입니다. pvarSrc와 동일한 경우 변형이 그대로 변환됩니다.

[in] pvarSrc

변환할 변형입니다.

[in] lcid

로캘 식별자입니다. LCID는 원본 또는 대상 VARIANTARG의 형식이 VT_BSTR, VT_DISPATCH 또는 VT_DATE 경우에 유용합니다.

[in] wFlags

플래그.

의미
VARIANT_NOVALUEPROP
Value 속성을 가져오면 함수가 개체를 기본 형식으로 강제 변환하지 못하도록 합니다. 애플리케이션은 해당 동작이 다른 애플리케이션과 일치하지 않으므로 필요한 경우에만 이 플래그를 설정해야 합니다.
VARIANT_ALPHABOOL
VT_BOOL 값을 "True" 또는 "False"가 포함된 문자열로 변환합니다.
VARIANT_NOUSEROVERRIDE
VT_BSTR 또는 에서 변환하는 경우 은 LOCALE_NOUSEROVERRIDE 핵심 강제 변환 루틴에 전달합니다.
VARIANT_LOCALBOOL
VT_BOOL VT_BSTR 및 뒤로 변환의 경우 로컬 컴퓨터에서 사용 중인 로캘에 지정된 언어를 사용합니다.

[in] vt

변환할 대상 형식입니다. 반환 코드가 S_OK 경우 *pvargDestvt 필드가 이 값과 같도록 보장됩니다.

반환 값

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

반환 코드 설명
S_OK
성공.
DISP_E_BADVARTYPE
변형 형식이 유효한 형식이 아닙니다.
DISP_E_OVERFLOW
pvarSrc가 가리키는 데이터가 대상 형식에 맞지 않습니다.
DISP_E_TYPEMISMATCH
인수를 지정된 형식으로 강제 변환할 수 없습니다.
E_INVALIDARG
인수 중 하나가 잘못되었습니다.
E_OUTOFMEMORY
메모리가 부족하여 작업을 완료할 수 없습니다.

설명

VariantChangeTypeEx 함수는 기본 형식 간의 강제 변환을 처리합니다(숫자-문자열 및 문자열-숫자 강제 변환 포함). VT_BYREF 설정된 변형은 참조된 값을 가져와 값으로 강제 변환됩니다. 개체의 Value 속성(DISPID_VALUE)을 호출하여 개체를 값으로 강제 변환합니다.

일반적으로 IDispatch::Invoke 의 구현자는 액세스 중인 멤버를 결정한 다음 VariantChangeType 을 호출하여 하나 이상의 인수 값을 가져옵니다. 예를 들어 IDispatch 호출이 하나의 문자열 인수를 사용하는 SetTitle 멤버를 지정하는 경우 구현자는 VariantChangeTypeEx 를 호출하여 인수를 VT_BSTR 강제 변환하려고 시도합니다.

VariantChangeTypeEx에서 오류를 반환하지 않으면 VARIANTARG의 bstrVal 필드에서 인수를 직접 가져올 수 있습니다. VariantChangeTypeEx가 DISP_E_TYPEMISMATCH 반환하는 경우 구현자는 *puArgErr를 0(오류의 인수 표시)으로 설정하고 IDispatch::Invoke에서 DISP_E_TYPEMISMATCH 반환합니다.

한 형식의 배열은 이 함수를 사용하여 다른 형식의 배열로 변환할 수 없습니다.

참고 VARIANTARG의 형식은 현재 위치의 rgvarg 배열에서 변경하면 안 됩니다.
 

요구 사항

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

추가 정보

변형 조작 함수

VariantChangeType