Share via


IVMRWindowlessControl::GetCurrentImage 메서드(strmif.h)

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

메서드는 GetCurrentImage VMR에 의해 표시되는 현재 이미지의 복사본을 검색합니다.

구문

HRESULT GetCurrentImage(
  [out] BYTE **lpDib
);

매개 변수

[out] lpDib

BYTE 배열에 대한 포인터의 주소입니다.

반환 값

메서드가 성공하면 S_OK가 반환되고, 그렇지 않으면 오류 코드가 반환됩니다.

반환 코드 설명
VFW_E_WRONG_STATE
VMR이 창 없는 모드가 아닙니다.

설명

이 메서드는 표시되는 현재 이미지를 반환합니다. 이미지는 압축된 Windows DIB 형식으로 반환됩니다. 이미지는 색상표 항목 및/또는 색 마스크를 포함한 BITMAPINFOHEADER 구조체와 이미지 데이터로 시작합니다.

VMR은 이미지에 대한 메모리를 할당하고 lpDib 변수에서 이미지에 대한 포인터를 반환합니다. 호출자는 CoTaskMemFree를 호출하여 메모리를 해제해야 합니다.

이 메서드는 필터의 상태, 실행 중, 중지 또는 일시 중지 여부에 관계없이 언제든지 호출할 수 있습니다. 그러나 이 메서드를 자주 호출하면 비디오 재생 성능이 저하됩니다.

예제

C++
BYTE *lpDib = NULL;
hr = pWindowlessControl->GetCurrentImage(&lpDib);
if (SUCCEEDED(hr))
{
    BITMAPINFOHEADER *pBMIH = (BITMAPINFOHEADER*)lpDib;
    /* .... */
    CoTaskMemFree(lpDib);
}

요구 사항

요구 사항
지원되는 최소 클라이언트 SP1이 설치된 Windows XP[데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 strmif.h(Dshow.h 포함)
라이브러리 Strmiids.lib

추가 정보

오류 및 성공 코드

IVMRWindowlessControl 인터페이스

비디오 혼합 렌더러 사용