Мультимедиа для Windows


Приложение MCIWNDC - часть 8


При создании окна MCI указан стиль MCIWNDF_RECORD, однако кнопка записи появится только при загрузке wav-файла, так как запись средствами окна MCI возможна только для устройства "waveaudio".

При выборе из меню "File" строки "Close" окно MCI удаляется функцией MCIWndDestroy.

Обработка сообщений от меню "Movie" сводится в основном к вызову соответствующей макрокоманды. Например, при выборе из этого меню строки "Play" вызывается макрокоманда MCIWndPlay:

case CM_MVIPLAY: // "Play" { MCIWndPlay(hwndMovie); return 0; }

Аналогичным образом обрабатываются остальные команды, за исключением команд позиционирования на один шаг вперед и один шаг назад:

case CM_MVISTEP: // "Step Fwrd" { MCIWndStep(hwndMovie, 1); return 0; } case CM_MVIRSTEP: // "Step Back" { MCIWndStep(hwndMovie, -1); return 0; }

Второй параметр макрокоманды MCIWndStep указывает величину шага в миллисекундах или кадрах (в зависимости от текущего формата времени), причем отрицательным значениям соответствует позиционирование в обратном направлении.

При выборе из меню "Movie" строки "Info..." приложение определяет и выводит на экран информацию об используемом устройстве и загруженном файле.

Для определения имени устройства используется макрокоманда MCIWndGetDevice :

MCIWndGetDevice(hwndMovie, (LPSTR)szBuff, 512);

Через первый параметр этой макрокоманде передается идентификатор окна MCI. Второй параметр - указатель на буфер, в который следует записать имя устройства. Третий параметр - размер буфера.

Путь к загруженному устройству или имя устройства (если файл не используется) определяется с помощью макрокоманды MCIWndGetFileName аналогичным образом:

MCIWndGetFileName(hwndMovie, (LPSTR)szBuff1, 256);

Размер файла вычисляется макрокомандой MCIWndGetLength , возвращающей значение в формате двойного слова:

dwSize = MCIWndGetLength(hwndMovie);

Единица измерения размера зависит от текущего формата времени, который определяется в виде текстовой строки при помощи макрокоманды MCIWndGetTimeFormat :




Начало  Назад  Вперед