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;
}