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 件のコメント:
コメントを投稿