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 |
---|---|
|
데이터가 성공적으로 추출되었습니다. |
|
VARIANT가 VT_ARRRAY 형식이 아닙니다. | VT_UI1. |
|
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 |