Microsoft DirectX 8.0 (C++) |
コレクションは、ほかのオブジェクトと同様にロードされる。詳細については、「オーディオ データのロード」を参照すること。
標準的な GM/GS セットをロードするために、DMUS_OBJECTDESC 構造体の guidObject メンバに、ローダーへのパス GUID_DefaultGMCollection を設定する。ローダーを使ってこのオブジェクトに何度もアクセスする場合は、キャッシングが有効になっていることを確認し (デフォルトの設定)、GM コレクションを要求するたびにコピーが 1 つ作成されることを防止する。
注 GM/GS Sound Set を変更することはできない。詳細については、「法的情報」の「著作権に関する注意」を参照すること。
次のサンプル コードは、GUID によって識別されるコレクションをロードする方法を示している。
HRESULT myGetGMCollection( IDirectMusicLoader8 *pILoader, IDirectMusicCollection8 **ppICollection) { HRESULT hr; DMUS_OBJECTDESC desc; desc.dwSize = sizeof(DMUS_OBJECTDESC); desc.guidClass = CLSID_DirectMusicCollection; desc.guidObject = GUID_DefaultGMCollection; desc.dwValidData = (DMUS_OBJ_CLASS | DMUS_OBJ_OBJECT); hr = pILoader->GetObject(&desc, IID_IDirectMusicCollection8, (void **) ppICollection); return hr; }
IDirectMusicCollection8 インターフェイスへのポインタを取得すると、コレクション内のすべての音色にアクセスできる。ただし、この時点では、音色はポートにダウンロードされていない。
コレクション全体を一度にダウンロードするには、コレクションをセグメントに関連付けて、IDirectMusicSegment8::Download メソッドを呼び出す。例については、「カスタム音色による MIDI ファイルの演奏」を参照すること。
これらの手順は、デフォルト以外のコレクションを使用する場合にのみ必要となる。セグメントがコレクションを参照しない場合、通常は IDirectMusicSegment8::Download を呼び出すときに、セグメント中にオーサリングされたデフォルト コレクションの音色、または General MIDI セットの音色がポートにダウンロードされる。バンドをダウンロードするときに、そのバンドの音色で必要なすべての DLS データがダウンロードされる。「バンドの使い方」を参照すること。