Compartir a través de


Mostrar cuadros de diálogo captura de VFW

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Un dispositivo de captura que todavía usa un controlador Vídeo para Windows (VFW) puede admitir cualquiera de los tres cuadros de diálogo siguientes, que se usan para configurar el dispositivo.

Cuadro de diálogo Descripción
Origen de vídeo Se usa para seleccionar la entrada de vídeo y ajustar la configuración del dispositivo, como el brillo o el contraste de la imagen.
Formato de vídeo Se usa para seleccionar las dimensiones de la imagen y la profundidad de bits.
Visualización de vídeo Se usa para controlar la apariencia del vídeo representado.

 

Para mostrar uno de estos cuadros de diálogo, haga lo siguiente:

  1. Detenga el gráfico de filtros.
  2. Consulte el filtro de captura de la interfaz IAMVfwCaptureDialogs . Si QueryInterface se realiza correctamente, significa que el dispositivo de captura es un dispositivo VFW.
  3. Llame a IAMVfwCaptureDialogs::HasDialog para comprobar si el controlador admite el cuadro de diálogo que desea mostrar. La enumeración VfwCaptureDialogs define marcas para cada uno de los cuadros de diálogo de VFW. HasDialog devuelve S_OK si se admite el cuadro de diálogo. Devuelve S_FALSE de lo contrario, por lo que debe comprobar el valor S_OK directamente, en lugar de usar la macro SUCCEEDED .
  4. Si se admite el cuadro de diálogo, llame a IAMVfwCaptureDialogs::ShowDialog para mostrar el cuadro de diálogo.
  5. Reinicie el gráfico.

En el código siguiente se muestran estos pasos para el cuadro de diálogo Origen de vídeo:

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();

Configuración de un dispositivo de captura de vídeo