Anhalten und Fortsetzen der Wiedergabe
Sie können die Wiedergabe eines Geräts oder einer Datei unterbrechen, das einem MCIWnd-Fenster zugeordnet ist, indem Sie das MCIWndPause-Makro verwenden. Anschließend können Sie die Wiedergabe mithilfe des MCIWndResume-Makros neu starten. Wenn das Gerät das Fortsetzen nicht unterstützt oder ein Fehler auftritt, können Sie das MCIWndPlay-Makro verwenden, um die Wiedergabe neu zu starten.
Im folgenden Beispiel wird ein MCIWnd-Fenster erstellt und eine AVI-Datei wiedergegeben. Die Menübefehle "Anhalten" und "Fortsetzen" stehen dem Benutzer zur Verfügung, um die Wiedergabe zu unterbrechen und neu zu starten.
MCIWnd-Fensterstile werden vorübergehend mithilfe des MCIWndChangeStyles-Makros geändert, um zu verhindern, dass ein MCI-Fehlerdialogfeld angezeigt wird, wenn MCIWndResume fehlschlägt.
case WM_COMMAND:
switch (wParam)
{
case IDM_CREATEMCIWND: // creates and plays clip
g_hwndMCIWnd = MCIWndCreate(hwnd,
g_hinst,
WS_CHILD | WS_VISIBLE | // standard styles
MCIWNDF_NOPLAYBAR | // hides toolbar
MCIWNDF_NOTIFYMODE, // notifies of mode changes
"sample.avi");
MCIWndPlay(g_hwndMCIWnd);
break;
case IDM_PAUSEMCIWND: // pauses playback
MCIWndPause(g_hwndMCIWnd);
MessageBox(hwnd, "MCIWnd", "Pausing Playback", MB_OK);
break;
case IDM_RESUMEMCIWND: // resumes playback
MCIWndChangeStyles( // hides error dialog messages
g_hwndMCIWnd, // MCIWnd window
MCIWNDF_NOERRORDLG, // mask of style to change
MCIWNDF_NOERRORDLG); // suppresses MCI error dialogs
lResult = MCIWndResume(g_hwndMCIWnd);
if(lResult){ // device doesn't resume
MessageBox(hwnd, "MCIWnd",
"Resume with Stop and Play", MB_OK);
MCIWndStop(g_hwndMCIWnd);
MCIWndPlay(g_hwndMCIWnd);
MCIWndChangeStyles( // resumes original styles
g_hwndMCIWnd,
MCIWNDF_NOERRORDLG,
NULL);
}
break;
}
break;
// Handle other messages here.