Platform SDK: DirectX |
次のいずれかの方法を使うと、バンドを手動でダウンロードすることができる。
同じ音色を繰り返しダウンロードしても問題は生じない。1 つのバンド内にある音色が何度も現れる場合や、複数のバンドを同時に開いてダウンロードするときに同じ音色がこれらのバンドで使用されている場合でも、その音色のデータは 1 回だけシンセサイザにダウンロードされる。
次の関数は、ディスクからバンドをロードして、そのバンドをダウンロードする。
HRESULT myDownloadBand( IDirectMusicLoader *pILoader, // ローダー インターフェイス。 IDirectMusicBand **ppBand, // ポインタを取り出す。 IDirectMusicPerformance *pPerf, // バンドを使うパフォーマンス WCHAR *pwszFile) // ロードするファイル { HRESULT hr; DMUS_OBJECTDESC Desc; // ディスクリプタ // 最初にファイル名とバンド オブジェクトの GUID を // 指定して、Desc を初期化する。 wcscpy(Desc.wszFileName,pwszFile); Desc.dwSize = sizeof(Desc); Desc.guidClass = CLSID_DirectMusicBand; Desc.dwValidData = DMUS_OBJ_CLASS | DMUS_OBJ_FILENAME | DMUS_OBJ_FULLPATH; hr = pILoader->GetObject(&Desc, IID_IDirectMusicBand, (void **) ppBand); if (SUCCEEDED(hr)) { // パフォーマンスを通してバンドをダウンロードする。 hr = (*ppBand)->Download(pPerf); } return hr; }
ファイル、リソース、または DirectMusicStyle オブジェクトから DirectMusicBand オブジェクトを取得した後、DirectMusicBand.Download メソッドを使って、バンドを手動でダウンロードすることができる。