IMFVideoDisplayControl::GetCurrentImage method (evr.h)

Gets a copy of the current image being displayed by the video renderer.


HRESULT GetCurrentImage(
  [in, out] BITMAPINFOHEADER *pBih,
  [out]     BYTE             **pDib,
  [out]     DWORD            *pcbDib,
  [in, out] LONGLONG         *pTimeStamp


[in, out] pBih

Pointer to a BITMAPINFOHEADER structure that receives a description of the bitmap. Set the biSize member of the structure to sizeof(BITMAPINFOHEADER) before calling the method.

[out] pDib

Receives a pointer to a buffer that contains a packed Windows device-independent bitmap (DIB). The caller must free the memory for the bitmap by calling CoTaskMemFree.

[out] pcbDib

Receives the size of the buffer returned in pDib, in bytes.

[in, out] pTimeStamp

Receives the time stamp of the captured image.

Return value

The method returns an HRESULT. Possible values include, but are not limited to, those in the following table.

Return code Description
The method succeeded.
The content is protected and the license does not permit capturing the image.
The video renderer has been shut down.


This method can be called at any time. However, calling the method too frequently degrades the video playback performance.

This method retrieves a copy of the final composited image, which includes any substreams, alpha-blended bitmap, aspect ratio correction, background color, and so forth.

In windowed mode, the bitmap is the size of the destination rectangle specified in IMFVideoDisplayControl::SetVideoPosition. In full-screen mode, the bitmap is the size of the display.


Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Target Platform Windows
Header evr.h
Library Strmiids.lib

See also

Enhanced Video Renderer


Using the Video Display Controls