Вопрос по Mci

mibin

Well-Known Member
29.01.2009
48
0
#1
Только начал изучать MCI и практически сразу появилось несколько вопросов...
Для изучения MCI пользуюсь книгой "Обработка звука на PC" автор Н. Секунов

Для вывода звука использовал этот пример:

//---------------------------------------------------------------------------------------

DWORD playWAVEFile(HWND hWndNotify, LPCWSTR lpszWAVEFileName)
{
UINT wDeviceID;
DWORD dwReturn;
MCI_OPEN_PARMS mciOpenParms;
MCI_PLAY_PARMS mciPlayParms;

// Open the device by specifying the device and filename.
// MCI will choose a device capable of playing the specified file.

mciOpenParms.lpstrDeviceType = L"waveaudio";
mciOpenParms.lpstrElementName = lpszWAVEFileName;
if (dwReturn = mciSendCommand(0, MCI_OPEN,
MCI_OPEN_TYPE | MCI_OPEN_ELEMENT,
(DWORD)(LPVOID) &mciOpenParms))
{
// Failed to open device. Don't close it; just return error.
ShowError(dwResult);
}

// The device opened successfully; get the device ID.
wDeviceID = mciOpenParms.wDeviceID;

// Begin playback. The window procedure function for the parent
// window will be notified with an MM_MCINOTIFY message when
// playback is complete. At this time, the window procedure closes
// the device.

mciPlayParms.dwCallback = (DWORD) hWndNotify;
if (dwReturn = mciSendCommand(wDeviceID, MCI_PLAY, MCI_NOTIFY,
(DWORD)(LPVOID) &mciPlayParms))
{
ShowError(dwResult);
}

return (0L);
}

//---------------------------------------------------------------------------------------

но результатом выполнения программы было выдача ошибки - "Используемое устройство MCI не поддерживает указанную команду".
Что я делаю не так, объясните, пожалуйста.
И еще один вопрос. В заголовке функции определена такая переменная - hWndNotify. Мне при вызове функции просто написть вместо нее NULL или ее необходимо как-то найти?

Все, спасибо, разобрался :) сам дурак оказался :)