Messages returned by the IDirectPlay2::Receive method from player ID DPID_SYSMSG are system messages. All system messages begin with a doubleword value specified by dwType. You can cast the buffer returned by the IDirectPlay2::Receive method to a generic message (DPMSG_GENERIC) and switch on the dwType element, which will have a value equal to one of the messages with the DPSYS_ prefix. After the application has determined which system message it is, the buffer should be cast to the appropriate structure (beginning with the DPMSG_ prefix) to read the data.
Your application should be prepared to handle the following system messages:
Value of dwType | Message structure |
DPSYS_ADDPLAYERTOGROUP | DPMSG_ADDPLAYERTOGROUP |
DPSYS_CREATEPLAYERORGROUP | DPMSG_CREATEPLAYERORGROUP |
DPSYS_DELETEPLAYERFROMGROUP | DPMSG_DELETEPLAYERFROMGROUP |
DPSYS_DESTROYPLAYERORGROUP | DPMSG_DESTROYPLAYERORGROUP |
DPSYS_HOST | DPMSG_HOST |
DPSYS_SESSIONLOST | DPMSG_SESSIONLOST |
DPSYS_SETPLAYERORGROUPDATA | DPMSG_SETPLAYERORGROUPDATA |
DPSYS_SETPLAYERORGROUPNAME | DPMSG_SETPLAYERORGROUPNAME |
Messages returned by the IDirectPlayLobby::ReceiveLobbyMessage method that have a dwFlags parameter set to DPLAD_SYSTEM are system messages. All system messages begin with a doubleword value specified by dwType. You can cast the buffer returned by the IDirectPlayLobby::ReceiveLobbyMessage method to a generic message (DPLMSG_GENERIC) and switch on the dwType element, which will have a value equal to one of the messages with the DPLSYS_ prefix.