Vue d’ensemble de la journalisation des erreurs
[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.]
[Cette API n’est pas prise en charge et peut être modifiée ou indisponible à l’avenir.]
Pour offrir aux applications une flexibilité maximale dans la gestion des erreurs, DirectShow Editing Services utilise un mécanisme de rappel. Votre application implémente une méthode pour la journalisation d’une erreur. Au moment de l’exécution, si une erreur se produit, DES appelle la méthode que vous avez fournie. La méthode prend les paramètres qui décrivent l’erreur. Ce que la méthode fait avec ces informations vous appartient. (Toutefois, elle doit être retournée le plus rapidement possible, sinon elle risque d’interférer avec l’exécution du programme.)
La méthode de rappel de journalisation des erreurs est contenue dans une interface COM, IAMErrorLog. Votre application doit implémenter cette interface. Comme toutes les interfaces COM, IAMErrorLog hérite de l’interface IUnknown , de sorte que votre application doit également l’implémenter.
Vous avez plusieurs choix pour implémenter ces interfaces COM. Vous pouvez utiliser la bibliothèque de modèles actifs (ATL), qui fournit des implémentations de stock des méthodes IUnknown . DirectShow fournit également une classe de base C++, CUnknown, qui facilite l’implémentation d’une interface COM. Pour plus d’informations sur l’utilisation de CUnknown, consultez Comment implémenter IUnknown.
L’exemple de code de cet article définit une classe C++ autonome, qui implémente À la fois IUnknown et IAMErrorLog. Le résultat n’est pas un véritable objet COM, car il ne prend pas en charge CoCreateInstance. Toutefois, cette approche est adéquate pour les besoins de l’exemple.
Rubriques connexes