Поделиться через


Включение журнала

Windows Media диспетчер устройств предоставляет объект ведения журнала, который может сохранять информацию в текстовый файл во время выполнения. Разработчики приложений и поставщиков услуг могут использовать этот объект для хранения сообщений в файле журнала во время работы приложения или поставщика услуг. Этот объект особенно полезен при обработке файлов, защищенных DRM, так как диспетчер устройств Windows Media не позволяет подключить отладчик к процессу, который обрабатывает файлы, защищенные DRM.

Средство ведения журнала — это COM-объект с идентификатором класса CLSID_WMDMLogger, который предоставляет один интерфейс , IWMDMLogger. Для использования объекта ведения журнала компонентам не требуется сертификат.

По умолчанию windows Media диспетчер устройств поддерживает файл журнала независимо от того, использует ли приложение IWMDMLogger. Этот файл журнала представляет собой простой текстовый файл, и каждая запись содержит запись, предшествуемую меткой времени в формате ГГГГММДДЧЧММСС, с использованием 24-часового местного времени. Windows Media диспетчер устройств регистрирует все вызовы API, а также все записи, добавленные путем вызова сообщений IWMDMLogger. Все записи файла журнала добавляются в файл, пока не будет вызван метод Reset или файл не превысит его максимальный размер. Файл закрывается автоматически после каждой операции ведения журнала. Один и тот же файл журнала используется для записей приложения и системных записей.

Ниже показано, как использовать объект ведения журнала.

  1. Включите wmdmlog.h в проект.
  2. Создайте объект ведения журнала, вызвав CoCreateInstance(CLSID_WMDMLogger) и запросив интерфейс IWMDMLogger . Назначьте указатель интерфейса глобальной переменной.
  3. Убедитесь, что ведение журнала включено, вызвав IWMDMLogger::IsEnabled; Если это не так, включите его, вызвав IWMDMLogger::Enable.
  4. Укажите имя и размер настраиваемого файла журнала. Для этого вызывается IWMDMLogger::SetLogFileName и IWMDMLogger::SetSizeParams.
  5. В тех точках кода, где требуется внести запись в журнал, вызовите IWMDMLogger::LogDword для строк журнала, содержащих переменные (этот метод аналогичен методу wsprintf таким образом, как он позволяет форматировать строку, содержащую значение переменной), или вызовите IWMDMLogger::LogString для записи в журнал строк констант.

Пример кода см. на справочных страницах для методов IWMDMLogger.

Задачи, общие для приложений и поставщиков служб