#include <dshow.h>
int main()
{
IDvdGraphBuilder *m_pIDvdGB;
IGraphBuilder *m_pGraph;
IMediaControl *m_pIMC;
IDvdInfo2 *m_pIDvdI2;
IDvdControl2 *m_pIDvdC2;
CoInitialize(NULL);
HRESULT hr;
// DVD グラフ ビルダ オブジェクトのインスタンスを作成する。
hr = CoCreateInstance(CLSID_DvdGraphBuilder,
NULL,
CLSCTX_INPROC_SERVER,
IID_IDvdGraphBuilder,
(LPVOID *)&m_pIDvdGB);
// DVD フィルタ グラフを作成する。
AM_DVD_RENDERSTATUS buildStatus;
hr = m_pIDvdGB->RenderDvdVideoVolume(NULL, AM_DVD_HWDEC_PREFER, &buildStatus);
// DVD ナビゲータ インターフェイスへのポインタを取得する。
hr = m_pIDvdGB->GetDvdInterface(IID_IDvdInfo2, reinterpret_cast<void**>(&m_pIDvdI2));
hr = m_pIDvdGB->GetDvdInterface(IID_IDvdControl2, reinterpret_cast<void**>(&m_pIDvdC2));
// フィルタ グラフ マネージャへのポインタを取得する。
hr = m_pIDvdGB->GetFiltergraph(&m_pGraph);
// フィルタ グラフを全体として制御するため、
// グラフ ポインタを使って IMediaControl へのポインタを取得する。
hr = m_pGraph->QueryInterface(IID_IMediaControl, (LPVOID *)&m_pIMC);
hr = m_pIMC->Run();
/* 指定されたタイトルの指定された時間から再生を開始する。ここから*/
DVD_HMSF_TIMECODE time;
time.bHours = 0;
time.bMinutes = 0;
time.bSeconds = 0;
time.bFrames = 0;
hr = m_pIDvdC2->PlayAtTimeInTitle(5, &time, DVD_CMD_FLAG_Block, NULL);//ok
/* ここまで */
MessageBox(0, 0, L"OK", 0);
m_pIDvdI2->Release();
m_pIDvdC2->Release();
m_pIDvdGB->Release();
CoUninitialize();
return 0;
}
2013年6月14日金曜日
指定されたタイトルの指定された時間から再生を開始する。
IDvdControl2::PlayAtTimeInTitle
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿