RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> Решил попробовать воспроизвести звук из ресурса, не используя MCI Play Resource. Для начала решил загрузить ресурс, открыть MMIO-хэндл, окрыть MCI-устройство, закрыть MCI-устройство, закрыть MMIO-хэндл, освободить ресурс. Но даже это у меня не получилось. Не удаётся открыть MCI-устройство :-( > Вот текст: > --------------------->8---------------------------- > extern HWND hWndDesktop; > extern HMODULE hmodSounds; > extern HWND hWndMsgClient; > extern GAME_OPTIONS Game_Options; > > MMIOINFO mmioinfo; > HMMIO hMMIO; > > MCI_OPEN_PARMS mciOpenParameters; > MCI_PLAY_PARMS mciPlayParameters; > MCI_GENERIC_PARMS mciGenericParameters; > > ULONG rc, ulSize, ulFlags; > char message[128]; > PVOID pWave; > > if (rc = DosQueryResourceSize(hmodSounds, RT_WAVE, SoundID, &ulSize)) > return FALSE; > > if (rc = DosGetResource(hmodSounds, RT_WAVE, SoundID, &pWave)) > return FALSE; > > memset( &mmioinfo, 0, sizeof(MMIOINFO) ); > mmioinfo.fccIOProc=FOURCC_MEM; > mmioinfo.pIOProc=NULL; > mmioinfo.pchBuffer=(PCHAR)pWave; > mmioinfo.cchBuffer=ulSize; > ulFlags=MMIO_READ|MMIO_DENYNONE; > if (hMMIO=mmioOpen(NULL, &mmioinfo, ulFlags)) > { > mciOpenParameters.hwndCallback=hWndMsgClient; > mciOpenParameters.pszDeviceType="waveaudio01"; > mciOpenParameters.pszElementName=(PSZ)hMMIO; > mciOpenParameters.pszAlias=NULL; > rc = mciSendCommand(0L, MCI_OPEN, MCI_WAIT|MCI_OPEN_MMIO, &mciOpenParameters, 0); > if (rc == MCIERR_SUCCESS) // Это условие не выполняется - какая-то ошибка! > { > mciGenericParameters.hwndCallback=mciOpenParameters.hwndCallback; > mciSendCommand(mciOpenParameters.usDeviceID, MCI_CLOSE, MCI_WAIT, &mciGenericParameters, 0); > } > else > { > mciGetErrorString(rc, message, 128); > WinMessageBox(HWND_DESKTOP, HWND_DESKTOP, message, "MCI Error!!!", 0L, MB_OK|MB_ICONHAND); // Этот мессаджбокс выдаёт какой-то мусор. Всё время разный. > sprintf(message, "rc=%d", rc); > WinMessageBox(HWND_DESKTOP, HWND_DESKTOP, message, "MCI Error!!!", 0L, MB_OK|MB_ICONHAND); // Этот мессаджбокс выдаёт: "rc=-2"!!! > } > mmioClose(hMMIO, 0L); > } > else > { > mciGetErrorString(mmioinfo.ulErrorRet, message, 128); > WinMessageBox(HWND_DESKTOP, HWND_DESKTOP, message, "MMIO Error!", 0L, MB_OK|MB_ICONHAND); > } > > DosFreeResource(pWave); > return TRUE; > ------------------------8<-------------------------
_, _, _,
/ \ (_ / ~ )
\ / , ) / /
~ ~ ~~~
Programmed by
Dmitri Maximovich
,
Dmitry I. Platonoff
,
Eugen Kuleshov
.
25.09.99 (c) 1999,
RU/2
. All rights reserved.
Rewritten by
Dmitry Ban
. All rights ignored.