顯示 VFW 擷取對話框
[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、imfMediaEngine 取代,並在媒體基金會 音訊/視訊擷取。 這些功能已針對 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();
相關主題