Metodo IGraphConfig::Reconfigure (strmif.h)
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture 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.
Il Reconfigure
metodo blocca il grafico del filtro e chiama una funzione di callback nell'applicazione o nel filtro per eseguire una riconfigurazione dinamica.
Sintassi
HRESULT Reconfigure(
[in] IGraphConfigCallback *pCallback,
[in] PVOID pvContext,
[in] DWORD dwFlags,
[in] HANDLE hAbortEvent
);
Parametri
[in] pCallback
Puntatore all'interfaccia di callback IGraphConfigCallback nell'applicazione o nel filtro.
[in] pvContext
Puntatore a una variabile di tipo PVOID passata alla routine di callback.
[in] dwFlags
Flag definiti dall'applicazione passati alla routine di callback.
[in] hAbortEvent
Handle per un evento. Se il chiamante è un filtro che chiama su uno dei thread di elaborazione dati, questo parametro deve essere un handle per un evento che verrà segnalato quando il filtro viene inserito in uno stato arrestato. In caso contrario, questo parametro può essere NULL. Per altre informazioni, vedere la sezione Osservazioni.
Valore restituito
Restituisce S_OK se ha esito positivo o un codice di errore in caso contrario. Eventuali errori includono VFW_E_WRONG_STATE, se il metodo non è riuscito a ottenere un blocco nel grafico del filtro; qualsiasi HRESULT sia stato restituito dalla routine di callback; o un codice di errore che indica che il grafico non è riuscito a inserire i filtri in uno stato in esecuzione.
Commenti
Questo metodo viene fornito in modo che un'applicazione o un filtro possano implementare la compilazione dinamica dinamica specializzata. Nella maggior parte dei casi, tuttavia, il metodo IGraphConfig::Reconnect è adeguato e deve essere preferito perché gestisce la maggior parte dei dettagli dell'implementazione.
Prima di chiamare questo metodo, bloccare i flussi in base alle esigenze e eseguire il push dei dati tramite il grafico (vedere IPinFlowControl::Block e IGraphConfig::P ushThroughData). Se il metodo di callback ha esito positivo, IGraphConfig::Reconfigure
tenta di inserire tutti i filtri in uno stato in esecuzione. Il chiamante deve quindi sbloccare il flusso di dati. In caso contrario, restituisce qualsiasi codice di errore restituito dal metodo di callback.
Se un filtro chiama questo metodo in uno dei propri thread di elaborazione dati, crea il potenziale per un deadlock. Il metodo ottiene un blocco nel grafico del filtro, che può impedire al filtro di arrestare la ricezione di una chiamata a IMediaFilter::Stop. Per evitare questa situazione, il metodo accetta un handle a un oggetto evento fornito dal filtro. Il filtro deve segnalare l'evento se riceve una chiamata al relativo metodo Stop .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | strmif.h (include Dshow.h) |
Libreria | Strmiids.lib |