DVDムービー用にCOMに登録されている自動再生イベントハンドラーがあります。
私はC#を使用しており、CodeProjectのこのガイドに従いました:http://www.codeproject.com/KB/system/AutoplayDemo.aspx
DVDムービーが挿入されると、リストにハンドラーが表示され、起動します(デバッグできるように、コード内にDebugger.Break()を追加しました)
私のオブジェクトでは、IDropTargetインターフェースを実装し、Dropイベントが呼び出されます。
ただし、DVDムービーの場合、渡されたIDataObjectに問い合わせることはできません。「AutoplayEnumerated IDList Array」形式でIDataObject.QueryGetDataを呼び出すと、S_OK(0)ではなくint値1が返されます。これは、QueryGetData呼び出しに対して定義された出力値の1つではないようで、完全に途方に暮れています。
自動再生イベントログ(%SystemRoot%\ Autoplay.log)には、次のように記載されています。〜0x000006E0〜[0312] DVDムービー->コンテンツの自動再生なし!
これは、どのDVDドライブがイベントを開始したかがわからないことを意味しますか?当然のことながら、ほとんどのシステムには1つしかありませんが、映画情報を取得するために正しいデバイスに問い合わせたいと思います。