다음을 통해 공유


IMFMediaEvent::GetValue 메서드(mfobjects.h)

이벤트와 연결된 값(있는 경우)을 검색합니다. 값은 PROPVARIANT 구조체로 검색됩니다. 실제 데이터 형식 및 값의 의미는 이벤트에 따라 달라집니다.

구문

HRESULT GetValue(
  [out] PROPVARIANT *pvValue
);

매개 변수

[out] pvValue

PROPVARIANT 구조체에 대한 포인터입니다. 메서드는 이 구조를 데이터로 채웁니다.

반환 값

이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.

반환 코드 Description
S_OK
메서드가 성공했습니다.

설명

이 메서드를 호출하기 전에 PropVariantInit 를 호출하여 PROPVARIANT 구조를 초기화합니다. 메서드가 반환된 후 PropVariantClear 를 호출하여 PROPVARIANT 데이터에 할당된 메모리를 해제합니다.

이 인터페이스는 Windows Media Format 11 SDK 재배포 가능 구성 요소가 설치된 경우 다음 플랫폼에서 사용할 수 있습니다.

  • WINDOWS XP SP2(서비스 팩 2) 이상
  • KB900325(Windows XP Media Center Edition 2005) 및 KB925766(Windows XP Media Center Edition용 2006년 10월 업데이트 롤업)이 설치된 Windows XP Media Center Edition 2005.

예제

값이 IUnknown 포인터인 경우 다음 함수는 이벤트 값을 가져옵니다. PROPVARIANT 형식이 VT_UNKOWN 않으면 함수는 MF_E_INVALIDTYPE 반환합니다.

//  Gets an IUnknown pointer from an IMFMediaEvent event and queries 
//  the pointer for a specified interface.
//
//  NOTE: Applies only to events that contain IUnknown pointers.
//        Otherwise, the function returns MF_E_INVALIDTYPE.

template <class Q>
HRESULT GetEventObject(IMFMediaEvent *pEvent, Q **ppObject)
{
    *ppObject = NULL;   // zero output

    PROPVARIANT var;
    HRESULT hr = pEvent->GetValue(&var);
    if (SUCCEEDED(hr))
    {
        if (var.vt == VT_UNKNOWN)
        {
            hr = var.punkVal->QueryInterface(ppObject);
        }
        else
        {
            hr = MF_E_INVALIDTYPE;
        }
        PropVariantClear(&var);
    }
    return hr;
}


요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 mfobjects.h(Mfidl.h 포함)
라이브러리 Mfuuid.lib

추가 정보

IMFMediaEvent

미디어 이벤트 생성기