codice:
#include <windows.h>
#include <mmsystem.h>
#include "resource.h"
void CDRomOpen(int bOpenDrive, char *drive);
int main(){
//dichiara l'icona
WNDCLASSEX wc;
char drives[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //possibili unità
char d_drive[3]="::";
int i,esci=0;
//la carica
wc.hIcon= LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MYICON));
for(i=0;drives[i]!='\0' && esci==0;++i){
d_drive[0]=drives[i]; //cambio ogni volta la lettera
if(GetDriveType(d_drive)==DRIVE_CDROM)
esci=1; //cambia il flag ed esce dal ciclo
}
//apro il cd
CDRomOpen(1,d_drive); //1-apre, 0-chiude
return 0;
}
void CDRomOpen(int bOpenDrive, char *drive)
{
MCI_OPEN_PARMS open;
DWORD flags;
ZeroMemory(&open, sizeof(MCI_OPEN_PARMS));
open.lpstrDeviceType = (LPCSTR) MCI_DEVTYPE_CD_AUDIO;
open.lpstrElementName = drive;
//flags = MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_OPEN_SHAREABLE;
flags = MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID;
if (!mciSendCommand(0, MCI_OPEN, flags, (DWORD) &open))
{
mciSendCommand(open.wDeviceID, MCI_SET, (bOpenDrive) ? MCI_SET_DOOR_OPEN : MCI_SET_DOOR_CLOSED, 0);
mciSendCommand(open.wDeviceID, MCI_CLOSE, MCI_WAIT, 0);
}
}
beh, mi serve sapere se è aperta o chiusa così quando lo si avvia, il programma capisce se deve chiuderla o aprirla XD