1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
void DSFilterGraphManager::InitCom()
{
pGraph = NULL;
pControl= NULL;
pEvent = NULL;
pSeek = NULL;
CoInitializeEx (NULL, COINIT_APARTMENTTHREADED );
CoCreateInstance(CLSID_FilterGraph, NULL,
CLSCTX_INPROC_SERVER,
IID_IGraphBuilder,
(void **)&pGraph );
CoCreateInstance( CLSID_DvdGraphBuilder,
NULL,
CLSCTX_INPROC_SERVER,
IID_IDvdGraphBuilder,
(void **)&pDVD );
AM_DVD_RENDERSTATUS buildStatus;
pDVD->RenderDvdVideoVolume(L"",AM_DVD_HWDEC_PREFER,&buildStatus);
pDVD->GetFiltergraph(&pGraph);
pGraph->QueryInterface(IID_IMediaControl,(void **)&pControl);
pGraph->QueryInterface(IID_IMediaEventEx,(void **)&pEvent );
pGraph->QueryInterface(IID_IMediaSeeking,(void **)&pSeek);
pGraph->QueryInterface(IID_IBasicAudio, (void **)&pAudio);
pGraph->QueryInterface(IID_IVideoWindow, (void **)&pWin);
pDVD->GetDvdInterface(IID_IDvdInfo2, (void **)&pDVDInfo);
pDVD->GetDvdInterface(IID_IDvdControl2, (void **)&pDVDControl2);
pDVD->GetDvdInterface(IID_IVideoWindow, (void **)&pDVDWin);
pDVD->GetDvdInterface(IID_IAMLine21Decoder,(void **)&pLine21Dec);
}
//------------------------------------------------------------------------------------------ |
Partager