Partager via


Méthode IGraphConfig ::Reconfigure (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 Reconfigure méthode verrouille le graphe de filtre et appelle une fonction de rappel dans l’application ou le filtre pour effectuer une reconfiguration dynamique.

Syntaxe

HRESULT Reconfigure(
  [in] IGraphConfigCallback *pCallback,
  [in] PVOID                pvContext,
  [in] DWORD                dwFlags,
  [in] HANDLE               hAbortEvent
);

Paramètres

[in] pCallback

Pointeur vers l’interface de rappel IGraphConfigCallback sur l’application ou le filtre.

[in] pvContext

Pointeur vers une variable de type PVOID qui est passée à la routine de rappel.

[in] dwFlags

Indicateurs définis par l’application qui sont passés à la routine de rappel.

[in] hAbortEvent

Handle vers un événement. Si l’appelant est un filtre appelant sur l’un de ses threads de traitement des données, ce paramètre doit être un handle pour un événement qui sera signalé lorsque le filtre sera mis à l’état arrêté. Sinon, ce paramètre peut être NULL. Pour plus d'informations, consultez la section Notes.

Valeur retournée

Retourne S_OK en cas de réussite, ou un code d’erreur dans le cas contraire. Les erreurs possibles incluent VFW_E_WRONG_STATE, si la méthode n’a pas pu obtenir de verrou sur le graphique de filtre ; tout HRESULT retourné par la routine de rappel ; ou un code d’erreur indiquant que le graphique n’a pas pu placer les filtres dans un état d’exécution.

Remarques

Cette méthode est fournie afin qu’une application ou un filtre puisse implémenter la génération de graphiques dynamiques spécialisées. Dans la plupart des cas, toutefois, la méthode IGraphConfig ::Reconnect est adéquate et doit être préférée, car elle gère la plupart des détails de l’implémentation.

Avant d’appeler cette méthode, bloquez les flux en fonction des besoins et envoyez les données via le graphique (voir IPinFlowControl ::Block et IGraphConfig ::P ushThroughData). Si la méthode de rappel réussit, IGraphConfig::Reconfigure tente de placer tous les filtres dans un état d’exécution. (L’appelant doit ensuite débloquer le flux de données.) Sinon, elle retourne le code d’erreur retourné par la méthode de rappel.

Si un filtre appelle cette méthode sur l’un de ses propres threads de traitement des données, il crée un risque d’interblocage. La méthode obtient un verrou sur le graphique de filtre, ce qui peut empêcher le filtre de s’arrêter lors de la réception d’un appel à IMediaFilter ::Stop. Pour éviter cette situation, la méthode prend un handle à un objet d’événement fourni par le filtre. Le filtre doit signaler l’événement s’il reçoit un appel à sa méthode Stop .

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

Codes d’erreur et de réussite

IGraphConfig, interface