如何确定CD是否在CD-ROM驱动器中

我想知道是否有一个Windows API可以告诉我,如果有一个空的CD是在CD-ROM / DVD-ROM驱动器内。

我已经看了一下GetVolumeInformation(),但是这只会带回实际CD-ROM驱动器上的信息,而不是其中的媒体,如果甚至有CD。

我所要做的就是看驱动器中是否有光盘,并返回一个布尔值。

谢谢你的帮助

调用根目录上的GetFileAttributes()GetFileAttributes()是相当优化的,因为它通常用来检查文件或目录是否存在。

另一种方法是调用GetDiskFreeSpace ,它(尽管它的名字)也返回总磁盘大小。

壳牌也有一些有用的功能。 SHGetDriveMedia会告诉你什么是加载,但你应该先调用GetDriveType()

您正在查找的API最有可能是IMAPI。

我认为这篇文章可以帮助你http://msdn.microsoft.com/en-us/magazine/cc163992.aspx

您可以使用DeviceIoControl API传递IOCTL_STORAGE_CHECK_VERIFY作为dwIoControlCode。 这将检查一个特定的磁盘驱动器是否准备好,即有一个光盘,当然,托盘是关闭的。 检查DeviceIoControl MSDN文档以获取关于此功能的更多信息。