Partager via


Méthode CBaseFilter.GetState

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

La GetState méthode récupère l’état des filtres (en cours d’exécution, arrêté ou suspendu). Cette méthode implémente la méthode IMediaFilter::GetState .

Syntaxe

HRESULT GetState(
   DWORD        dwMilliSecsTimeout,
   FILTER_STATE *State
);

Paramètres

dwMilliSecsTimeout

Intervalle de délai d’attente, en millisecondes.

State

Pointeur vers une variable qui reçoit un membre du FILTER_STATE type énuméré, indiquant l’état du filtre.

Valeur renvoyée

Retourne S_OK ou E_POINTER.

Notes

Dans la classe de base, toutes les transitions d’état sont synchrones et le paramètre dwMilliSecsTimeout est ignoré. Si une classe dérivée effectue des transitions d’état asynchrones, elle doit remplacer cette méthode pour attendre pendant les transitions d’état, avec un délai d’expiration de dwMilliSecsTimeout millisecondes.

Si votre filtre ne remet pas de données en pause, remplacez la GetState méthode pour renvoyer la valeur VFW_S_CANT_CUE lorsque le filtre est suspendu (voir Remise d’exemples). Par exemple :

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;
}

Configuration requise

Condition requise Valeur
En-tête
Amfilter.h (include Streams.h)
Bibliothèque
Strmbase.lib (builds de vente au détail) ;
Strmbasd.lib (builds de débogage)

Voir aussi

Classe CBaseFilter