다음을 통해 공유


기록 프로세스 사용자 지정

[이 페이지와 연결된 기능인 MCIWnd 창 클래스는 레거시 기능입니다. MediaPlayer로 대체되었습니다. MediaPlayer는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 MCIWnd 창 클래스 대신 MediaPlayer를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

MCIWnd 창을 만드는 것부터 기록된 정보를 파일에 저장하는 것까지 대부분의 모든 것을 완전히 제어하여 기록 프로세스를 사용자 지정할 수 있습니다. 다음 예제에서는 MCI 디바이스에 기록 및 저장 기능을 쿼리하고 콘텐츠의 시작 또는 끝에 기록할 메뉴 명령을 포함합니다.

다음 예제에서는 MCIWndCreate 함수를 사용하여 새 창을 만들고 기록된 데이터를 저장할 기존 파일을 지정하고 MCIWndNew 매크로를 사용하여 새 파일을 창과 연결할 수 있습니다. 또는 MCIWndOpen 또는 MCIWndOpenDialog 매크로를 사용하여 파일을 지정할 수 있습니다.

이 예제에서는 MCIWndCanRecord 매크로를 사용하여 디바이스가 기록할 수 있는지 확인하고 MCIWndCanSave 매크로를 사용하여 디바이스가 정보를 저장하는지 확인합니다. 이 예제에서는 MCIWndHomeMCIWndEnd 매크로를 사용하여 현재 재생 위치를 설정합니다. 이 예제에서는 MCIWndRecord 매크로를 사용하여 기록을 시작합니다. 정보가 기록된 후 예제에서는 MCIWndSaveDialog 매크로를 사용하여 저장합니다.

case WM_COMMAND: 
    switch (wParam) 
    { 
        case IDM_CREATEMCIWND: 
            g_hwndMCIWnd = MCIWndCreate( hwnd, g_hinst, 
                WS_VISIBLE | WS_CHILD | 
                MCIWNDF_RECORD,                   // add Record button
                NULL ); 
 
            MCIWndNew(g_hwndMCIWnd, "waveaudio"); // new file 
 
            if( MCIWndCanRecord(g_hwndMCIWnd) ) 
            { 
                MessageBox( hwnd, 
                "Press the red button on the toolbar to record.", 
                "MCIWnd Record", 
                MB_OK ); 
            } 
            else 
            { 
                MessageBox( hwnd, 
                    "This device doesn't record.", 
                    "MCIWnd Record", 
                    MB_OK ); 
            } 
            break; 
        case IDM_RECORDATSTART: 
            if( MCIWndCanRecord(g_hwndMCIWnd) ) 
            { 
                MCIWndHome(g_hwndMCIWnd); 
                MCIWndRecord(g_hwndMCIWnd); 
            } 
            else 
            { 
                MessageBox( hwnd, 
                    "This device doesn't record.", 
                    "MCIWnd Record", 
                    MB_OK); 
            } 
            break; 
        case IDM_RECORDATEND: 
            if( MCIWndCanRecord(g_hwndMCIWnd) ) 
            { 
                MCIWndEnd(g_hwndMCIWnd); 
                MCIWndRecord(g_hwndMCIWnd); 
            } 
            else 
            { 
                MessageBox( hwnd, 
                    "This device doesn't record.", 
                    "MCIWnd Record", 
                    MB_OK); 
            } 
            break; 
        case IDM_SAVEMCIWND: 
            if( MCIWndCanSave(g_hwndMCIWnd) ) 
                MCIWndSaveDialog(g_hwndMCIWnd); 
    } 
    break; 
 
    // Handle other messages here.