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:

  1. Beenden Sie das Filterdiagramm.
  2. 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.
  3. 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.
  4. Wenn das Dialogfeld unterstützt wird, rufen Sie IAMVfwCaptureDialogs::ShowDialog auf, um das Dialogfeld anzuzeigen.
  5. 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();

Konfigurieren eines Videoaufnahmegeräts