Команда MCI_PLAY , как это видно из ее названия, предназначена для проигрывания файлов. Для этой команды в файле mmsystem.h определена структура блока параметров MCI_PLAY_PARMS : typedef struct tagMCI_PLAY_PARMS { DWORD dwCallback; DWORD dwFrom; DWORD dwTo; } MCI_PLAY_PARMS; typedef MCI_PLAY_PARMS FAR *LPMCI_PLAY_PARMS;
В структуре параметров можно указать начальную и конечную позиции для проигрывания. Начальная позиция задается в поле dwFrom, конечная - в поле dwTo. Перед использованием начальной позиции следует установить формат времени при помощи команды MCI_SET_TIME_FORMAT, которую мы рассмотрим позже. Формат времени определяет единицу измерения для позиции, например, миллисекунды, байты, выборки сигнала или кадры.
Для структуры MCI_PLAY_PARMS можно указывать следующие флаги:
Флаг | Описание |
MCI_NOTIFY | Если установлен этот флаг, после завершения команды функции окна, адрес которой передан через поле dwCallback, будет послано сообщение MM_MCINOTIFY |
MCI_WAIT | Функция mciSendCommand вернет управление только после завершения процесса проигрывания |
MCI_FROM | Поле dwFrom содержит начальную позицию для проигрывания |
MCI_TO | Поле dwTo содержит конечную позицию для проигрывания |
В приведенном ниже фрагменте запускается проигрывание с текущей позиции: MCI_PLAY_PARMS mciPlayParms; DWORD dwrc; mciPlayParms.dwCallback = (DWORD)hwnd; dwrc=mciSendCommand(wDeviceID, MCI_PLAY, MCI_NOTIFY, (DWORD)(LPVOID)&mciPlayParms);
Для изменения текущей позиции можно воспользоваться командой MCI_SEEK.
При завершении проигрывания окно с идентификатором hwnd получит сообщение MM_MCINOTIFY.