ログ記録の有効化
Windows Media デバイス マネージャー には、実行時にテキスト ファイルに情報を保存できるログ オブジェクトが用意されています。 アプリケーションとサービス プロバイダーの両方の開発者は、このオブジェクトを使用して、アプリケーションまたはサービス プロバイダーの実行中にログ ファイルにメッセージを格納できます。 このオブジェクトは、DRM で保護されたファイルを処理する場合に特に便利です。Windows Media デバイス マネージャーでは、DRM で保護されたファイルを処理しているプロセスにデバッガーをアタッチできないためです。
ロガーは、1 つのインターフェイス IWMDMLogger を公開するクラス ID CLSID_WMDMLoggerを持つ COM オブジェクトです。 コンポーネントでは、ログ オブジェクトを使用するために証明書は必要ありません。
既定では、Windows Media デバイス マネージャーでは、アプリケーションで IWMDMLogger が使用されているかどうかに関係なく、ログ ファイルが保持されます。 このログ ファイルは単純なテキスト ファイルであり、各エントリには、24 時間ローカル時刻を使用して、YYYYMMDDHHMMSS 形式のタイム スタンプの前にエントリが含まれています。 Windows Media デバイス マネージャーでは、すべての API 呼び出しと、IWMDMLogger メッセージを呼び出して追加するすべてのエントリがログに記録されます。 Reset が呼び出されるか、ファイルが最大サイズを超えるまで、すべてのログ ファイル エントリがファイルに追加されます。 ファイルは、各ログ記録操作の後に自動的に閉じられます。 アプリケーション エントリとシステム エントリには、同じログ ファイルが使用されます。
次の手順は、ログ オブジェクトを使用する方法を示しています。
- プロジェクトに wmdmlog.h を含めます。
- CoCreateInstance(CLSID_WMDMLogger) を呼び出し、IWMDMLogger インターフェイスを要求して、ログ オブジェクトを作成します。 インターフェイス ポインターをグローバル変数に割り当てます。
- IWMDMLogger::IsEnabled を呼び出してログ記録が有効になっていることを確認します。そうでない場合は、IWMDMLogger::Enable を呼び出して有効にします。
- カスタム ログ ファイルの名前とサイズを指定します。 これを行うには、 IWMDMLogger::SetLogFileName と IWMDMLogger::SetSizeParams を呼び出します。
- ログにエントリを作成するコード内のポイントで、 IWMDMLogger::LogDword を呼び出して変数を含む文字列をログに記録します (このメソッドは、変数値を含む文字列を書式設定できる方法で wsprintf に似ています)、または IWMDMLogger::LogString を呼び出して定数文字列をログに記録します。
コード例については、 IWMDMLogger のメソッドのリファレンス ページを参照してください。
関連トピック