我有一个向 COM 注册的用于 DVD 电影的自动播放事件处理程序。
我正在使用 C#,并遵循 CodeProject 中的本指南:http://www.codeproject.com/KB/system/AutoplayDemo.aspx
当插入 DVD 电影时,我在列表中看到了我的处理程序并且它确实触发了(我在代码中添加了 Debugger.Break() 以便我可以调试它)
在我的对象中,我实现了 IDropTarget 接口,并调用了 Drop 事件。
但是对于 DVD 电影,我无法询问传入的 IDataObject。使用“Autoplay Enumerated IDList Array”格式调用 IDataObject.QueryGetData 返回 int 值 1 而不是 S_OK (0)。这似乎不是 QueryGetData 调用的定义输出值之一,让我完全不知所措。
自动播放事件日志 (%SystemRoot%\Autoplay.log) 说:~0x000006E0~[0312]DVD 电影 -> 没有内容自动播放!
这是否意味着我无法得知是哪个 DVD 驱动器启动了该事件?当然大多数系统只有一个,但我仍然想询问正确的设备以获取电影信息!