Méthode CBaseInputPin.ReceiveCanBlock

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si 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 ReceiveCanBlock méthode détermine si les appels à la méthode IMemInputPin::Receive peuvent se bloquer. Cette méthode implémente la méthode IMemInputPin::ReceiveCanBlock .

Syntaxe

HRESULT ReceiveCanBlock();

Paramètres

Cette méthode n’a aucun paramètre.

Valeur retournée

Retourne une valeur HRESULT . Les valeurs possibles incluent celles répertoriées dans le tableau suivant.

Code de retour Description
S_FALSE
L’épingle ne se bloque pas lors d’un appel à Recevoir.
S_OK
L’épingle peut se bloquer lors d’un appel à Recevoir.

Notes

Retournez S_FALSE si les appels à la méthode Receive ne se bloquent pas. Sinon, retournez S_OK ou un code d’erreur. Si la méthode Receive appelle Receive sur une broche en aval, la broche en aval peut bloquer ; ReceiveCanBlock doit tenir compte de ce facteur.

Un filtre amont peut utiliser cette méthode pour déterminer sa stratégie de threading. Si la méthode Receive peut bloquer, le filtre amont peut décider d’utiliser un thread de travail qui met en mémoire tampon les données. Consultez la classe COutputQueue pour une implémentation de cette stratégie.

Dans la classe de base, cette méthode retourne S_OK lorsque l’une des conditions suivantes est vraie :

  • Le filtre n’a pas de broches de sortie.
  • Une broche d’entrée connectée à ce filtre signale qu’elle peut se bloquer.
  • Une broche d’entrée connectée à ce filtre ne prend pas en charge l’interface IMemInputPin .

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

CBaseInputPin, classe