Contrôle des graphiques de filtre à l’aide de C
[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.]
Si vous écrivez une application DirectShow en C (plutôt qu’en C++), vous devez utiliser un pointeur de table virtuelle pour appeler des méthodes. L’exemple suivant montre comment appeler la méthode IUnknown::QueryInterface à partir d’une application écrite en C :
pGraph->lpVtbl->QueryInterface(pGraph, &IID_IMediaEvent, (void **)&pEvent);
Voici l’appel équivalent en C++:
pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
En C, les interfaces COM sont définies en tant que structures. Le membre lpVtbl est un pointeur vers une table de méthodes d’interface (la vtable). Toutes les méthodes prennent un paramètre supplémentaire, qui est un pointeur vers l’interface.
Rubriques connexes