http://www.codeguru.com/system/cdr.html
//Open or Close CD Drive
//cDrive is Drive Letter to Open, or 0x01 for 'Default' drive
//Examples:
//CD_OpenCloseDrive(TRUE, 'G'); //Open CD Door for Drive G:
//CD_OpenCloseDrive(FALSE, 'G'); //Close CD Door for Drive G:
//CD_OpenCloseDrive(TRUE, 1); //Open First Logical CD Door
void CD_OpenCloseDrive(BOOL bOpenDrive, TCHAR cDrive)
{
MCI_OPEN_PARMS op;
MCI_STATUS_PARMS st;
DWORD flags; TCHAR szDriveName[4];
strcpy(szDriveName, "X:"); ::ZeroMemory(&op, sizeof(MCI_OPEN_PARMS));
op.lpstrDeviceType = (LPCSTR) MCI_DEVTYPE_CD_AUDIO; if(cDrive > 1)
{
szDriveName[0] = cDrive;
op.lpstrElementName = szDriveName;
flags = MCI_OPEN_TYPE
| MCI_OPEN_TYPE_ID
| MCI_OPEN_ELEMENT
| MCI_OPEN_SHAREABLE;
}
else flags = MCI_OPEN_TYPE
| MCI_OPEN_TYPE_ID
| MCI_OPEN_SHAREABLE; if (!mciSendCommand(0,MCI_OPEN,flags,(unsigned long)&op))
{
st.dwItem = MCI_STATUS_READY; if(bOpenDrive)
mciSendCommand(op.wDeviceID,MCI_SET,MCI_SET_DOOR_OPEN,0);
else
mciSendCommand(op.wDeviceID,MCI_SET,MCI_SET_DOOR_CLOSED,0); mciSendCommand(op.wDeviceID,MCI_CLOSE,MCI_WAIT,0);
}
}
//Open or Close CD Drive
//cDrive is Drive Letter to Open, or 0x01 for 'Default' drive
//Examples:
//CD_OpenCloseDrive(TRUE, 'G'); //Open CD Door for Drive G:
//CD_OpenCloseDrive(FALSE, 'G'); //Close CD Door for Drive G:
//CD_OpenCloseDrive(TRUE, 1); //Open First Logical CD Door
void CD_OpenCloseDrive(BOOL bOpenDrive, TCHAR cDrive)
{
MCI_OPEN_PARMS op;
MCI_STATUS_PARMS st;
DWORD flags; TCHAR szDriveName[4];
strcpy(szDriveName, "X:"); ::ZeroMemory(&op, sizeof(MCI_OPEN_PARMS));
op.lpstrDeviceType = (LPCSTR) MCI_DEVTYPE_CD_AUDIO; if(cDrive > 1)
{
szDriveName[0] = cDrive;
op.lpstrElementName = szDriveName;
flags = MCI_OPEN_TYPE
| MCI_OPEN_TYPE_ID
| MCI_OPEN_ELEMENT
| MCI_OPEN_SHAREABLE;
}
else flags = MCI_OPEN_TYPE
| MCI_OPEN_TYPE_ID
| MCI_OPEN_SHAREABLE; if (!mciSendCommand(0,MCI_OPEN,flags,(unsigned long)&op))
{
st.dwItem = MCI_STATUS_READY; if(bOpenDrive)
mciSendCommand(op.wDeviceID,MCI_SET,MCI_SET_DOOR_OPEN,0);
else
mciSendCommand(op.wDeviceID,MCI_SET,MCI_SET_DOOR_CLOSED,0); mciSendCommand(op.wDeviceID,MCI_CLOSE,MCI_WAIT,0);
}
}
解决方案 »
- XP/NT 下异步Writefile总死机
- 问个多进程的网络问题。急
- opengl实验紧急求救????
- 请问论坛高手如何实现像网际快车下载时显示的区块(在线等待)
- 怎样获取-->多选ListBox中有那些项被选中了?
- 请教CDC当中的“路径”是什么来的阿?
- 急问!!!!!!!!在vc++ 中使用ado连接数据库中如何删除表中字段?
- 大家帮忙看看有这样用RETURN 的吗?
- 为什么用new无法编译,用malloc就好使,控制台程序,原码在里面很简单就几行。
- 怎样判断系统是98还是nt?谢谢!!!
- 在线程中使用DAO,为什么老出现致命错误?
- ATL写好后形成的DLL文件拿到另一台机器上后如何注册???
MCI_OPEN_PARMS OpenParms;
OpenParms.lpstrDeviceType = "cdaudio";
mciSendCommand (NULL, MCI_OPEN, MCI_WAIT | MCI_OPEN_TYPE,
(DWORD)(LPVOID)&OpenParms);
mciID = mciGetDeviceID(OpenParms.lpstrDeviceType);
mciSendCommand(mciID, MCI_SET, MCI_WAIT | MCI_SET_DOOR_OPEN, NULL);//open
mciSendCommand(mciID, MCI_SET, MCI_WAIT | MCI_SET_DOOR_CLOSED, NULL);//close
#include<mmsystem.h>
#pragma comment(lib,"winmm.lib")
.............消息响应是:
mciSendString("set cdaudio door open",NULL,0,0);
mciSendString("set cdaudio door close",NULL,0,));高手请看有什么问题
少个d