Microsoft DirectX 8.0 (Visual Basic)

ピアツーピア セッションへの接続

セッション ホストでない限り、プレーヤーをセッションに接続する必要がある。これには、セッション ホストのアドレスが必要になる。アプリケーションがロビー クライアントから接続されている場合は、DirectPlay8LobbiedApplication.GetConnectionSettings を呼び出せば、ホストのアドレスを取得できる。ホストのアドレスは、利用可能なホストを列挙して取得することもできる。列挙から返される情報には、各ホストのアドレスと、関連付けられたセッションを記述する DPN_APPLICATION_DESC 構造体が含まれる。

セッションへの参加を要求するには、DirectPlay8Peer.SetPeerInfo を呼び出してプレーヤー名を設定してから、選択されたホストのアドレスを指定して DirectPlay8Peer.Connect を呼び出すことによりセッションに接続する。

プレーヤーがセッションへの参加を試みると、Microsoft® DirectPlay® からホストの DirectPlay8Event.IndicateConnect メソッドが呼び出される。プレーヤーの参加を許可する場合は、復帰前にメソッドの fRejectMsg パラメータを FALSE に設定する。要求を拒否する場合は、fRejectMsg を TRUE に設定する。どちらの場合も、プレーヤーの DirectPlay8Event.ConnectComplete メソッドが呼び出されて応答が渡される。ホストが接続を受け付けた場合は、DPNMSG_CONNECT_COMPLETE 型の hResultCode メンバが 0 に設定される。要求が拒否された場合、または何らかの理由で要求が失敗した場合には、hResultCode にエラー コードが設定される。

新しいプレーヤーが接続されると、DirectPlay は、ホストを含むセッション メンバぞれぞれについて DirectPlay8Event.CreatePlayer を呼び出して、新しいプレーヤーを公表する。lPlayerID パラメータには、プレーヤーへのメッセージ送信に使用するプレーヤー ID が格納されている。