Compartir a través de


Información general sobre el registro de errores

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

[Esta API no se admite y puede modificarse o no estar disponible en el futuro].

Para proporcionar a las aplicaciones la máxima flexibilidad en el control de errores, DirectShow Editing Services usa un mecanismo de devolución de llamada. La aplicación implementa un método para registrar un error. En tiempo de ejecución, si se produce un error, DES llama al método que ha proporcionado. El método toma parámetros que describen el error. Lo que hace el método con esta información es usted. (Sin embargo, debe devolver lo más rápido posible, o podría interferir con la ejecución del programa).

El método de devolución de llamada de registro de errores se encuentra en una interfaz COM, IAMErrorLog. La aplicación debe implementar esta interfaz. Al igual que todas las interfaces COM, IAMErrorLog hereda la interfaz IUnknown , por lo que la aplicación también debe implementarla.

Tiene varias opciones para implementar estas interfaces COM. Puede usar la biblioteca de plantillas activas (ATL), que proporciona implementaciones de existencias de los métodos IUnknown . DirectShow también proporciona una clase base de C++, CUnknown, que facilita la implementación de una interfaz COM. Para obtener información sobre el uso de CUnknown, vea Cómo implementar IUnknown.

El código de ejemplo de este artículo define una clase de C++ independiente, que implementa IUnknown e IAMErrorLog. El resultado no es un objeto COM verdadero, ya que no admite CoCreateInstance. Sin embargo, este enfoque es adecuado para el propósito del ejemplo.

Errores de registro