Método IGraphConfig::Reconfigure (strmif.h)
[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.
El Reconfigure
método bloquea el gráfico de filtros y llama a una función de devolución de llamada en la aplicación o filtro para realizar una reconfiguración dinámica.
Sintaxis
HRESULT Reconfigure(
[in] IGraphConfigCallback *pCallback,
[in] PVOID pvContext,
[in] DWORD dwFlags,
[in] HANDLE hAbortEvent
);
Parámetros
[in] pCallback
Puntero a la interfaz de devolución de llamada IGraphConfigCallback en la aplicación o filtro.
[in] pvContext
Puntero a una variable de tipo PVOID que se pasa a la rutina de devolución de llamada.
[in] dwFlags
Marcas definidas por la aplicación que se pasan a la rutina de devolución de llamada.
[in] hAbortEvent
Identificador para un evento. Si el autor de la llamada es un filtro que llama a en uno de sus subprocesos de procesamiento de datos, este parámetro debe ser un identificador de un evento que se indicará cuando el filtro se coloque en un estado detenido. De lo contrario, este parámetro puede ser NULL. Para obtener más información, vea la sección Comentarios.
Valor devuelto
Devuelve S_OK si se ejecuta correctamente o un código de error de lo contrario. Entre los posibles errores se incluyen VFW_E_WRONG_STATE, si el método no pudo obtener un bloqueo en el gráfico de filtros; cualquier HRESULT devuelto por la rutina de devolución de llamada; o un código de error que indica que el gráfico no pudo colocar los filtros en un estado en ejecución.
Comentarios
Este método se proporciona para que una aplicación o filtro pueda implementar una compilación de grafos dinámicas especializada. Sin embargo, en la mayoría de los casos, el método IGraphConfig::Reconnect es adecuado y se debe preferir porque controla la mayoría de los detalles de implementación.
Antes de llamar a este método, bloquee las secuencias según sea necesario e inserte los datos a través del grafo (consulte IPinFlowControl::Block e IGraphConfig::P ushThroughData). Si el método de devolución de llamada se realiza correctamente, IGraphConfig::Reconfigure
intenta colocar todos los filtros en un estado en ejecución. (El autor de la llamada debe desbloquear el flujo de datos). De lo contrario, devuelve cualquier código de error que devuelva el método de devolución de llamada.
Si un filtro llama a este método en uno de sus propios subprocesos de procesamiento de datos, crea la posibilidad de un interbloqueo. El método obtiene un bloqueo en el gráfico de filtros, que puede impedir que el filtro se detenga al recibir una llamada a IMediaFilter::Stop. Para evitar esta situación, el método toma un identificador a un objeto de evento proporcionado por filter. El filtro debe indicar el evento si recibe una llamada a su método Stop .
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | strmif.h (incluye Dshow.h) |
Library | Strmiids.lib |