Visualizzare le finestre di dialogo acquisizione VFW
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEnginee Acquisizione audio/video in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente di usare un nuovo codice MediaPlayer, IMFMediaEngine e Acquisizione audio/video in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Un dispositivo di acquisizione che usa ancora un driver Video per Windows (VFW) può supportare una delle tre finestre di dialogo seguenti, usate per configurare il dispositivo.
Finestra di dialogo | Descrizione |
---|---|
Origine video | Usato per selezionare l'input video e per regolare le impostazioni del dispositivo, ad esempio la luminosità o il contrasto dell'immagine. |
Formato video | Usato per selezionare le dimensioni dell'immagine e la profondità di bit. |
Visualizzazione video | Utilizzato per controllare l'aspetto del video di cui è stato eseguito il rendering. |
Per visualizzare una di queste finestre di dialogo, eseguire le operazioni seguenti:
- Arrestare il grafico del filtro.
- Eseguire una query sul filtro di acquisizione per l'interfacciaIAMVfwCaptureDialogs. Se QueryInterface ha esito positivo, significa che il dispositivo di acquisizione è un dispositivo VFW.
- Chiamare IAMVfwCaptureDialogs::HasDialog per verificare se il driver supporta la finestra di dialogo che si desidera visualizzare. La VfwCaptureDialogs'enumerazione definisce i flag per ogni finestra di dialogo VFW. HasDialog restituisce S_OK se la finestra di dialogo è supportata. Restituisce S_FALSE in caso contrario, quindi verificare direttamente il valore S_OK anziché usare la macro SUCCEEDED.
- Se la finestra di dialogo è supportata, chiamare IAMVfwCaptureDialogs::ShowDialog per visualizzare la finestra di dialogo.
- Riavviare il grafico.
Il codice seguente illustra questi passaggi per la finestra di dialogo Origine video:
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();
Argomenti correlati