Microsoft DirectX 8.0 (C++)

IDirectMusicPort8::SetDirectSound

ポートのウェーブ データがストリーム化されるデフォルトの DirectSound オブジェクトまたはバッファ、あるいはその両方を上書きするために使われる。また、DirectSound からポートの接続を解除する際にも使われる。

HRESULT SetDirectSound(
  LPDIRECTSOUND pDirectSound, 
  LPDIRECTSOUNDBUFFER pDirectSoundBuffer
);

パラメータ

pDirectSound
ポートの接続先となる DirectSound オブジェクトの IDirectSound8 インターフェイスのアドレス。既存の DirectSound オブジェクトの接続を解除し、解放する場合は NULL を指定する。
pDirectSoundBuffer
ポートの接続先である IDirectSoundBuffer8 インターフェイスのアドレス。NULL でもよい。pDirectSound が NULL である場合はこの値も NULL でなければならない。ポートが DirectX 8.0 以降のバージョンの Microsoft のソフトウェア シンセサイザである場合は、このパラメータを使用しない。

戻り値

成功した場合は S_OK または DMUS_S_NOBUFFERCONTROL を返す。「注意」を参照すること。

失敗した場合は、次のいずれかのエラー値を返す。

DMUS_E_ALREADY_ACTIVATED
E_INVALIDARG

注意

有効なポインタが pDirectSoundBuffer に渡されると、パンやボリュームなどのバッファ内でのコントロール チェンジが DirectMusic の再生に影響しない場合、このメソッドは DMUS_S_NOBUFFERCONTROL を返す。これは、Windows ドライバ モデル (WDM) ポートだけに影響する。

ポートをアクティブにすると、必要に応じて DirectSound プライマリ バッファがアップグレードされ、このポート (IDirectMusic8::CreatePort に渡される DMUS_PORTPARAMS8 構造体で指定する) のサンプリング レートとチャンネル情報をサポートする。

pDirectSoundBuffer が指すバッファは、このポートのサンプリング レートとチャンネル情報に一致するフォーマットを持つ、セカンダリ ストリーミング バッファでなければならない。このパラメータが NULL の場合、適切な IDirectSoundBuffer インスタンスが内部的に作成される。

ポートをいったんアクティブにしたら、IDirectSoundIDirectSoundBuffer も変更できない。

動作環境

  ヘッダー : dmusicc.h で宣言。

参照

IDirectMusicPort8::ActivateIDirectMusicPort8::GetFormat