Автоматизация воспроизведения для MCIWnd
[Функция, связанная с этой страницей, MCIWnd Window Class, является устаревшей функцией. Он был заменен MediaPlayer. MediaPlayer оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует по возможности использовать MediaPlayer вместо класса MCIWnd Window. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Вы можете автоматизировать воспроизведение для MCIWnd, указав определенные стили окна в функции MCIWndCreate . Чтобы воспроизвести устройство, окну требуется родительское окно для обработки уведомлений, область воспроизведения для воспроизведения AVI-файлов и уведомление об изменениях режима устройства, чтобы определить, когда воспроизведение останавливается. В окне не требуется панель инструментов. Эти характеристики можно задать, указав соответствующие стили в MCIWndCreate.
В следующем примере используются команды меню для создания окна MCIWnd для воспроизведения содержимого с различных типов устройств. Функция MCIWndCreate создает окно MCIWnd, а устройства и файлы загружаются с помощью макроса MCIWndOpen в командах для конкретных устройств. После завершения воспроизведения устройство закрывается путем перехвата сообщения MCIWNDM_NOTIFYMODE и выдачи макроса MCIWndClose .
case WM_COMMAND:
switch (wParam)
{
case IDM_CREATEMCIWND:
dwMCIWndStyle = WS_CHILD | // child window
WS_VISIBLE | // visible
MCIWNDF_NOTIFYMODE | // notifies of mode changes
MCIWNDF_NOPLAYBAR; // hides toolbar
g_hwndMCIWnd = MCIWndCreate(hwnd,
g_hinst, dwMCIWndStyle, NULL);
break;
case IDM_PLAYCDA:
LoadNGoMCIWnd(hwnd, "CDAudio");
break;
case IDM_PLAYWAVE:
LoadNGoMCIWnd(hwnd, "SoundWave.WAV");
break;
case IDM_PLAYMIDI:
LoadNGoMCIWnd(hwnd, "MIDIFile.MID");
break;
case IDM_PLAYAVI:
LoadNGoMCIWnd(hwnd, "AVIFile.AVI");
break;
case IDM_EXIT:
MCIWndDestroy(g_hwndMCIWnd);
DestroyWindow(hwnd);
break;
}
break;
case MCIWNDM_NOTIFYMODE:
if (lParam == MCI_MODE_STOP) // device stopped
{
MessageBox(hwnd,"","Closing Device",MB_OK);
MCIWndClose(g_hwndMCIWnd);
}
break;
// Handle other messages here.
// LoadNGoMCIWnd - automatically loads and plays a multimedia device
//
// hwnd - handle to the parent window
// lpstr - pointer to device or filename played by device
//
// Global variable
// extern HINSTANCE g_hwndMCIWnd; instance handle to MCIWnd window
VOID LoadNGoMCIWnd(HWND hwnd, LPSTR lpstr)
{
MessageBox(hwnd, lpstr, "Loading Device", MB_OK);
MCIWndOpen(g_hwndMCIWnd, lpstr, NULL); // new device in window
MCIWndPlay(g_hwndMCIWnd); // plays device
}