この質問は、WindowsオーディオセッションAPIに関するものです。Microsoftのサンプルコードを読んだ後、IAudioClientを取得した後、「GetService」メソッドが呼び出されてIAudioRenderClientを取得していることがわかりました。次に、IAudioRenderClientのGetBufferメソッドとReleaseBufferメソッドを呼び出して、再生するバッファーを追加します。
私の質問:
IAudioRenderClientが必要なのはなぜですか、GetBufferメソッドとReleaseBufferメソッドをIAudioClientに直接配置しないのはなぜですか?つまり、1つのIAudioClientに対して複数のIAudioRenderClientが必要なのはいつですか。
オーディオを再生するときは常にIAudioClientが必要であり、このIAudioClientではGetServiceを呼び出してIAudioRenderClientを取得するため、CoCreateInstance()を呼び出してIAudioRenderClientを作成する機会はありませんか?では、なぜIAudioRenderClientにIIDが必要なのですか?
================================================== ============================
もう少し読んだ後、IAudioClientはIAudioRenderClientまたはIAudioCaptureClientになると思います。しかし、別の質問が発生します。なぜGetServiceを呼び出してIAudioRenderClientを取得しますが、QueryInterfaceは取得しないのでしょうか。