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);
 }
}

解决方案 »

  1.   

    MCIDEVICEID mciID;
                        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
      

  2.   

    要把winmm.lib插入工程,并包含#include "Mmsystem.h"
      

  3.   

    我的代码是:
    #include<mmsystem.h>
    #pragma comment(lib,"winmm.lib")
    .............消息响应是:
      mciSendString("set cdaudio door open",NULL,0,0);
      mciSendString("set cdaudio door close",NULL,0,));高手请看有什么问题
      

  4.   

    mciSendString("set cdaudio door closed",NULL,0,);
    少个d