if(StatusParms.dwReturn==MCI_MODE_OPEN¦¦StatusParms.dwReturn==MCI_MODE_NOT_READY)
解决方案 »
- vc写的程序保存文件的时候,那个对话框扩展名筛选条件怎么设置
- 在一个对话框中,想一直到一个具体控件是否在焦点状态怎么写代码?
- VC++如何制作word页面视图一样的视图
- IOCP 的服务端为什么会 要两次 接 收!!
- 帮帮菜鸟
- 求救啊!!!
- 谁知道如何用程序禁止属性页里的“前进”,“后退”
- 在Doc/View中自己创建的Dialog在DoModal时能不能也有Icon存在?
- 谁要分,谁最先来给谁
- 怎么判断显示的是英文还是汉字啊
- 怎样删除一个为对话框定义的类,而不删除对话框本身?
- 那位寂寞高手知道如何在VC++6.0上进行延时操作,为何用::timeGetTime()函数时显示"...not a global name space..."
代码如下:
unsigned int wDeviceID;
MCI_OPEN_PARMS OpenParms;
OpenParms.lpstrDeviceType = (LPOLESTR) MCI_DEVTYPE_CD_AUDIO;
OpenParms.wDeviceID = 0;
OpenParms.lpstrElementName = wpath; //光驱的盘符 如:“G:\"
mciSendCommandA (NULL, MCI_OPEN, MCI_WAIT | MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_OPEN_SHAREABLE, (DWORD)(LPVOID) &OpenParms);wDeviceID = OpenParms.wDeviceID;mciSendCommand (wDeviceID, MCI_SET, MCI_SET_DOOR_OPEN, NULL);
//关闭用 MCI_SET_DOOR_CLOSE;
mciSendCommand (wDeviceID, MCI_CLOSE, MCI_WAIT, NULL);
有两种方法,分别使用mcisendcommand, mcisendstring1. 使用mcisendcommand
mcideviceid mciid;mci_open_parms openparms;//光驱的设备名
openparms.lpstrdevicetype = "cdaudio";//打开此设备
mcisendcommand (null, mci_open, mci_wait | mci_open_type,
(dword) &openparms);//得到设备id
mciid = mcigetdeviceid(openparms.lpstrdevicetype);//打开光驱门
//将下句中的mci_set_door_open更改为mci_set_door_closed即为关闭光驱门
mcisendcommand(mciid, mci_set, mci_wait | mci_set_door_open, null);
2. 使用mcisendstring,这种方法更为简便
//打开光驱门
//将此语句中的open更改为close即为关闭光驱的门
mcisendstring( "set cdaudio door open", null, 0, null);
3.若有多个光驱,打开指定光驱的方法mci_open_parms openparms;// 第几个cdrom?
dword ncdrom = 0;// 光驱的设备名
openparms.lpstrdevicetype = (char *)((ncdrom << 16) +
mci_devtype_cd_audio);// 打开此设备
mcierror mcir = mcisendcommand (null, mci_open, mci_wait | mci_open_type_id
| mci_open_type, (dword)&openparms);if (mcir != null)
// 不能打开此设备,返回
return;// 打开光驱门
// 将下句中的mci_set_door_open更改为mci_set_door_closed即为关闭光驱门
mcir = mcisendcommand(openparms.wdeviceid, mci_set, mci_wait |
mci_set_door_open, null);mcir = mcisendcommand(openparms.wdeviceid, mci_close, mci_wait, null);
if(StatusParms.dwReturn==MCI_MODE_OPEN&&StatusParms.dwReturn==MCI_MODE_NOT_READY)
mciSendCommand(m_wdeviceID,MCI_SET,MCI_SET_DOOR_CLOSED,NULL);
else
mciSendCommand(m_wdeviceID,MCI_SET,MCI_SET_DOOR_OPEN,NULL);
mciSendCommand(m_wdeviceID,MCI_CLOSE,MCI_WAIT,NULL);