home *** CD-ROM | disk | FTP | other *** search
- Attribute VB_Name = "DplayModule"
- Option Explicit
-
- '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- '
- ' Copyright (C) 2000 Microsoft Corporation. All Rights Reserved.
- '
- ' File: dplay.bas
- '
- '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- Public Enum DPLAY_MSGS
- MSG_CHANGEGROUP
- MSG_CHANGETALK
- MSG_SERVERCHANGEGROUP
- End Enum
-
- 'Constants
- Public Const AppGuid = "{F5230441-9B71-88DA-998C-00207547A14D}"
-
- 'DirectX Variables
- Public dvServer As DirectPlayVoiceServer8
- Public dvClient As DirectPlayVoiceClient8
- Public dx As DirectX8
- Public dpp As DirectPlay8Peer
- Public oSession As DVSESSIONDESC
- Public oSound As DVSOUNDDEVICECONFIG
- Public oClient As DVCLIENTCONFIG
-
- Public glGroupID(1 To 5) As Long
-
- 'Misc Vars
- Public glMyPlayerID As Long
- Public fGotSettings As Boolean
-
- Public DPlayEventsForm As DPlayConnect
-
- Public Sub InitDPlay()
- Set dx = New DirectX8
- Set dpp = dx.DirectPlayPeerCreate
- Set dvServer = dx.DirectPlayVoiceServerCreate
- Set dvClient = dx.DirectPlayVoiceClientCreate
- End Sub
-
- Public Sub Cleanup()
-
- On Error Resume Next
- 'Turn off our error handling
- If Not (DPlayEventsForm Is Nothing) Then
- If Not (dpp Is Nothing) Then dpp.UnRegisterMessageHandler
- If Not (dvClient Is Nothing) Then dvClient.UnRegisterMessageHandler
- If Not (dvServer Is Nothing) Then dvServer.UnRegisterMessageHandler
- dvClient.Disconnect 0
- DPlayEventsForm.DoSleep 50
- If DPlayEventsForm.IsHost Then dvServer.StopSession 0
-
- If Not dpp Is Nothing Then dpp.Close
- DPlayEventsForm.GoUnload
- 'Destroy the objects
- Set dvClient = Nothing
- Set dvServer = Nothing
- Set dpp = Nothing
- Set dx = Nothing
- End If
- End Sub
-
- Private Sub Main()
- 'Here is where we will start
- InitDPlay
-
- Set DPlayEventsForm = New DPlayConnect
- If Not DPlayEventsForm.StartConnectWizard(dx, dpp, AppGuid, 20) Then
- Cleanup
- Else 'We did choose to play a game
- If Not (DPlayEventsForm.IsHost) Then frmVoiceSettings.ClientOnly
- frmVoiceSettings.Show vbModal
- If Not fGotSettings Then 'We quit for some unknown reason.
- Cleanup
- Exit Sub
- End If
- frmVoice.Show vbModeless
- frmVoice.Caption = frmVoice.Caption & " (HOST)"
- End If
-
- End Sub
-
- Public Sub RemovePlayerFromAllGroups(lPlayerID As Long)
- On Error Resume Next 'We don't care about any errors..
- Dim lCount As Long
-
- For lCount = 1 To 5
- dpp.RemovePlayerFromGroup glGroupID(lCount), lPlayerID, 0
- Next
- Err.Clear
- 'Ignore the errors about Player not in group
- End Sub
-
-