There is a way.
To use DirectShow filters.
DirectX SDK has one program named Graph Edit C:\DXSDK\Bin\DXUtils\graphedt.exe .
You can use it to understand, what is going on when you play movies.
Here are some classes you need and some code from existing program.
All you need is to add Flv filters, connect them and select the window.
Here is the base.
IGraphBuilder *pGB = NULL;
IMediaControl *pMC = NULL;
IMediaEventEx *pME = NULL;
IVideoWindow *pVW = NULL;
IBasicAudio *pBA = NULL;
IBasicVideo *pBV = NULL;
IMediaSeeking *pMS = NULL;
IMediaPosition *pMP = NULL;
IVideoFrameStep *pFS = NULL;
<pre lang="xml"> CComPtr<IBaseFilter> pSource;
JIF(pGB->AddSourceFilter(wFile, L"Source", &pSource));
CComPtr<IPin> pSrcPin;
JIF(pSource->FindPin(L"Output", &pSrcPin));
CComPtr<IBaseFilter> pRendererFilter;
JIF(pRendererFilter.CoCreateInstance(CLSID_StereoRendererLR, NULL, CLSCTX_INPROC_SERVER));
JIF(pGB->AddFilter(pRendererFilter, L"Stereo Renderer LR"));
CComPtr<IBaseFilter> pDirectSound;
JIF(pDirectSound.CoCreateInstance(CLSID_DSoundRender, NULL, CLSCTX_INPROC_SERVER));
JIF(pGB->AddFilter(pDirectSound, L"DirectSound"));
CComPtr<IFilterGraph2> pFG2;
JIF(pGB->QueryInterface(IID_IFilterGraph2, (void **)&pFG2));
JIF(pFG2->RenderEx(pSrcPin, AM_RENDEREX_RENDERTOEXISTINGRENDERERS, NULL));
JIF(pGB->QueryInterface(IID_IMediaControl, (void **)&pMC));
JIF(pGB->QueryInterface(IID_IMediaEventEx, (void **)&pME));
JIF(pGB->QueryInterface(IID_IMediaSeeking, (void **)&pMS));
JIF(pGB->QueryInterface(IID_IMediaPosition, (void **)&pMP));
JIF(pGB->QueryInterface(IID_IVideoWindow, (void **)&pVW));
JIF(pGB->QueryInterface(IID_IBasicVideo, (void **)&pBV));
JIF(pGB->QueryInterface(IID_IBasicAudio, (void **)&pBA));