Implementing DoRendering (deprecated)

This page documents a feature that may be unavailable in future versions of Windows Media Player and the Windows Media Player SDK.

DoRendering is the method where the sample plug-in finally displays the text data. Whether rendering in windowed mode or windowless mode, the code that ultimately displays the text data is the same. In the sample plug-in generated by the plug-in wizard, the code first creates a bitmap in memory with a white background. The code accesses the data in the input buffer from within a critical section to prevent the data from changing during this operation. The following code from MakeBitmapFromData illustrates this:


// Begin critical section.
Lock();

BYTE *pbInputData = NULL;
DWORD cbInputLength = 0;

// Get the data pointer and the buffer length.
if( m_spInputBuffer.p )
{
    hr = m_spInputBuffer->GetBufferAndLength( &pbInputData, &cbInputLength );
}

if ( FAILED( hr ) )
{
    Unlock();
    Return hr;
}

// Display the data from the stream.
::DrawText( m_hdcMem, ( TCHAR* ) pbInputData, cbInputLength/sizeof( TCHAR ) - 1, &m_rctSrc, DT_VCENTER | DT_CENTER | DT_SINGLELINE );

// End critical section.
Unlock();

Once the bitmap exists, the code in DoRendering calls StretchBlt to copy the bitmap into the rendering region.

Implementing Your Rendering Code (deprecated)