Método CBaseFilter.GetState
[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 GetState
método recupera o estado dos filtros (em execução, interrompido ou pausado). Esse método implementa o método IMediaFilter::GetState .
Sintaxe
HRESULT GetState(
DWORD dwMilliSecsTimeout,
FILTER_STATE *State
);
Parâmetros
-
dwMilliSecsTimeout
-
Intervalo de tempo limite, em milissegundos.
-
State
-
Ponteiro para uma variável que recebe um membro do tipo enumerado FILTER_STATE , indicando o estado do filtro.
Retornar valor
Retorna S_OK ou E_POINTER.
Comentários
Na classe base, todas as transições de estado são síncronas e o parâmetro dwMilliSecsTimeout é ignorado. Se uma classe derivada executar transições de estado assíncronas, ela deverá substituir esse método para aguardar durante as transições de estado, com um tempo limite de milissegundos dwMilliSecsTimeout .
Se o filtro não fornecer dados enquanto estiver em pausa, substitua o GetState
método para retornar o valor VFW_S_CANT_CUE quando o filtro for pausado (consulte Entregando exemplos). Por exemplo:
CMyFilter::GetState(DWORD dw, FILTER_STATE *pState)
{
CheckPointer(pState, E_POINTER);
*pState = m_State;
if (m_State == State_Paused)
return VFW_S_CANT_CUE;
else
return S_OK;
}
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|