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