Microsoft DirectX 8.0 (C++)

DPN_MSGID_INDICATE_CONNECT

プレーヤーがピアツーピア セッションまたはクライアント/サーバー セッションに接続しようとすると、Microsoft® DirectPlay® により DPN_MSGID_INDICATE_CONNECT メッセージが生成される。

DPNMSG_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;
dwSize
この構造体のサイズ。
pvUserConnectData
接続元プレーヤーのデータ。
dwUserConnectDataSize
pvUserConnectData メンバに保持されたデータのサイズ (バイト単位)。
pvReplyData
接続応答データ。このデータは、コールバック メッセージ ハンドラとはかかわりなく有効でなければならない。Microsoft® DirectPlay® がこのバッファの処理を終えると、DPN_MSGID_RETURN_BUFFER メッセージが送られる。
dwReplyDataSize
pvReplyData メンバに保持されたデータのサイズ (バイト単位)。
pvReplyContext
pvReplyData のバッファ コンテキスト。この値は、関連する構造体の pvUserContext メンバとして、DPN_MSGID_RETURN_BUFFER メッセージと共にホストのメッセージ ハンドラに渡される。
pvPlayerContext
既定のプレーヤー コンテキスト。
pAddressPlayer
接続しているプレーヤーに対する IDirectPlay8Address インターフェイスへのポインタ。IDirectPlay8Address::AddRef を呼び出して、インターフェイスの参照カウントをインクリメントする必要がある。インターフェイスが不要になったときは、IDirectPlay8Address::Release を呼び出す。
pAddressDevice
接続の試みを受信するデバイスの IDirectPlay8Address インターフェイスへのポインタ。IDirectPlay8Address::AddRef を呼び出して、インターフェイスの参照カウントをインクリメントする必要がある。インターフェイスが不要になったときは、IDirectPlay8Address::Release を呼び出す。

注意

プレーヤーにセッションへの参加を許可するには、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 で宣言。