Dialogfelder "VFW-Erfassung anzeigen"
Ein Erfassungsgerät, das weiterhin einen Video for Windows-Treiber (VFW) verwendet, kann eines der folgenden drei Dialogfelder unterstützen, die zum Konfigurieren des Geräts verwendet werden.
| Dialogfeld | BESCHREIBUNG |
|---|---|
| Videoquelle | Wird zum Auswählen der Videoeingabe und zum Anpassen von Geräteeinstellungen verwendet, z. B. Helligkeit oder Kontrast des Bilds. |
| Videoformat | Wird verwendet, um die Bilddimensionen und die Bittiefe auszuwählen. |
| Videoanzeige | Wird verwendet, um die Darstellung des gerenderten Videos zu steuern. |
Um eines dieser Dialogfelder anzuzeigen, gehen Sie folgendermaßen vor:
- Beenden Sie das Filterdiagramm.
- Fragen Sie den Erfassungsfilter für die IAMVfwCaptureDialogs-Schnittstelle ab. Wenn QueryInterface erfolgreich ist, bedeutet dies, dass das Erfassungsgerät ein VFW-Gerät ist.
- Rufen Sie IAMVfwCaptureDialogs::HasDialog auf, um zu überprüfen, ob der Treiber das anzuzeigende Dialogfeld unterstützt. Die VfwCaptureDialogs-Enumeration definiert Flags für jedes der VFW-Dialogfelder. HasDialog gibt S _ OK zurück, wenn das Dialogfeld unterstützt wird. Andernfalls wird S FALSE zurückgegeben. Suchen Sie daher direkt nach _ dem Wert S _ OK, anstatt das SUCCEEDED-Makro zu verwenden.
- Wenn das Dialogfeld unterstützt wird, rufen Sie IAMVfwCaptureDialogs::ShowDialog auf, um das Dialogfeld anzuzeigen.
- Starten Sie das Diagramm neu.
Der folgende Code zeigt diese Schritte für das Dialogfeld Videoquelle:
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();