オーディオ データ形式
ウェーブ オーディオ ストリームのデータ形式を指定するには、KSDATAFORMAT 構造体の直後に WAVEFORMATEX 構造体または KSDSOUND_BUFFERDESC 構造体が続き、それに応じて KSDATAFORMAT の指定子メンバーに次の 2 つの値のいずれかを設定します。
KSDATAFORMAT_SPECIFIER_WAVEFORMATEX
データ形式が waveIn または waveOut アプリケーションで使用されているウェーブ ストリームに属していることを示します。 この場合、KSDATAFORMAT 構造体の FormatSize が十分な大きさの場合、KSDATAFORMAT 構造体に続くデータ書式指定子は WAVEFORMATEX 構造体です。
KSDATAFORMAT_SPECIFIER_DSOUND
データ形式が DirectSound アプリケーションで使用されているウェーブ ストリームに属していることを示します。 この場合、KSDATAFORMAT 構造体に続くデータ書式指定子は、埋め込み WAVEFORMATEX 構造体を含む KSDSOUND_BUFFERDESC 構造体です。
KSDATAFORMAT_WAVEFORMATEX 構造体は、KSDATAFORMAT 構造体とそれに続く WAVEFORMATEX 構造体の両方をカプセル化します。 同様に、KSDATAFORMAT_DSOUND 構造体は、KSDATAFORMAT 構造体とその後に続く DSOUND_BUFFERDESC 構造体の両方をカプセル化します。
KSDATAFORMAT_WAVEFORMATEX または KSDATAFORMAT_DSOUND の場合、構造体の最後の項目は埋め込み WAVEFORMATEX 構造体です。KSDATAFORMAT_DSOUND の場合、WAVEFORMATEX 構造体は埋め込み DSOUND_BUFFERDESC 構造体に含まれます。 どちらの場合でも、WAVEFORMATEX 構造体は WAVEFORMATEXTENSIBLE 構造体の先頭である可能性があり、その場合 WAVEFORMATEX の wFormatTag メンバーは値 WAVE_FORMAT_EXTENSIBLE に設定されます。 詳しくは、「拡張可能な Wave 形式の記述子」を参照してください。
MIDI ストリームまたは DirectMusic ストリームのデータ形式を指定するには、KSDATAFORMAT 構造体で十分です。その後に追加情報はありません。
wave と DirectSound のデータ形式の例については、「PCM ストリーム データ形式」と「DirectSound ストリーム データ形式 」を参照してください。 MIDI と DirectMusic のデータ形式の例については、「MIDI ストリーム データ形式 」と「DirectMusic ストリーム データ形式」を参照してください。