Microsoft DirectX 8.0 (Visual Basic) |
メッセージ ハンドラは、ロビー クライアント オブジェクトからは直接、アプリケーションからは間接的に、メッセージを受け取る DirectPlay8LobbyEvent オブジェクトである。このオブジェクトは、Microsoft® DirectPlay® から提供されないので、アプリケーションで実装する必要がある。
メッセージ ハンドラは、以下のメソッドをすべて実装する必要がある。
これらのメソッドの大半は、ゲームの状態が変化したとき、またはロビー対象アプリケーションが情報を要求したときに、DirectPlay が呼び出す。ただし、DirectPlay8LobbyEvent.Receive は例外である。このメソッドは、ロビー クライアントからゲーム アプリケーションにデータを直接渡すために呼び出される。
アプリケーションをセッションに接続するために、ロビー クライアントが DirectPlay8LobbyClient.ConnectApplication を呼び出すと、このメソッドが呼び出される。関連する DPL_MESSAGE_CONNECT 型には、以下を含む各種の情報が保持される。
DirectPlay は、関連付けられたロビー クライアントから、セッションの接続を修正するために DirectPlay8LobbyClient.SetConnectionSettings メソッドが呼び出されるたびに、このメソッドを呼び出す。関連付けられた DPL_MESSAGE_CONNECTION_SETTINGS 型には、更新済みの接続情報が格納される。
このメッセージは、ロビー クライアントが DirectPlay8LobbyClient.ReleaseApplication を呼び出してアプリケーションをセッションから切断するときに、送信される。アプリケーションでは、接続をそのリストから削除し、セッションに関連付けられたデータをすべて解放しなければならない。
このメッセージを使用すると、ロビー クライアントからアプリケーションにデータを渡すことができる。ロビー クライアントが DirectPlay8LobbyClient.Send を呼び出すと、DirectPlay が DirectPlay8LobbyEvent.Receive を呼び出してデータをアプリケーションに渡す。このデータの処理は、アプリケーションが行わなければならない。
DirectPlay は、ロビー可能アプリケーション メッセージ ハンドラのために、このメソッドを呼び出さない。このメソッドは実装の必要があるが、ただ 0 を返してもよい。