Platform SDK: DirectX

ステップ 1 : DirectPlay の初期化とプロバイダの列挙

[C++]

ここでは、Visual Basic でのアプリケーション開発について説明する。C++ については、「DirectPlay C/C++ チュートリアル」を参照すること。

[Visual Basic]

アプリケーションで DirectPlay を実装するための最初のステップは、DirectPlay4 オブジェクトを作成し、利用可能な接続またはサービス プロバイダを列挙することである。Memory サンプルでは、いくつかのグローバル宣言の後で、InitDPlay プロシージャ内で次の手順を実行している。

Public gObjDX As New DirectX7
Public gObjDPlay As DirectPlay4
Public gObjEnumConnections As DirectPlayEnumConnections
 
Public Sub InitDPlay()
 
  On Error GoTo FAILED
  Set gObjDPlay = gObjDX.DirectPlayCreate("")
  Set gObjEnumConnections = gObjDPlay.GetDPEnumConnections( _
          "", DPCONNECTION_DIRECTPLAY)
  Exit Sub
  
FAILED:
  MsgBox ("Failed to initialize DirectPlay.")
  End
End Sub

DirectPlay4.GetDPEnumConnections を呼び出して、サービス プロバイダのコレクションを作成する。guid パラメータには、空の文字列を渡す。アプリケーション専用に設計されたサービス プロバイダを検索する場合に限り、アプリケーションの GUID を渡す。DP_CONNECTION_DIRECTPLAY フラグは、このアプリケーションでロビー プロバイダを使用しないことを示す。

InitDPlay プロシージャは、InitConnectionList 関数から呼び出される。その後、この関数は、利用可能なサービス プロバイダをリスト ボックスに代入する。この関数全体は、次のようになっている。

Public Function InitConnectionList() As Boolean

  Dim NumConnections As Long
  Dim strName As String
  Dim X As Long
 
  Call InitDPlay     ' 失敗したら、プログラムを中断する。
 
  lstConnections.Clear
  
  On Error GoTo FAILED
  NumConnections = gObjEnumConnections.GetCount
  For X = 1 To NumConnections
    strName = gObjEnumConnections.GetName(X)
    Call lstConnections.AddItem(strName)
  Next X 
 
  ' 選択肢を初期化する。
  lstConnections.ListIndex = 0
  InitConnectionList = True
  Exit Function
  
  ' エラー ハンドラ。
FAILED:
  InitConnectionList = False
  Exit Function
 
End Function

DirectPlayEnumConnections コレクションは、1 から始まる。これは、DirectX for Visual Basic のほかの列挙されたコレクションでも同じである。

次項 : ステップ 2 : 接続の初期化とセッションの列挙