次の方法で共有


MCIWnd の再生の自動化

[このページに関連付けられている機能 である MCIWnd ウィンドウ クラスは、従来の機能です。 MediaPlayer に置き換わりました。 MediaPlayer は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能な場合は MCIWnd ウィンドウ クラスではなく MediaPlayer を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

MCIWndCreate 関数で特定のウィンドウ スタイルを指定することで 、MCIWnd の再生を自動化できます。 デバイスを再生するには、通知メッセージを処理するための親ウィンドウ、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 
}