エラー ログの概要
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
[この API はサポートされていないため、今後変更または使用できない可能性があります。]
DirectShow Editing Services では、アプリケーションでエラーを処理する柔軟性を最大限に高めるために、コールバック メカニズムが使用されます。 アプリケーションでは、エラーをログ記録するためのメソッドが実装されています。 実行時にエラーが発生した場合、DES は指定したメソッドを呼び出します。 メソッドは、エラーを記述するパラメーターを受け取ります。 この情報を使用してメソッドが行う処理は、ユーザーが行う必要があります。 (ただし、可能な限り迅速に戻る必要があります。または、プログラムの実行に干渉する可能性があります)。
エラー ログ コールバック メソッドは、COM インターフェイス IAMErrorLog に含まれています。 アプリケーションでこのインターフェイスを実装する必要があります。 すべての COM インターフェイスと同様に、 IAMErrorLog は IUnknown インターフェイスを継承するため、アプリケーションでも実装する必要があります。
これらの COM インターフェイスを実装するには、いくつかの選択肢があります。 IUnknown メソッドのストック実装を提供する Active Template Library (ATL) を使用できます。 DirectShow には C++ 基本クラス CUnknown も用意されているため、COM インターフェイスを簡単に実装できます。 CUnknown の使用方法については、「IUnknown を実装する方法」を参照してください。
この記事のサンプル コードでは、 IUnknown と IAMErrorLog の両方を実装する自己完結型の C++ クラスを定義しています。 CoCreateInstance をサポートしていないため、結果は真の COM オブジェクトではありません。 ただし、この方法は、この例の目的に適しています。
関連トピック