Condividi tramite


Automazione della riproduzione per MCIWnd

[La funzionalità associata a questa pagina, MCIWnd Window Class, è una funzionalità legacy. È stato sostituito da MediaPlayer. MediaPlayer è stato ottimizzato per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer invece di MCIWnd Window Class, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

È possibile automatizzare la riproduzione per MCIWnd specificando determinati stili di finestra nella funzione MCIWndCreate . Per riprodurre il dispositivo, la finestra richiede una finestra padre per elaborare i messaggi di notifica, un'area di riproduzione per riprodurre i file AVI e la notifica delle modifiche della modalità dispositivo per identificare quando la riproduzione si arresta. La finestra non richiede una barra degli strumenti. È possibile impostare queste caratteristiche specificando gli stili appropriati in MCIWndCreate.

L'esempio seguente usa i comandi di menu per creare una finestra MCIWnd per riprodurre contenuto da diversi tipi di dispositivi. La funzione MCIWndCreate crea la finestra MCIWnd e i dispositivi e i file vengono caricati usando la macro MCIWndOpen nei comandi specifici del dispositivo. Al termine della riproduzione di un dispositivo, chiudere il dispositivo intercettare il messaggio MCIWNDM_NOTIFYMODE ed emettere la macro 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 
}