カスタム シンクの使用
[このページに関連付けられている機能である Windows Media Format 11 SDK は、従来の機能です。 ソース リーダーとシンク ライターに置き換わりました。 ソース リーダーとシンク ライターは、Windows 10とWindows 11用に最適化されています。 Microsoft では、可能であれば、新しいコードで Windows Media Format 11 SDK ではなくソース リーダーとシンク ライターを使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
特別な書き込みが必要な場合は、独自のライター シンクを作成できます。 ライターは、 IWMWriterSink のメソッドを呼び出すことによって、シンクとの一方向の通信を維持します。 独自のシンクを作成するには、アプリケーションの クラスに IWMWriterSink インターフェイスを実装します。 このプロセスは、Windows Media Format SDK のオブジェクトで使用される他のコールバック インターフェイスを実装するのと非常によく似ています。 コールバックの詳細については、「 コールバック メソッドの使用」を参照してください。
IWMWriterSink::OnHeader で受信したバッファーをファイルの先頭に書き込み、OnDataUnit で受信したすべてのバッファーを順番に書き込む必要があります。 OnHeader は先頭で呼び出されますが、他の場合にも呼び出される可能性があります。その場合は、可能であれば、元のヘッダーを上書きする必要があります。 アプリケーションで何らかの理由でこれを実行できない場合は、後続の OnHeader 呼び出しを無視するだけです。
カスタム シンクは、 IWMStatusCallback::OnStatus コールバック メソッドを呼び出すことによって、その状態を書き込みアプリケーションに伝える必要があります。 シンクを COM オブジェクトとして実装する場合は、 IWMRegisterCallback インターフェイスを公開できます。 ただし、 OnStatus コールバックのアドレスをシンクに渡し、任意の方法でコンテキストを設定できます。
関連トピック