Platform SDK: DirectX

IDirectMusicInstrument::SetPatch

IDirectMusicInstrument::SetPatch メソッドは、楽器用のパッチ番号を設定する。DLS コレクション内の各楽器はあらかじめ定義されたパッチ番号を持っているが、IDirectMusicCollection::GetInstrument メソッドを使ってコレクションから楽器を取り出した後、パッチ番号を再割り当てすることもできる。DirectMusic パッチ番号の詳細については、IDirectMusicInstrument::GetPatch を参照すること。

HRESULT SetPatch(
  DWORD dwPatch
);

パラメータ

dwPatch
楽器に割り当てる新しいパッチ番号。

戻り値

成功すれば S_OK を返す。

失敗すれば DMUS_E_INVALIDPATCH を返す。

注意

次のサンプル コードは、コレクションから音色を取得し、音色の MSB バンクの再マップを行って他のバンクを選択し、その音色をダウンロードする。

HRESULT myRemappedDownload(
    IDirectMusicCollection *pCollection,
    IDirectMusicPort *pPort,
    IDirectMusicDownloadedInstrument **ppDLInstrument,
    BYTE bMSB,       // パッチ番号のバンク セレクト内で指定された MIDI の MSB。
    DWORD dwPatch)   // 指定されたパッチ番号。
 
{
    HRESULT hr;
    IDirectMusicInstrument* pInstrument;
    hr = pCollection->GetInstrument(dwPatch, &pInstrument);
    if (SUCCEEDED(hr))
    {
        dwPatch &= 0xFF00FFFF;  // MSB を消去する。
        dwPatch |= bMSB << 16;  // 新しい MSB の値を設定する。
        pInstrument->SetPatch(dwPatch);
        hr = pPort->DownloadInstrument(pInstrument, 
                ppDLInstrument, 
                NULL, 0);       // すべてのリージョンをダウンロードする。
        pInstrument->Release();
    }
    return hr;
}

動作環境

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