次の方法で共有


エラー ログの概要

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

[この API はサポートされていないため、今後変更または使用できない可能性があります。]

DirectShow Editing Services では、アプリケーションでエラーを処理する柔軟性を最大限に高めるために、コールバック メカニズムが使用されます。 アプリケーションでは、エラーをログ記録するためのメソッドが実装されています。 実行時にエラーが発生した場合、DES は指定したメソッドを呼び出します。 メソッドは、エラーを記述するパラメーターを受け取ります。 この情報を使用してメソッドが行う処理は、ユーザーが行う必要があります。 (ただし、可能な限り迅速に戻る必要があります。または、プログラムの実行に干渉する可能性があります)。

エラー ログ コールバック メソッドは、COM インターフェイス IAMErrorLog に含まれています。 アプリケーションでこのインターフェイスを実装する必要があります。 すべての COM インターフェイスと同様に、 IAMErrorLogIUnknown インターフェイスを継承するため、アプリケーションでも実装する必要があります。

これらの COM インターフェイスを実装するには、いくつかの選択肢があります。 IUnknown メソッドのストック実装を提供する Active Template Library (ATL) を使用できます。 DirectShow には C++ 基本クラス CUnknown も用意されているため、COM インターフェイスを簡単に実装できます。 CUnknown の使用方法については、「IUnknown を実装する方法」を参照してください。

この記事のサンプル コードでは、 IUnknownIAMErrorLog の両方を実装する自己完結型の C++ クラスを定義しています。 CoCreateInstance をサポートしていないため、結果は真の COM オブジェクトではありません。 ただし、この方法は、この例の目的に適しています。

エラーのログ記録