Compartilhar via


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

Confira também

Códigos de erro e êxito

IGraphConfig Interface