Microsoft DirectX 8.0 (C++) |
アプリケーションでは、システムで現在利用可能な Microsoft® DirectX® のバージョン情報が必要になる場合がある。たとえば、システムに古いバージョンの DirectX が存在する場合、アプリケーションはそのバージョンに機能の範囲を合わせるか、最新のバージョンをインストールする必要が生じることがある。
DirectX のバージョン番号を直接取得する方法はない。ただし、各バージョンは、固有のオブジェクトおよびインターフェイスを含んでいる。DirectX のすべてのバージョンは、以前のすべてのバージョンをサポートしている。このため、特定のバージョン固有のインターフェイスおよびオブジェクトは、それらを導入したバージョンとすべての後続バージョンでサポートされる。したがって、必要なバージョンが利用可能かどうかを調べるには、そのバージョン固有のオブジェクトまたはインターフェイスが存在するかどうかをテストするとよい。それらのオブジェクトまたはインターフェイスが存在する限り、それよりも新しいバージョンの DirectX を使用していても、アプリケーションは正常に機能する。
たとえば、バージョン 6.1 のサポートが必要であるとする。Microsoft DirectMusic® オブジェクト (CLSID_DirectMusic) は、DirectX Version 6.1 から導入されたオブジェクトである。DirectMusic オブジェクトの存在は、CoCreateInstance を使ってこのオブジェクトの作成を試みることによってテストできる。成功した場合は、バージョン 6.1 以降がインストールされているので、DirectX 6.1 のすべての機能を使用できる。
ここでは、各バージョン固有のインターフェイスおよびオブジェクトの詳細なリストは示さないので、DirectX ソフトウェア開発キットのサンプルのセクションを参照すること。サンプルの 1 つの GetDXVersion という関数には、DirectX のすべてのバージョンに関するテストが含まれている。GetDXVersion は、そのシステムに存在する DirectX のバージョンに対応する整数を返す。この整数が必要なバージョンの番号と同じであるか、それよりも大きければ、アプリケーションは正常に実行される。サンプル コードは、SDK のルート フォルダの \Samples\Multimedia\DXMisc\GetDXVer にある。
詳細については、「オペレーティング システムのバージョンのチェック」を参照すること。