次の方法で共有


ロビー クライアントとの通信

ロビー クライアントとの通信

ロビー対象アプリケーションと関連するロビー クライアントのやり取りの大半は、間接的に行われる。アプリケーションがロビー クライアントに影響する何らかの処理を実行 (または逆にロビー クライアントがアプリケーションに影響する何らかの処理を実行) すると、Microsoft® DirectPlay® が適切なメッセージを送信する。たとえば、アプリケーションが接続の設定を変更すると、DirectPlay がロビー クライアントに通知し、新しい設定内容を提供する。ただし、ロビー クライアントに情報を直接提供するため、以下の 2 つのメソッドも用意されている。それらは、IDirectPlay8LobbiedApplication::UpdateStatus および IDirectPlay8LobbiedApplication::Send である。

ゲームの状態に以下の変化のいずれかが発生したときは、ロビー クライアントに通知する必要がある。

  • セッションが接続された。
  • セッションが接続できない。
  • セッションが切断された。
  • セッションが終了した。
  • セッション ホストが移行した。
  • このコンピュータがセッション ホストになった。

ロビー クライアントにこれらの状態変化のいずれかを通知するには、IDirectPlay8LobbiedApplication::UpdateStatus を呼び出し、dwStatus パラメータを適切な値に設定する。ロビー クライアントは、状態の変化を知らせる DPL_MSGID_SESSION_STATUS メッセージを受信する。

IDirectPlay8LobbiedApplication::Send メソッドにより、アプリケーションはロビー クライアントに直接メッセージを送信できる。DirectPlay はロビー クライアントにデータをそのまま渡す。そのデータの処理は、ロビー クライアントが行わなければならない。

ロビー クライアントも、アプリケーションにデータを直接送信することができる。データは、ロビー クライアントのメッセージ ハンドラに、DPL_MSGID_RECEIVE メッセージで渡される。DirectPlay はアプリケーションにデータをそのまま渡す。ロビー クライアントは、このデータを処理しなければならない。