Составители:
заставляет систему создать внутренние структуры, которые необходимы для
поддержки такого взаимодействия. Система передает вам идентификатор
устройства, который, подобно дескриптору файла, указывает вашего партнера в
процессе обмена информацией. Когда взаимодействие завершается, вы
закрываете устройство, система освобождает связанные с ним ресурсы памяти и
идентификатор устройства становится недействительным.
Все мультимедийные устройства реагируют на сообщения MCI_OPEN
и
MCI_CLOSE.
Кроме того, все драйверы должны реагировать еще на три
сообщения:
MCI_GETDEVCAPS, MCI_STATUS и MCI_INFO, каждое из
которых запрашивает информацию об устройстве.
Каждая команда MCI_OPEN
сопровождается структурой
MCI_OPEN_PARMS,
которая определена в файле Mmsystem.H:
/* блок параметров для командного сообщения MCI_OPEN */
typedef struct tagMCI_OPEN_PARMS
{
DWORD dwCallback; // дескриптор окна
MCIDEVICEID wDeviceID; // идентификатор устройства
LPCTSTR lpstrDeviceType; // тип открываемого устройства
LPCTSTR lpstrElementName; // входной элемент устройства
LPCTSTR lpstrAlias; // необязательный псевдоним
} MCI_OPEN_PARMS;
Во всех параметрических структурах присутствует поле dwCallback. Оно
используется совместно с флагом MCI_NOTIFY.
Любой вызов функции
mciSendCommand, запрашивающий уведомление, должен содержать
дескриптор окна в младшем слове поля dwCallback. Таким образом, по
завершении операции система может отправить сообщение MM_MCINOTIFY
заданному окну. При рассмотрении модуля ShowWave.C вы увидите, как
следует реагировать на подобное уведомление.
При открытии устройства поле wDeviceID должно оставаться пустым;
подсистема WinMM назначает идентификатор открываемому устройству и
записывает этот идентификатор в данное поле. После открытия любого
устройства целесообразно сразу сохранить его идентификатор.
В поле lpcstrDeviceType указывается тип устройства. Он берется из
системного реестра, в котором содержатся записи, подобные приведенным
ниже:
AVIVideo : REG_SZ : mciavi32.dll
WaveAudio : REG_SZ : mciwave.dll
Sequencer : REG_SZ : mciseq.dll
CDAudio : REG_SZ : mcicda.dll
Для воспроизведения WAV-файлов программе Show Wave необходимо
устройство типа WaveAudio.
68
заставляет систему создать внутренние структуры, которые необходимы для поддержки такого взаимодействия. Система передает вам идентификатор устройства, который, подобно дескриптору файла, указывает вашего партнера в процессе обмена информацией. Когда взаимодействие завершается, вы закрываете устройство, система освобождает связанные с ним ресурсы памяти и идентификатор устройства становится недействительным. Все мультимедийные устройства реагируют на сообщения MCI_OPEN и MCI_CLOSE. Кроме того, все драйверы должны реагировать еще на три сообщения: MCI_GETDEVCAPS, MCI_STATUS и MCI_INFO, каждое из которых запрашивает информацию об устройстве. Каждая команда MCI_OPEN сопровождается структурой MCI_OPEN_PARMS, которая определена в файле Mmsystem.H: /* блок параметров для командного сообщения MCI_OPEN */ typedef struct tagMCI_OPEN_PARMS { DWORD dwCallback; // дескриптор окна MCIDEVICEID wDeviceID; // идентификатор устройства LPCTSTR lpstrDeviceType; // тип открываемого устройства LPCTSTR lpstrElementName; // входной элемент устройства LPCTSTR lpstrAlias; // необязательный псевдоним } MCI_OPEN_PARMS; Во всех параметрических структурах присутствует поле dwCallback. Оно используется совместно с флагом MCI_NOTIFY. Любой вызов функции mciSendCommand, запрашивающий уведомление, должен содержать дескриптор окна в младшем слове поля dwCallback. Таким образом, по завершении операции система может отправить сообщение MM_MCINOTIFY заданному окну. При рассмотрении модуля ShowWave.C вы увидите, как следует реагировать на подобное уведомление. При открытии устройства поле wDeviceID должно оставаться пустым; подсистема WinMM назначает идентификатор открываемому устройству и записывает этот идентификатор в данное поле. После открытия любого устройства целесообразно сразу сохранить его идентификатор. В поле lpcstrDeviceType указывается тип устройства. Он берется из системного реестра, в котором содержатся записи, подобные приведенным ниже: AVIVideo : REG_SZ : mciavi32.dll WaveAudio : REG_SZ : mciwave.dll Sequencer : REG_SZ : mciseq.dll CDAudio : REG_SZ : mcicda.dll Для воспроизведения WAV-файлов программе Show Wave необходимо устройство типа WaveAudio. 68
Страницы
- « первая
- ‹ предыдущая
- …
- 66
- 67
- 68
- 69
- 70
- …
- следующая ›
- последняя »