Méthode IMediaEvent ::GetEventHandle (control.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 GetEventHandle méthode récupère un handle pour un événement de réinitialisation manuelle qui reste signalé pendant que la file d’attente contient des notifications d’événements.

Syntaxe

HRESULT GetEventHandle(
  [out] OAEVENT *hEvent
);

Paramètres

[out] hEvent

Pointeur vers une variable qui reçoit le handle d’événement.

Valeur retournée

Retourne S_OK.

Remarques

Le Gestionnaire de graphe de filtre conserve un événement de réinitialisation manuelle qui reflète l’état de la file d’attente d’événements. Si la file d’attente contient des notifications d’événements, l’événement de réinitialisation manuelle est signalé. Si la file d’attente est vide, la méthode IMediaEvent ::GetEvent réinitialise l’événement.

Une application peut utiliser cet événement pour déterminer l’état de la file d’attente. Premier appel GetEventHandle pour obtenir un handle à l’événement. Attendez que l’événement soit signalé à l’aide d’une fonction telle que WaitForSingleObject. Lorsque l’événement est signalé, appelez la méthode IMediaEvent ::GetEvent pour récupérer la notification d’événement suivante à partir de la file d’attente. Le Gestionnaire de graphe de filtres conserve l’événement signalé jusqu’à ce que la file d’attente soit vide ; ensuite, il réinitialise l’événement.

Ne fermez pas le handle d’événement retourné par cette méthode, car le handle d’événement est utilisé en interne par le graphique de filtre. En outre, n’utilisez pas le handle après avoir libéré le Gestionnaire de graphe de filtres, car le handle devient non valide après la destruction du Gestionnaire de graphe de filtres. (Pour éviter cette erreur, il est judicieux de dupliquer le handle en appelant DuplicateHandle et d’utiliser le doublon au lieu du handle d’origine. Fermez le handle dupliqué lorsque vous avez terminé.)

Pour la compatibilité Automation, cette méthode accepte un pointeur vers un type OAEVENT . En C++, déclarez une variable de type HANDLE et convertissez-la en pointeur OAEVENT , comme suit :


HANDLE hEvent;
GetEventHandle( (OAEVENT*) &hEvent );

Une autre façon pour les applications de surveiller la file d’attente d’événements consiste à appeler la méthode IMediaEventEx ::SetNotifyWindow .

Configuration requise

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

Voir aussi

Codes d’erreur et de réussite

IMediaEvent, interface