Método IGraphConfig::Reconfigure (strmif.h)
[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
O Reconfigure
método bloqueia o grafo de filtro e chama uma função de retorno de chamada no aplicativo ou filtro para executar uma reconfiguração dinâmica.
Sintaxe
HRESULT Reconfigure(
[in] IGraphConfigCallback *pCallback,
[in] PVOID pvContext,
[in] DWORD dwFlags,
[in] HANDLE hAbortEvent
);
Parâmetros
[in] pCallback
Ponteiro para a interface de retorno de chamada IGraphConfigCallback no aplicativo ou filtro.
[in] pvContext
Ponteiro para uma variável do tipo PVOID que é passada para a rotina de retorno de chamada.
[in] dwFlags
Sinalizadores definidos pelo aplicativo que são passados para a rotina de retorno de chamada.
[in] hAbortEvent
Identificador de um evento. Se o chamador for um filtro chamando em um de seus threads de processamento de dados, esse parâmetro deverá ser um identificador para um evento que será sinalizado quando o filtro for colocado em um estado interrompido. Caso contrário, esse parâmetro pode ser NULL. Para obter mais informações, consulte Comentários.
Retornar valor
Retorna S_OK se tiver êxito ou um código de erro de outra forma. Os possíveis erros incluem VFW_E_WRONG_STATE, se o método não pôde obter um bloqueio no grafo de filtro; qualquer HRESULT retornado pela rotina de retorno de chamada; ou um código de erro que indica que o grafo não pôde colocar os filtros em um estado em execução.
Comentários
Esse método é fornecido para que um aplicativo ou filtro possa implementar a criação de grafo dinâmico especializado. Na maioria dos casos, no entanto, o método IGraphConfig::Reconnect é adequado e deve ser preferido porque lida com a maioria dos detalhes da implementação.
Antes de chamar esse método, bloqueie todos os fluxos conforme necessário e envie os dados por push pelo grafo (consulte IPinFlowControl::Block e IGraphConfig::P ushThroughData). Se o método de retorno de chamada for bem-sucedido, IGraphConfig::Reconfigure
tentará colocar todos os filtros em um estado em execução. (O chamador deve desbloquear o fluxo de dados.) Caso contrário, ele retornará qualquer código de erro retornado pelo método de retorno de chamada.
Se um filtro chamar esse método em um de seus próprios threads de processamento de dados, ele criará o potencial para um deadlock. O método obtém um bloqueio no grafo de filtro, que pode impedir que o filtro pare ao receber uma chamada para IMediaFilter::Stop. Para evitar essa situação, o método usa um identificador para um objeto de evento fornecido pelo filtro. O filtro deverá sinalizar o evento se ele receber uma chamada para seu método Stop .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | strmif.h (inclua Dshow.h) |
Biblioteca | Strmiids.lib |