Platform SDK: DirectX

IDirectMusicPort::SetDirectSound

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

HRESULT SetDirectSound(
  LPDIRECTSOUND pDirectSound, 
  LPDIRECTSOUNDBUFFER pDirectSoundBuffer
);

パラメータ

pDirectSound
ポートの接続先となる DirectSound オブジェクトの IDirectSound インターフェイスのアドレス。既存の DirectSound オブジェクトを接続解除し、解放する場合は NULL を指定する。
pDirectSoundBuffer
ポートの接続先となる IDirectSoundBuffer インターフェイスのアドレス。この値は NULL でもよい。

戻り値

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

失敗すれば次のエラー値のいずれかを返す。

DMUS_E_ALREADY_ACTIVATED
E_INVALIDARG

注意

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

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

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

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

動作環境

  Windows NT/2000 : Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : dmusicc.h で宣言。

参照

IDirectMusicPort::ActivateIDirectMusicPort::GetFormatDirectMusic と DirectSound の統合