Операционная система Windows 95 для программиста



         

Исходные тексты приложения Compact Disk Player - часть 4


// Устанавливаем формат времени MCISet.dwTimeFormat = MCI_FORMAT_TMSF; dwrc = mciSendCommand(MCIOpen.wDeviceID, MCI_SET, MCI_SET_TIME_FORMAT, (DWORD)&MCISet); if(dwrc) { mciwioError(dwrc); return FALSE; } return TRUE; }

// ----------------------------------------------------- // Функция CdClose // ----------------------------------------------------- void CdClose(void) { // Закрываем устройство чтения компакт-дисков dwrc = mciSendCommand(MCIOpen.wDeviceID, MCI_CLOSE, 0, 0); if(dwrc) mciwioError(dwrc); }

//----------------------------------------------------- // mciwioError // Обработка ошибок //----------------------------------------------------- void mciwioError(DWORD dwrc) { BYTE szBuf[MAXERRORLENGTH];

if(mciGetErrorString(dwrc, (LPSTR)szBuf, MAXERRORLENGTH)) MessageBox(NULL, szBuf, "MCIWAVE Error", MB_ICONEXCLAMATION); else MessageBox(NULL, "Неизвестная ошибка", "MCIWAVE Error", MB_ICONEXCLAMATION); }

// ----------------------------------------------------- // Функция CdUpdateState // ----------------------------------------------------- BOOL CdUpdateState(HWND hdlg) { BOOL fNeedUpdate = FALSE; UINT nCurMode;

// Определяем текущее состояние проигрывателя CD MCIStatus.dwItem = MCI_STATUS_MODE; mciSendCommand(MCIOpen.wDeviceID, MCI_STATUS, MCI_STATUS_ITEM | MCI_WAIT, (DWORD)&MCIStatus);

// Проверяем, готово ли устройство чтения к работе if((MCIStatus.dwReturn == MCI_MODE_NOT_READY) (MCIStatus.dwReturn == MCI_MODE_OPEN)) { // Устройство не готово nCurMode = CD_EMPTY; } else if((MCIStatus.dwReturn == MCI_MODE_STOP) && bPaused) { // Устройство остановлено nCurMode = CD_PAUSED; } else if(MCIStatus.dwReturn == MCI_MODE_PLAY) { // Устройство находится в режиме проигрывания nCurMode = CD_PLAYING; } else { // Устройство готово nCurMode = CD_READY; }

// Если с момента последней проверки произошло // изменение режима, записываем код нового режима if(nMode != nCurMode) { fNeedUpdate = TRUE; nMode = nCurMode;

// Если устройство находится в режиме проигрывания, // запускаем видеоклип. В противном случае // останавливаем видеоклип в его текущей позиции if(nCurMode == CD_PLAYING) Animate_Play(GetDlgItem(hdlg, IDC_ANIMATE), 0, -1, -1); else Animate_Stop(GetDlgItem(hdlg, IDC_ANIMATE)); }




Содержание  Назад  Вперед