|Microsoft DirectX 9.0|
A lobby client is an application that is implemented by the lobby server vendor and installed on each player's computer. It handles communication between the players and their game applications, and the lobby server. A common way to install a lobby client is to have the user download it from the lobby server's Web site as part of the sign-up procedure.
The following is a typical scenario.
Lobby clients do not necessarily have to be linked to a remote server. In another scenario the user launches the lobby client directly. The lobby client then lists the available games and sessions, perhaps among the people connected to the user's local area network (LAN) subnet. When the user chooses a game and session, the lobby client launches the game.
This section discusses some the general features of a lobby client. For more information about communicating between a lobby client and its associated lobby server, see Communicating with a Lobbied Application.
For more information about implementation details, see Implementing a Lobby Client or the LobbyClient sample application included in the software development kit (SDK).
Much of the lobbied application's interaction with an associated lobby client is indirect. The application does something that affects the lobby client, Microsoft?DirectPlay?sends an appropriate message, and vice versa. For instance, if the application changes the connection settings, DirectPlay notifies the lobby client, and provides the new settings. However, there are two methods that provide information directly to the lobby client: IDirectPlay8LobbiedApplication::UpdateStatus and IDirectPlay8LobbiedApplication::Send.
You must notify the lobby client when any of the following changes in the game status take place.
To notify the lobby client of one of these status changes, call IDirectPlay8LobbiedApplication::UpdateStatus, and set the dwStatus parameter to the appropriate value. The lobby client receives a DPL_MSGID_SESSION_STATUS message to notify it of the status change.
The IDirectPlay8LobbiedApplication::Send method enables the application to send a message directly to the lobby client. DirectPlay passes the data to the lobby client without modification. It is the responsibility of the lobby client to process that data.
The lobby client can also send data directly to the application. The data is passed to the lobby client's message handler with a DPL_MSGID_RECEIVE message. DirectPlay passes the data to the application without modification. The lobby client must process the data.