用VC++控制多光驱
2010-05-27 20:37:36 来源:WEB开发网以上的代码仅仅是个框架,只能获得光驱数,但是大家只要作稍微的改动就可以实现不同的功能,比如将光驱盘符动态的加入菜单等等。而且由于是API函数,所以以上的算法能被VB、DELPHI使用。通过以上的技术与MCI相结合,就可以轻而易举的制作出支持多光驱的CD播放器以及VCD播放器等。例如使用MCI命令控制多个光驱的弹出关闭:
//例子:弹出光驱F CDRomOpen(TRUE,'F')
// 关闭光驱F CDRomOpen(FALSE,'F')
void CDRomOpen(BOOL bOpenDrive,TCHAR cDrive)
{
MCI_OPEN_ParmS open;
MCI_STATUS_ParmS status;
DWORD flags;
TCHAR szDriveName[4];
strcpy(szDriveName,"?:");
::ZeroMemory(&open,sizeof(MCI_OPEN_ParmS));
open.lpstrDeviceType=(LPCSTR)MCI_DEVTYPE_CD_AUDIO;
szDriveName[0]=cDrive;
open.lpstrElementName=szDriveName;
flags=MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID|MCI_OPEN_ELEMENT| MCI_OPEN_SHAREABLE;
if(!mciSendCommand(0,MCI_OPEN,flags,(unsigned long)&open))
{
status.dwItem=MCI_STATUS_READY;
if(bOpenDrive) mciSendCommand(open.wDeviceID,MCI_SET,MCI_SET_DOOR_OPEN,0);
else mciSendCommand(open.wDeviceID,MCI_SET,MCI_SET_DOOR_CLOSED,0);
mciSendCommand(open.wDeviceID,MCI_CLOSE,MCI_WAIT,0);
}
}
//参数cDrive可以通过前面的两个API函数获得
更多精彩
赞助商链接