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 |
|
Biblioteca |
|