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


Приложение MCIWND - часть 3


После файла windows.h в исходный текст необходимо включить файл vfw.h , который поставляется вместе с Video for Windows Development Kit. Он содержит определения всех необходимых констант, структур данных и прототипы функций.

В самом начале работы приложение вызывает функцию VideoForWindowsVersion , возвращающую в старшем слове версию Video for Windows:

wVersion = HIWORD(VideoForWindowsVersion());

Версия Video for Windows должна быть не ниже 1.1.

Далее приложение создает окно MCI, вызывая для этого функцию MCIWndCreate :

hwnd = MCIWndCreate(NULL, hInstance, MCIWNDF_SHOWNAME | MCIWNDF_SHOWMODE | WS_OVERLAPPEDWINDOW | WS_VISIBLE, NULL);

Функция MCIWndCreate позволяет определить обычные стили окна, такие как WS_OVERLAPPEDWINDOW и WS_VISIBLE, а также специфические для окна MCI - MCIWNDF_SHOWNAME и MCIWNDF_SHOWMODE. Позже мы рассмотрим подробнее эту функцию и дополнительные стили окна.

После создания окна запускается цикл обработки сообщений, который имеет одну особенность - в нем периодически вызывается функция IsWindow , которая определена в стандартном программном интерфейсе Windows:

if(!IsWindow(hwnd)) PostQuitMessage(0);

Эта функция проверяет идентификатор окна, передаваемого ей через параметр. Если этот идентификатор правильный, возвращается TRUE. После того как пользователь уничтожит окно MCI, его идентификатор станет недействительным. В этом случае функция IsWindow вернет значение FALSE и будет вызвана функция PostQuitMessage, в результате чего работа приложения завершится.

Вот и все! По сложности исходного текста это приложение напоминает наши первые приложения из 10 тома "Библиотеки системного программиста", однако выполняемые им функции во много раз сложнее. Все дело тут, разумеется, в реализации класса окна MCI.

Файл описания ресурсов приведен в листинге 5.2.

Листинг 5.2. Файл mciwnd/mciwnd.rc

AppIcon ICON mciwnd.ico

Файл определения модуля для приложения MCIWND не имеет никаких особенностей (листинг 5.3).

Листинг 5.3. Файл mciwnd/mciwnd.def




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



Книжный магазин