Método CBaseFilter.GetState

[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 GetState método recupera el estado de los filtros (en ejecución, detenido o en pausa). Este método implementa el método IMediaFilter::GetState .

Sintaxis

HRESULT GetState(
   DWORD        dwMilliSecsTimeout,
   FILTER_STATE *State
);

Parámetros

dwMilliSecsTimeout

Intervalo de tiempo de espera, en milisegundos.

State

Puntero a una variable que recibe un miembro del tipo enumerado FILTER_STATE , que indica el estado del filtro.

Valor devuelto

Devuelve S_OK o E_POINTER.

Observaciones

En la clase base, todas las transiciones de estado son sincrónicas y se omite el parámetro dwMilliSecsTimeout . Si una clase derivada realiza transiciones de estado asincrónicas, debe invalidar este método para esperar durante las transiciones de estado, con un tiempo de espera de dwMilliSecsTimeout milisegundos.

Si el filtro no entrega datos mientras está en pausa, invalide el GetState método para devolver el valor VFW_S_CANT_CUE cuando el filtro esté en pausa (consulte Entrega de ejemplos). Por ejemplo:

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 Value
Encabezado
Amfilter.h (include Streams.h)
Biblioteca
Strmbase.lib (compilaciones comerciales);
Strmbasd.lib (compilaciones de depuración)

Consulte también

CBaseFilter (clase)