다음을 통해 공유


VariantToBuffer 함수(propvarutil.h)

VT_ARRRAY 형식의 VARIANT 구조에 저장된 버퍼의 내용을 추출합니다. VT_UI1.

구문

PSSTDAPI VariantToBuffer(
  [in]  REFVARIANT varIn,
  [out] void       *pv,
  [in]  UINT       cb
);

매개 변수

[in] varIn

형식: REFVARIANT

원본 VARIANT 구조에 대한 참조입니다.

[out] pv

형식: VOID*

길이 cb 바이트의 버퍼에 대한 포인터입니다. 이 함수가 반환될 때 추출된 버퍼 값의 첫 번째 cb 바이트를 포함합니다.

[in] cb

형식: UINT

pv 버퍼의 크기(바이트)입니다. 버퍼는 추출할 데이터와 크기가 같거나 작아야 합니다.

반환 값

형식: HRESULT

다음 값 중 하나를 반환합니다.

반환 코드 Description
S_OK
데이터가 성공적으로 추출되었습니다.
E_INVALIDARG
VARIANT가 VT_ARRRAY 형식이 아닙니다. | VT_UI1.
E_FAIL
VARIANT 버퍼 값이 cb 바이트보다 적습니다.

설명

이 함수는 호출 애플리케이션에 VARIANT 가 버퍼 값을 보유해야 하는 경우에 사용됩니다. 호출하는 애플리케이션은 이 함수를 호출하기 전에 값의 예상 길이가 검사 합니다.

원본 VARIANT 에 VT_ARRAY 형식이 있는 경우 | VT_UI1 이 함수는 구조체에서 첫 번째 cb 바이트를 추출하고 pv가 가리키는 버퍼에 배치합니다.

저장된 값이 cb 바이트보다 작으면 VariantToBuffer 가 실패하고 버퍼가 수정되지 않습니다.

값이 cb 바이트보다 많은 경우 VariantToBuffer 가 성공하고 값을 자립니다.

예제

더 큰 프로그램의 일부로 포함할 다음 예제에서는 VariantToBuffer 를 사용하여 VARIANT에 저장된 구조체에 액세스하는 방법을 보여 줍니다.

// VARIANT var;
// Assume variable var is initialized and valid. 
// The application expects var to hold a WIN32_FIND_DATAW structure 
// with sizeof(WIN32_FIND_DATAW) bytes.

HRESULT hr = E_UNEXPECTED;

// Verify that the value length is acceptable before you call VariantToBuffer.
if (VariantGetElementCount(var) == sizeof(WIN32_FIND_DATAW))
{
    WIN32_FIND_DATAW wfd;

    hr = VariantToBuffer(var, &wfd, sizeof(wfd));

    if (SUCCEEDED(hr))
    {
        // wfd is now initialized.
    }
}

요구 사항

요구 사항
지원되는 최소 클라이언트 WINDOWS XP SP2, Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 SP1 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 propvarutil.h
라이브러리 Propsys.lib
DLL Propsys.dll(버전 6.0 이상)
재배포 가능 파일 WDS(Windows 데스크톱 검색) 3.0

추가 정보

InitVariantFromBuffer

PropVariantToBuffer