| DirectX SDK |
This tutorial pertains only to applications written in Visual Basic. See DirectPlay C/C++ Tutorials
The first step toward implementing DirectPlay in any application is to create a DirectPlay4 object and enumerate the available connections, or service providers. After some global declarations, the Memory sample takes these steps in the InitDPlay procedure:
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
The call to DirectPlay4.GetDPEnumConnections builds a collection of service providers. An empty string is passed in as the guid parameter. You would pass the application GUID only if you were looking for a service provider specifically designed for your application. The DP_CONNECTION_DIRECTPLAY flag indicates that the application is not interested in lobby providers.
The InitDPlay procedure is called from the InitConnectionList function, which then goes on to populate a list box with the available service providers. The complete function follows:
Public Function InitConnectionList() As Boolean
Dim NumConnections As Long
Dim strName As String
Dim X As Long
Call InitDPlay ' Program aborts on failure
lstConnections.Clear
On Error GoTo FAILED
NumConnections = gObjEnumConnections.GetCount
For X = 1 To NumConnections
strName = gObjEnumConnections.GetName(X)
Call lstConnections.AddItem(strName)
Next X
' Initialize selection
lstConnections.ListIndex = 0
InitConnectionList = True
Exit Function
' Error handlers
FAILED:
InitConnectionList = False
Exit Function
End Function
Note that the DirectPlayEnumConnections collection is 1-based, like other enumeration collections in DirectX for Visual Basic.
Next: Step 2: Initialize the Connection and Enumerate Sessions