BDドライブ内のメディアの種類を取得したい VC++

実現したいこと

BDドライブ内のメディアの種類を取得したいです。
言語はVC++です。

前提

BDドライブ内に存在する空のメディアに対して、メディアの種類を取得したいです。
IMAPIを使用すれば、取得できると思い、以下の実装を行いました。
しかし、get_CurrentPhysicalMediaTypeで取得できた
mediaTypeは「IMAPI_MEDIA_TYPE_UNKNOWN」であり、
メディアの種類を取得できていません。
また、pDiscFormat2Data->get_CurrentPhysicalMediaType(&mediaType);には
「0xc0aa0003」が返ってきました。

該当のソースコード

VC++

1CoInitialize(NULL); 2 3IDiscFormat2Data* pDiscFormat2Data = NULL; 4 5// IDiscFormat2Dataの初期化 6HRESULT hr = CoCreateInstance(__uuidof(MsftDiscFormat2Data), NULL, CLSCTX_INPROC_SERVER, 7 __uuidof(IDiscFormat2Data), (void**)&pDiscFormat2Data); 8if (FAILED(hr)) { 9 CoUninitialize(); 10 return; 11 } 12 13IMAPI_MEDIA_PHYSICAL_TYPE mediaType = IMAPI_MEDIA_TYPE_UNKNOWN; 14//メディアの種類を取得 15 hr = pDiscFormat2Data->get_CurrentPhysicalMediaType(&mediaType); 16if (FAILED(hr)) { 17 pDiscFormat2Data->Release(); 18 CoUninitialize(); 19 return; 20 }

ソースコードのどの部分に間違いがあるのでしょうか?
メディアの種類を取得しようと考えた時に他の方法があるのでしょうか?
方法は問いませんので、VC++でメディアの種類を取得する方法がございましたら、教えて頂きたいです。

補足情報(FW/ツールのバージョンなど)

使用ツール:Visual Studio 2019

コメントを投稿

0 コメント