Condividi tramite


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

Vedi anche

Codici errore e esito positivo

Interfaccia IGraphConfig