MCIERR_ILLEGAL_FOR_AUTO_OPEN
От: thest Россия  
Дата: 22.09.08 02:29
Оценка:
Открываю MP3 файл, проигрываю. При попытке сделать MCI_STOP или MCI_SEEK получаю ошибку: MCIERR_ILLEGAL_FOR_AUTO_OPEN "Cannot carry out the specified command on an auto-opened device. Wait until the device is closed, and then try again.". Что не так?



MCI_OPEN_PARMS op;
memset(&op, 0, sizeof(MCI_OPEN_PARMS)); 
op.dwCallback = NULL;
op.lpstrDeviceType = reinterpret_cast<wchar_t*>(MCI_ALL_DEVICE_ID);
op.lpstrElementName = L"c:\myfile.mp3"
op.lpstrAlias = NULL;
mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_ELEMENT|MCI_WAIT,(DWORD)&op);
pDevice=op.wDeviceID;

MCI_SET_PARMS msp; 
memset(&msp, 0, sizeof(MCI_SET_PARMS)); 
msp.dwTimeFormat = MCI_FORMAT_MILLISECONDS; 
mciSendCommand(pDevice, MCI_SET,MCI_SET_TIME_FORMAT, reinterpret_cast<DWORD>(&msp);

MCI_PLAY_PARMS pp;
pp.dwCallback = (DWORD_PTR)wnd;//это моё окно
mciSendCommand(pDevice, MCI_PLAY, MCI_NOTIFY, (DWORD)&pp);



//когда проигрывание заканчивается:
if((int)wParam==MCI_NOTIFY_SUCCESSFUL)
{
  MCI_SEEK_PARMS params;
  params.dwCallback = 0;
  mciSendCommand(pDevice, MCI_SEEK, MCI_WAIT|MCI_SEEK_TO_START,(DWORD)&params);//вот здесь получаю MCIERR_ILLEGAL_FOR_AUTO_OPEN
  //если попытаться перед MCI_SEEK сделать MCI_STOP, то MCI_STOP вернёт ту же ошибку
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.