Partager via


Méthode IPinConnection ::NotifyEndOfStream (strmif.h)

[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 NotifyEndOfStream méthode demande une notification de la broche lorsque la prochaine condition de fin de flux se produit.

Syntaxe

HRESULT NotifyEndOfStream(
  [in] HANDLE hNotifyEvent
);

Paramètres

[in] hNotifyEvent

Gérez un objet d’événement que l’épingle signalera.

Valeur retournée

Retourne une valeur HRESULT . Les valeurs possibles sont les suivantes.

Code de retour Description
S_FALSE
Le handle d’événement était NULL, mais il n’existait aucun handle d’événement à réinitialiser.
S_OK
Le handle d’événement a été défini. (Si le handle d’événement était NULL, la notification d’événement a été annulée.)

Remarques

Cette méthode permet à l’appelant d’envoyer (push) des données à travers une partie du graphique de filtre se terminant par cette épingle.

Par exemple, supposons que l’appelant envoie des données d’une broche de sortie appelée « A » sur un filtre, à une broche d’entrée appelée « B » sur un autre filtre, éventuellement avec des filtres intermédiaires qui les connectent. La séquence d’événements suivante aurait lieu.

  1. L’appelant bloque le flux de données au niveau de l’épingle A.
  2. Il appelle NotifyEndOfStream sur l’épingle B.
  3. Il appelle IPin ::EndOfStream sur la broche d’entrée connectée à l’épingle A.
  4. À mesure que les données restantes transitent en aval par les filtres intermédiaires, ces filtres propagent la notification de fin de flux.
  5. Lorsque l’épingle B reçoit la notification de fin de flux, elle signale l’événement donné dans le paramètre hNotifyEvent . À ce stade, l’appelant peut reconfigurer en toute sécurité le graphe entre l’épingle A et l’épingle B.
Étant donné que l’objectif de cette méthode est de permettre à l’appelant de reconstruire dynamiquement le graphique, puis de redémarrer la connexion, la notification de fin de flux ne représente pas la fin réelle du flux. Par conséquent, l’épingle B ne propage pas la condition de fin de flux ou le signal EC_COMPLETE. Il s’agit d’une exception aux règles habituelles pour le flux de données dans le graphique de filtre.

Il est de la responsabilité de l’appelant d’annuler la notification en appelant à nouveau cette méthode avec un handle d’événement NULL .

Le graphe de filtre appelle cette méthode à l’intérieur de la méthode IGraphConfig ::Reconnect . Si une application ou un filtre effectue une reconfiguration dynamique spécialisée dans le graphe (à l’aide de la méthode IGraphConfig ::Reconfigure ), il peut appeler cette méthode en premier pour envoyer des données à la partie du graphique en cours de reconfiguration.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête strmif.h (include Dshow.h)
Bibliothèque Strmiids.lib

Voir aussi

Reconnexion dynamique

Codes d’erreur et de réussite

IPinConnection, interface