Microsoft DirectX 8.0 (C++)

DPN_MSGID_TERMINATE_SESSION

セッションがホストによって終了されると、Microsoft® DirectPlay® により DPN_MSGID_TERMINATE_SESSION メッセージが生成される。

DPNMSG_TERMINATE_SESSION

DPNMSG_TERMINATE_SESSION 構造体には、DPN_MSGID_TERMINATE_SESSION システム メッセージに関する情報が保持される。

typedef struct {
    DWORD   dwSize;
    HRESULT hResultCode;
    PVOID   pvTerminateData;
    DWORD   dwTerminateDataSize;
} DPNMSG_TERMINATE_SESSION, *PDPNMSG_TERMINATE_SESSION;
dwSize
この構造体のサイズ。
hResultCode
セッションがどのように終了したかを指定する。セッションがピアツーピアで、ホストが IDirectPlay8Peer::TerminateSession を呼び出した場合、このメンバは DPNERR_HOSTTERMINATEDSESSION に設定される。ホストが Close を呼び出してセッションを終了した場合、またはホストが応答を停止した場合、 hResultCode DPNERR_CONNECTIONLOST に設定される。
pvTerminateData
終了データ。hResultCode が DPNERR_HOSTTERMINATEDSESSION に設定された場合、pvTerminateData は、ホストが IDirectPlay8Peer::TerminateSessionpvTerminateData パラメータによって渡したデータ ブロックへのポインタ。
dwTerminateDataSize
pvTerminateData によってポイントされたデータ ブロックのサイズ。pvTerminateData が NULL に設定されている場合、このメンバはゼロになる。

注意

ホストの移行が許可されるピアツーピア ゲームでは、現在のホストが Close を呼び出すか応答を停止した場合、セッションは終了しない。その代わりに、ホストが移行し、ホスト以外のすべてのプレーヤーは、ホストのプレーヤーに関する DPN_MSGID_DESTROY_PLAYER メッセージと新しいホストに関する DPN_MSGID_HOST_MIGRATE メッセージを受け取る。ホストの移行を行わないためには、ホストが IDirectPlay8Peer::TerminateSession を呼び出してセッションをシャットダウンしなければならない。ホストがこの方法でセッションを終了すると、すべてのプレーヤーが、hResultCode を DPNERR_HOSTTERMINATEDSESSION に設定した DPN_MSGID_TERMINATE_SESSION メッセージを受け取る。セッションは終了し、プレーヤー全員に対する DPN_MSGID_DESTROY_PLAYER メッセージが生成される。

ホストの移行を許可しないピアツーピア ゲームでは、ホストが IDirectPlay8Peer::Close を呼び出すか応答を停止した場合、セッションは終了する。その場合、hResultCode を DPNERR_CONNECTIONLOST に設定した DPN_MSGID_TERMINATE_SESSION がすべてのプレーヤーに送信される。セッションは終了し、プレーヤー全員に対する DPN_MSGID_DESTROY_PLAYER メッセージが生成される。

クライアント/サーバー ゲームでも、ホストが IDirectPlay8Server::Close を呼び出すか応答を停止した場合、セッションは終了する。その場合、hResultCode を DPNERR_CONNECTIONLOST に設定した DPN_MSGID_TERMINATE_SESSION が、接続しているすべてのクライアントに送信される。DPN_MSGID_DESTROY_PLAYER メッセージはクライアントには送信されない。サーバーが IDirectPlay8Server::Close を呼び出して接続を解除すると、サーバーは、サーバー自身を含むすべてのプレーヤーに関する DPN_MSGID_DESTROY_PLAYER メッセージを受け取る。それ以外の場合、サーバーはクライアントのプレーヤーに関する DPN_MSGID_DESTROY_PLAYER だけを受け取る。

  DPN_MSGID_TERMINATE_SESSION メッセージは通常 DPN_MSGID_DESTROY_PLAYER メッセージより先に到着する。ただし、到着の順序は保証されていない。

動作環境

  Windows NT/2000 : Windows 2000 以降に対する再配布可能ファイルとして提供。
  Windows 95/98 : Windows 95 以降に対する再配布可能ファイルとして提供。
  ヘッダー : Dplay8.h で宣言。