用 IMAPI 实现 CD 刻录和设备查找
2006-07-20 11:40:22 来源:WEB开发网由于笔者很严谨,我又加入了另一个步骤 GetBurnFolderPath,调用 SHGetSpecialFolderPath 得到一个 CString 形式的刻录文件目录:CString path = burner.GetBurnFolderPath();
Figure 1 CD 驱动的刻录属性
如果你想刻录音乐,或找到其它刻录驱动器(可能有多个),或者获得更详细的信息:如制造或型号,或者驱动器是 CD-R 还是 CD-RW?为此,Windows XP 提供了 IMAPI 来实现这些特性,它是 Image Mastering API 的缩写,不要和 MAPI——用于 e-mail 的 Messaging API 混淆。唉!要记住这些缩写真是难啊。IMAPI 提供了 COM 接口来寻找可刻机驱动器和写入数据,或者最新射频探头调谐到光光彩照人的塑胶唱盘上。有关 IMAPI 接口信息概要参见 Figure 2。
由于与 COM 的冲突会引起较大的问题,笔者写了一个小的类库,IMAPITools,解决了大多数问题。为了说明怎么用这个类库笔者还写了一个程序 CDINFO。CDINFO 在控制台窗口中显示CD记录体的信息。
只要掌握了 IMAPI,CD,刻录就不难。但 IMAPI 很庞大,在讲完基础后再简要的说一下这个问题。
Figure 3 CDINFO
首先,CDINFO创建了一个对象显示驱动器盘符和刻录路径。接着,创建 CDiscMaster 打开IMAPI session: CDiscMaster dm; // create IDiscMaster
CDiscMaster 封装了第一个主 IMAPI 接口 IDiscMaster。它调用 CoCreateInstance 创建 Microsoft MSDiscMasterObj 对象然后得到 IDiscMaster 接口。IDiscMaster 例举出格式和记录器,选择活动记录器等。
if (!dm.Open()) {
printf("Oops: ...");
return;
}
更多精彩
赞助商链接