IDvdInfo2::GetDVDVolumeInfo
#include <dshow.h> int main() { IDvdGraphBuilder *m_pIDvdGB; IDvdInfo2 *m_pIDvdI2; 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)); /* ディスク情報 */ //現在の DVD ボリューム情報を取得する。 ULONG pulNumOfVolumes; ULONG pulVolume; DVD_DISC_SIDE pSide; ULONG pulNumOfTitles; hr = m_pIDvdI2->GetDVDVolumeInfo(&pulNumOfVolumes, &pulVolume, &pSide, &pulNumOfTitles); if (SUCCEEDED(hr)) { printf("ボリューム セット内のボリュームの数 : %u\n", pulNumOfVolumes); printf("このルート ディレクトリのボリューム番号: %u\n", pulVolume); switch (pSide) { case DVD_SIDE_A: printf("現在のディスク面 ;サイド A\n"); break; case DVD_SIDE_B: printf("現在のディスク面 :サイド B\n"); break; } printf("このボリュームで使えるタイトルの数 : %u\n", pulNumOfTitles); } MessageBox(0, 0, L"OK", 0); m_pIDvdI2->Release(); m_pIDvdGB->Release(); CoUninitialize(); return 0; }
0 件のコメント:
コメントを投稿