VFW 캡처 대화 상자 표시
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드가 DirectShow 대신 Media Foundation에서 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
여전히 VFW(Windows용 비디오) 드라이버를 사용하는 캡처 디바이스는 디바이스를 구성하는 데 사용되는 다음 세 가지 대화 상자 중 일부를 지원할 수 있습니다.
대화 상자 | Description |
---|---|
비디오 원본 | 비디오 입력을 선택하고 사진 밝기 또는 대비와 같은 디바이스 설정을 조정하는 데 사용됩니다. |
비디오 형식 | 이미지 차원 및 비트 깊이를 선택하는 데 사용됩니다. |
비디오 표시 | 렌더링된 비디오의 모양을 제어하는 데 사용됩니다. |
이러한 대화 상자 중 하나를 표시하려면 다음을 수행합니다.
- 필터 그래프를 중지합니다.
- IAMVfwCaptureDialogs 인터페이스에 대한 캡처 필터를 쿼리합니다. QueryInterface가 성공하면 캡처 디바이스가 VFW 디바이스임을 의미합니다.
- 드라이버가 표시하려는 대화 상자를 지원하는 경우 IAMVfwCaptureDialogs::HasDialog를 호출하여 검사. VfwCaptureDialogs 열거형은 각 VFW 대화 상자에 대한 플래그를 정의합니다. HasDialog는 대화 상자가 지원되는 경우 S_OK 반환합니다. 그렇지 않으면 S_FALSE 반환되므로 SUCCEEDED 매크로를 사용하는 대신 값에 대한 검사 직접 S_OK.
- 대화 상자가 지원되는 경우 IAMVfwCaptureDialogs::ShowDialog 를 호출하여 대화 상자를 표시합니다.
- 그래프를 다시 시작합니다.
다음 코드는 비디오 원본 대화 상자에 대한 다음 단계를 보여줍니다.
pControl->Stop(); // Stop the graph.
// Query the capture filter for the IAMVfwCaptureDialogs interface.
IAMVfwCaptureDialogs *pVfw = 0;
hr = pCap->QueryInterface(IID_IAMVfwCaptureDialogs, (void**)&pVfw);
if (SUCCEEDED(hr))
{
// Check if the device supports this dialog box.
if (S_OK == pVfw->HasDialog(VfwCaptureDialog_Source))
{
// Show the dialog box.
hr = pVfw->ShowDialog(VfwCaptureDialog_Source, hwndParent);
}
}
pControl->Run();
관련 항목