Microsoft DirectX 8.0 (Visual Basic)

DirectX の列挙

多くの Microsoft® DirectX® アプリケーションでは、通常初期化中に使用可能なリソースを列挙する必要がある。たとえば、DirectX Graphics を使用するアプリケーションでは、使用可能な表示モードを判定する必要がある。また、Microsoft DirectInput® を使用するアプリケーションでは、ジョイスティックで使用可能なボタンや軸を列挙する必要がある。

DirectX for Microsoft Visual Basic® では、アプリケーションは該当する列挙オブジェクトを取得することで列挙を処理する。列挙オブジェクトが作成されると、コレクションが構築される。このコレクションはオブジェクトが存在する限り存在する。アプリケーションでは、列挙オブジェクトのメソッドを使用してコレクションにアクセスできる。

DirectX では、対象タスクが特定された多くの列挙オブジェクトをサポートしている。通常、メソッドを呼び出して列挙オブジェクトを取得する。たとえば、DirectX8 クラスにはそのような 2 つのメソッドがある。その 1 つである DirectX8.GetDSEnum メソッドは、DirectSoundEnum8 列挙オブジェクトを返す。このオブジェクトを使用すると、Microsoft DirectSound® デバイスを列挙し、適切なデバイスの GUID を取得できる。次に、この GUID を使用して、DirectSound8 オブジェクトを作成できる。

さまざまな DirectX コンポーネント オブジェクトから取得される列挙オブジェクトもある。たとえば、DirectInput8.GetDIDevices メソッドを呼び出すと、入力デバイスの列挙オブジェクトを取得できる。

次のサンプル コードは、システムにアタッチされているすべての入力デバイスを列挙する方法を示している。変数 di は、DirectInput8 オブジェクトである。最初に、DirectInputEnumDevices8 列挙オブジェクトを取得する。

Dim diEnum As DirectInputEnumDevices8
Set diEnum = di.GetDIDevices(0, DIEDFL_ATTACHEDONLY)

次に、DirectInputEnumDevices8 メソッドを使用して、アタッチされたデバイスを補間する。各デバイスが必要な特定の能力を持つかどうかを調べる。次の例では、デバイスの名前をリスト ボックスに設定する。

Dim diDevice As DirectInputDeviceInstance
Dim X As Integer

For X = 1 To diEnum.GetCount
    Set diDevice = diEnum.GetItem(X)
    Call List1.AddItem(diDevice.ProductName)
    'デバイスの能力を調べる。
    '...
Next X 

  DirectX の列挙により作成されたコレクションはすべて 1 から始まる。