Partager via


Méthode CBasePin.ReceiveConnection

[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 ReceiveConnection méthode accepte une connexion à partir d’une autre broche. Cette méthode implémente la méthode IPin::ReceiveConnection .

Syntaxe

HRESULT ReceiveConnection(
   IPin          *pConnector,
   AM_MEDIA_TYPE *pmt
);

Paramètres

pConnector

Pointeur vers l’interface IPin de la broche de connexion.

Pmt

Pointeur vers une structure AM_MEDIA_TYPE qui spécifie le type de média.

Valeur renvoyée

Retourne une valeur HRESULT . Les valeurs possibles incluent celles du tableau suivant.

Code de retour Description
S_OK
Opération réussie.
E_POINTER
Argument pointeur NULL .
VFW_E_ALREADY_CONNECTED
La broche est déjà connectée.
VFW_E_NOT_STOPPED
Le filtre est actif et le code pin ne prend pas en charge la reconnexion dynamique.
VFW_E_TYPE_NOT_ACCEPTED
Le type de média spécifié n’est pas acceptable.

Notes

La broche de sortie appelle cette méthode sur la broche d’entrée. Si la broche d’entrée retourne un code d’erreur, la connexion échoue.

Dans la classe de base, cette méthode effectue les étapes suivantes :

  • Vérifie si la broche est déjà connectée.
  • Vérifie si le filtre est arrêté.
  • Appelle la méthode CBasePin::CheckConnect pour tester si la broche de connexion est appropriée.
  • Appelle la méthode CBasePin::CheckMediaType pour tester si le type de média est acceptable.

Si toutes ces étapes réussissent, la méthode appelle les méthodes CBasePin::CompleteConnect et SetMediaType pour terminer la connexion. Ces méthodes stockent le type de média et un pointeur vers la broche de sortie.

Si CheckConnect ou CheckMediaType échoue, la classe de base appelle la méthode CBasePin::BreakConnect pour interrompre la connexion, puis retourne un code d’erreur à partir de ReceiveConnection.

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 CBasePin