Я помню все твои трещенки Пою твои мои песенки ........ Почему ???? ЗемфираMCI - Media Control Interface. Это интерфейс управления устройствами. Этот интерфейс позволяет программам для Windows взаимодействовать с множеством устройств - цифровыми audio, проигрывателями компакт дисков, видеодисков и так далее.
Управления устройствами производится на основе команд MCI. Каждое устройство определяет конкретный набор команд, которыми можно им управлять. Все функции MCI начинаются с префикса mci, вот например
mciSendCommand mciGetDiveceID
Мы с Вами попробуем команду mciSendString для проигрывания WAV файлов как и в прошлый раз.
Создаем приложение Win32 Console как "Hello Word" с именем TestMCI. Подключаем заголовочные файлы.
#include "stdafx.h" #include "windows.h" #include "Mmsystem.h"
Незабудьте в проект добавить LIB файл - Winmm.lib, как в прошлый раз. Ну что пишем код ?
// TestMCI.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "windows.h" #include "Mmsystem.h" int main(int argc, char* argv[]) { if (mciSendString("play c:\\windows\\media\\Chimes.wav",NULL,0,NULL)) { printf("Error Command\n"); } else printf("God Command\n"); return 0; }
Что это за команда mciSendString? Она просто посылает текстовую строку с командой устроству. Вот она какая.
MCIERROR mciSendString( LPCTSTR lpszCommand, // строка команды LPTSTR lpszReturnString, // буфер для информации о результат UINT cchReturn, // размер буфера опрделенного в параметрах HANDLE hwndCallback // указывает на окно для отклика );
Почему я так поступил с MCIERROR, так в описании написано, вот что в Mmsystem.h
typedef DWORD MCIERROR; /* error return code, 0 means no error */ /* код ошибки, 0 ошибки нет */
Как увидеть результат если нет колонок :-) У меня стоит звуковая карта, но колонок нет :-) то есть я отдал их в бухгалтерию, чтобы они послушали курс по 1С 7.5 на CD. Но все равно определить, что звук звучит :-))) извеняюсь за каламбур можно. Из рисунка всё поймете.
Запускайте и слушайте.
Я понимаю, что про MCI практически ничего не написал. Но само использование MCI требует отдельных шагов. Стратегия такая, если Вы заметили. В MFC Step by Step описываются только базовые возможности и показываются интерфейсы. Остальное делается в виде отдельных шагов по мере сил. Помните я упоминал про программирование для Интернет ? Смотрите Сокеты !!! Про ActiveX говорил ? Смотрите ActiveX по шагам.