Microsoft Windows CE 3.0  

CBaseControlVideo::GetStaticImage

Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Pure virtual method that derived classes override.

virtual HRESULT GetStaticImage(
long *
pBufferSize, 
long *
pDIBImage
) PURE;

Parameters

pBufferSize
Size of the output buffer.
pDIBImage
Pointer to output buffer.

Return Values

Returns an HRESULTvalue.

Remarks

Through the IBasicVideointerface, an application can request that it be given a copy of the current image in a memory buffer (some renderers can return E_NOTIMPL to this if they do not support it). The derived class determines how to retrieve the image. When the application calls CBaseControlVideo::GetStaticImage, it calls this pure virtual method that the derived class should override to implement it. This is also called by the CBaseControlVideo::GetCurrentImagemember function.

The class provides a helper member function, CBaseControlVideo::CopyImage, that can be given a sample that contains an image, and the member function will copy the relevant section of it (based on the current source rectangle) into the output buffer supplied by the application.

The following example from the video renderer sample, SampVid, demonstrates an implementation of this member function in a derived class. In this example, m_pRenderer holds an object of a class derived from CBaseVideoRenderer.

// Return a copy of the current image in the
video renderer HRESULT CVideoText::GetStaticImage(long
*pBufferSize,long *pDIBImage) { // Get any sample the renderer may
be holding. IMediaSample *pMediaSample =
m_pRenderer->GetCurrentSample(); if (pMediaSample == NULL) {
return E_UNEXPECTED; } // Call the base class helper method to do
the work. HRESULT hr = CopyImage(pMediaSample, // Buffer containing
image &m_pRenderer->m_mtIn, // Type representing bitmap
pBufferSize, // Size of buffer for DIB (BYTE*) pDIBImage); // Data
buffer for output pMediaSample->Release(); return hr; }