错误日志记录概述

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

[此 API 不受支持,将来可能会更改或不可用。]

为使应用程序在处理错误方面具有最大的灵活性, DirectShow 编辑服务 使用回调机制。 应用程序实现用于记录错误的方法。 在运行时,如果发生错误,DES 将调用你提供的方法。 方法采用描述错误的参数。 此方法对此信息的作用由你决定。 (它应尽快返回,否则可能会干扰 program 的执行。)

错误日志记录回调方法包含在 COM 接口 IAMErrorLog 中。 应用程序必须实现此接口。 与所有 COM 接口一样, IAMErrorLog 继承 IUnknown 接口,因此应用程序也必须实现该接口。

有多个选项可用于实现这些 COM 接口。 可以使用活动模板库 (ATL) ,该库提供 IUnknown 方法的常用实现。 DirectShow 还提供 C++ 基类 CUnknown,使实现 COM 接口变得容易。 有关使用 CUnknown 的信息,请参阅 如何实现 IUnknown

本文中的示例代码定义了一个实现 IUnknownIAMErrorLog 的自包含 C++ 类。 结果不是真正的 COM 对象,因为它不支持 CoCreateInstance。 但是,此方法足以满足本示例的目的。

记录错误