Microsoft DirectX 8.0 (C++) |
プレーヤーがピアツーピア セッションまたはクライアント/サーバー セッションに接続しようとすると、Microsoft® DirectPlay® により DPN_MSGID_INDICATE_CONNECT メッセージが生成される。
DPNMSG_INDICATE_CONNECT 構造体には、DPN_MSGID_INDICATE_CONNECT システム メッセージに関する情報が保持される。
ホスト アプリケーションはこの構造体を利用し、ユーザー データに基づいて接続の許可または拒否を行ったり、接続元アプリケーションに応答情報を提供できる。
typedef struct { DWORD dwSize; PVOID pvUserConnectData; DWORD dwUserConnectDataSize; PVOID pvReplyData; DWORD dwReplyDataSize; PVOID pvReplyContext; PVOID pvPlayerContext; IDirectPlay8Address* pAddressPlayer; IDirectPlay8Address* pAddressDevice; } DPNMSG_INDICATE_CONNECT, *PDPNMSG_INDICATE_CONNECT;
プレーヤーにセッションへの参加を許可するには、S_OK を返す。その他の戻り値は要求された接続を拒否する。接続が成功すると、接続を要求しているプレーヤーに送信されるhResultCode DPN_MSGID_CONNECT_COMPLETE メッセージに関連する構造体の hResultCode メンバに S_OK が設定される。接続が拒否されると、hResultCode には、このメッセージから返す値ではなく DPNERR_HOSTREJECTEDCONNECTION が 設定される。
DPN_MSGID_INDICATE_CONNECT 通知がホスト プレーヤーのメッセージ ハンドラに届いた場合、スレッドを返す前に pvPlayerContext を設定すると、プレーヤーのコンテキスト値は対応する DPN_MSGID_CREATE_PLAYER 通知に事前設定される。この機能を使用して、プレーヤー コンテキスト値を DPN_MSGID_CREATE_PLAYER に渡すことができる。
プレーヤー コンテキスト値を設定した場合、その値は、それ以降の DPN_MSGID_CREATE_PLAYER メッセージが処理されるまで固まらない。そのため、DPN_MSGID_CREATE_PLAYER を処理するときにこのプレーヤー コンテキスト値を修正できる。
サーバーが DPN_MSGID_INDICATE_CONNECT メッセージを処理した後、DPN_MSGID_CREATE_PLAYER を処理する前に、クライアントが接続を削除すると、サーバーは DPN_MSGID_INDICATED_CONNECT_ABORTED メッセージを受け取る。このメッセージを受け取った場合は、DPN_MSGID_INDICATE_CONNECT を処理する間に割り当てたメモリを解放すること。DPN_MSGID_CREATE_PLAYER が処理されたら、DPN_MSGID_DESTROY_PLAYER を処理するときに、このメモリを解放する必要がある。
pvUserConnectData のデータを指定すると、その後で、バッファを安全に解放できることを知らせる DPN_MSGID_RETURN_BUFFER メッセージを受け取る。
Windows NT/2000 : Windows 2000 以降に対する再配布可能ファイルとして提供。
Windows 95/98 : Windows 95 以降に対する再配布可能ファイルとして提供。
ヘッダー : Dplay8.h で宣言。