Microsoft DirectX 8.0 (C++) |
次のコードは、SDK のサンプル SimplePeer にあるメッセージ ハンドラを簡略化したものである。わかりやすくするため、エラー処理コードが削除されている。完全なコードについては、上記サンプルを参照すること。
HRESULT WINAPI DirectPlayLobbyMessageHandler( PVOID pvUserContext, DWORD dwMessageId, PVOID pMsgBuffer ) { switch( dwMessageId ) { case DPL_MSGID_CONNECT: { PDPL_MESSAGE_CONNECT pConnectMsg; pConnectMsg = (PDPL_MESSAGE_CONNECT)pMsgBuffer; // 接続された。セッションを開始する。 break; } case DPL_MSGID_DISCONNECT: { PDPL_MESSAGE_DISCONNECT pDisconnectMsg; pDisconnectMsg = (PDPL_MESSAGE_DISCONNECT)pMsgBuffer; // 切断された。ロビー クライアントに関連付けられた // データを解放する。 break; } case DPL_MSGID_RECEIVE: { PDPL_MESSAGE_RECEIVE pReceiveMsg; pReceiveMsg = (PDPL_MESSAGE_RECEIVE)pMsgBuffer; // ロビー クライアントがデータを送信した。データを処理し、 // 適切に応答する。 break; } case DPL_MSGID_CONNECTION_SETTINGS: { PDPL_MESSAGE_CONNECTION_SETTINGS pConnectionStatusMsg; pConnectionStatusMsg = (PDPL_MESSAGE_CONNECTION_SETTINGS)pMsgBuffer; // ロビー クライアントが接続の設定を変更した。 break; } } return S_OK; }