Compartilhar via


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
Amfilter.h (inclua Streams.h)
Biblioteca
Strmbase.lib (builds de varejo);
Strmbasd.lib (builds de depuração)

Confira também

Classe CBaseFilter