Microsoft DirectX 9.0 SDK Update (Summer 2003) |
ChatPeer
The ChatPeer sample is similar in form to SimplePeer. When a player hosts or connects to a session, the players can chat with each other by passing text strings.
Path
Source: (SDK root)\Samples\C++\DirectPlay\ChatPeer
Executable: (SDK root)\Samples\C++\DirectPlay\Bin
User's Guide
Enter the player's name and choose a connection type. You can choose "Wait for Lobby Connection" or choose a service provider. Use the Multiplayer Games dialog box to either search for an active game to join or to start a new game. When you join or start a game, you can begin immediately. Other players can join the game at any time. If host migration is on, the host player can also leave at any time, because Microsoft® DirectPlay® will automatically migrate the host session to another player.
Programming Notes
The ChatPeer sample is very similar in form to the SimplePeer sample. The ChatPeer differs by letting clients send text string to all players connected to the session. For detailed programming notes, see the Programming Notes section of the SimplePeer sample.
When Send is pressed, the SendChatMessage function does the following:
- Retrieves the text string from the dialog box.
- Fills an application-defined structure, GAMEMSG_CHAT. This structure has a message type identifier (ID) as the first BYTE. This lets the application figure out what type of application message was received. However, ChatPeer uses only one application-defined message. See StagedPeer for a more complex example of this process.
- Fills out a DPN_BUFFER_DESC structure using the GAMEMSG_CHAT buffer.
- Calls IDirectPlay8Peer::SendTo with the DPN_BUFFER_DESC. It passes the DPNID_ALL_PLAYERS_GROUP flag, so this message goes to everyone.