顯示 VFW 擷取對話方塊
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
仍然使用適用于 Windows (VFW) 驅動程式的視訊的擷取裝置可支援下列三個對話方塊之一,這些對話方塊可用來設定裝置。
對話方塊 | 描述 |
---|---|
視訊來源 | 用來選取視訊輸入,以及調整裝置設定,例如圖片亮度或對比。 |
視訊格式 | 用來選取影像維度和位深度。 |
視訊顯示 | 用來控制轉譯視訊的外觀。 |
若要顯示下列其中一個對話方塊,請執行下列動作:
- 停止篩選圖形。
- 查詢 IAMVfwCaptureDialogs 介面的擷取篩選。 如果 QueryInterface 成功,表示擷取裝置是 VFW 裝置。
- 呼叫 IAMVfwCaptureDialogs::HasDialog 來檢查驅動程式是否支援您想要顯示的對話方塊。 VfwCaptureDialogs列舉會定義每個 VFW 對話方塊的旗標。 如果支援對話方塊,HasDialog會傳回S_OK。 否則會傳回S_FALSE,因此請直接檢查值S_OK,而不是使用 SUCCEEDED 宏。
- 如果支援對話方塊,請呼叫 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();
相關主題