Messages returned by the IDirectPlay::Receive method from player ID 0 are system messages. All system messages begin with a doubleword dwType. You can cast the buffer returned by the IDirectPlay::Receive method to a generic message (DPMSG_GENERIC) and switch on the dwType element, which will have a value equal to one of the DPSYS_* messages (DPSYS_ADDPLAYER, and so on).
Your application should be prepared to handle the following system messages:
| Value of dwType | Message structure |
| DPSYS_ADDPLAYER | DPMSG_ADDPLAYER |
| DPSYS_ADDPLAYERTOGROUP | DPMSG_GROUPADD |
| DPSYS_DELETEGROUP | DPMSG_DELETEPLAYER |
| DPSYS_DELETEPLAYER | DPMSG_DELETEPLAYER |
| DPSYS_DELETEPLAYERFROMGRP | DPMSG_GROUPDELETE |
| DPSYS_SESSIONLOST | DPMSG_GENERIC |