DirectMusic のインターフェイス
ここでは、DirectMusic の COM インターフェイスのリファレンスについて記述する。
現在のバージョンのインターフェイス (IKsControl と IReferenceClock を除く) は、名前の最後に 8 を付けて、宣言または定義する。最新バージョンのインターフェイスを確実に使うには、インターフェイス ポインタの宣言時にこのサフィックスを必ず付ける。
メソッドが取得するインターフェイスは、常に基本バージョンである。より新しいバージョンが存在する場合は、次の例のように、QueryInterface を呼び出してそれを取得する必要がある。lpdmBand は、IDirectMusicBand8 インターフェイス ポインタである。
IDirectMusicSegment * lpdmseg;
IDirectMusicSegment8 * lpdmseg8;
HRESULT hr = lpdmBand->CreateSegment(&lpdmseg);
if (SUCCEEDED(hr))
{
hr = lpdmseg->QueryInterface(IID_IDirectMusicSegment8,
(LPVOID*)&lpdmseg8);
}
インターフェイスの新しいバージョンがない場合、サフィックス 8 の付いたインターフェイス名は定義のみである。たとえば、IDirectMusicGraph8 は、あらゆる点で IDirectMusicGraph と等しい。このような場合、新しいインターフェイスを問い合わせる必要はないが、問い合わせをすることは、何の害もないだけでなく、DirectX の将来のバージョンに備えてコードの保守性を高めるのに役立つ。
旧バージョンのインターフェイスでサポートされているメソッドの情報については、該当するヘッダー ファイルのインターフェイスの宣言を参照すること。
IN (入力) パラメータとしてインターフェイス ポインタを渡すことができる場合は、古いバージョンを受け入れるようにメソッドが宣言されていても、新しいバージョンを渡すことができる。たとえば、IDirectMusicPerformance8::PlaySegmentEx には、IDirectMusicSegment または IDirectMusicSegment8 へのポインタを渡すことができる。
このドキュメントは、インターフェイスの最新バージョンに限定した、完全なリファレンス トピックを収録している。IDirectMusicGraph8 のような定義が存在する場合、インターフェイスはその名前で記載されている。
インターフェイス | 説明 |
IDirectMusic8 | バッファ、ポート、マスタ クロックを管理するためのメソッドを提供する。 |
IDirectMusicAudioPath8 | パフォーマンスから最後のミキサへのデータ フローのステージを管理する。 |
IDirectMusicBand8 | DirectMusic バンド オブジェクトを表す。 |
IDirectMusicBuffer8 | ポートに対してシーケンス化されるタイム スタンプ付きのデータ (通常は MIDI メッセージ形式) を含むバッファを表す。 |
IDirectMusicChordMap8 | コード マップを表す。 |
IDirectMusicCollection8 | DLS ファイルのインスタンスを管理する。 |
IDirectMusicComposer8 | コンポーザ エンジンへのアクセスを可能にする。 |
IDirectMusicContainer8 | コンテナ内のオブジェクトへのアクセスを可能にする。コンテナとは、セグメントやパフォーマンスが使うオブジェクトのコレクションである。 |
IDirectMusicDownload8 | DLS シンセサイザ ポートへのダウンロードに使われる連続したメモリ チャンクを表す。 |
IDirectMusicDownloadedInstrument8 | IDirectMusicPort8::DownloadInstrument メソッドまたは IDirectMusicPerformance8::DownloadInstrument メソッドを使ってシンセサイザにダウンロードされた音色を示すために使われる。 |
IDirectMusicGetLoader8 | ストリームを解析するオブジェクトが、ストリームにより参照される別のオブジェクトをロードする必要がある場合に使う。 |
IDirectMusicGraph8 | ツールのロードとメッセージ フローを管理する。 |
IDirectMusicInstrument8 | DLS コレクションの個別の音色を表す。 |
IDirectMusicLoader8 | オブジェクトの検索、列挙、キャッシング、ロードに使われる。 |
IDirectMusicObject8 | ストリームを解析するオブジェクトが、ストリームにより参照される別のオブジェクトをロードする必要がある場合に使う。 |
IDirectMusicPatternTrack8 | 1 つのパターンを含むトラックを表す。 |
IDirectMusicPerformance8 | 再生を管理する。 |
IDirectMusicPort8 | サウンド データの送信または受信を行うデバイスを表す。 |
IDirectMusicPortDownload8 | アプリケーションが DLS ダウンロードをサポートしているポートと直接通信し、メモリ チャンクをポートに直接ダウンロードできるようにする。 |
IDirectMusicScript8 | アプリケーションで設定や取得ができる変数、アプリケーションで呼び出すことのできるルーチンを保持するスクリプトを表す。 |
IDirectMusicSegment8 | 複数のトラックで構成される演奏可能なデータの単位であるセグメントを表す。 |
IDirectMusicSegmentState8 | セグメントの演奏中のインスタンスを表す。 |
IDirectMusicStyle8 | ミュージック セグメントの実行時アレンジで使われるパターン、モチーフ、バンドのコレクションをカプセル化するスタイルオブジェクトを表す。 |
IDirectMusicSynth | シンセサイザによって実装される。 |
IDirectMusicSynthSink | シンセサイザ シンクによって実装される。 |
IDirectMusicThru8 | キャプチャ ポートから別のポートへの MIDI メッセージの転送をサポートする。 |
IDirectMusicTool8 | メッセージを処理するツール オブジェクトを表す。 |
IDirectMusicTrack8 | セグメントに対する任意の種類のデータを格納できるトラック オブジェクトを表す。 |
IKsControl | プロパティ、イベント、メソッドのサポートを取得、設定、または問い合わせるために使われる。 |
IReferenceClock | システム基準クロックを表す。 |