Microsoft DirectX 8.0 (C++) |
ここでは、DirectMusic COM インターフェイスのリファレンスを記述する。
現在のバージョンのインターフェイスは、名前の最後に "8" を付けて、宣言や定義を行う。最新バージョンのインターフェイスを確実に使用するには、ポインタの宣言時にこのサフィックスを必ず付ける。
注 IKsControl および IReferenceClock は、この規則の例外とする。
メソッドが取得するインターフェイスは、常に基本バージョンである。基本バージョンよりも新しいバージョンが存在する場合は、次の例のように、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 のような定義が存在する場合、インターフェイスはその名前で記載されている。