次の方法で共有


DPN_MSGID_RECEIVE メッセージ

DPN_MSGID_RECEIVE メッセージ

メッセージが受信側によって処理されると、Microsoft® DirectPlay® は DPN_MSGID_RECEIVE メッセージを生成する。

DPNMSG_RECEIVE 構造体には、DPN_MSGID_RECEIVE システム メッセージに関する情報が含まれる。

構文

typedef struct _DPNMSG_RECEIVE {
    DWORD dwSize;
    DPNID dpnidSender;
    PVOID pvPlayerContext;
    PBYTE pReceiveData;
    DWORD dwReceiveDataSize;
    DPNHANDLE hBufferHandle;
    DWORD dwReceiveFlags;
}  DPNMSG_RECEIVE, *PDPNMSG_RECEIVE;

メンバ

  • dwSize
    この構造体のサイズ。
  • dpnidSender
    メッセージを送信したプレーヤの DPNID。
  • pvPlayerContext
    メッセージを送信したプレーヤのプレーヤ コンテキスト値。
  • pReceiveData
    メッセージ データ バッファへのポインタ。通常、このバッファは、DPN_MSGID_RECEIVE メッセージがコールバック メッセージ ハンドラによって処理されている間のみ有効である。
  • dwReceiveDataSize
    pReceiveData メンバのデータ サイズ (バイト単位)。
  • hBufferHandle
    pReceiveData メンバのバッファ ハンドル。DPNSUCCESS_PENDING を返した場合、この値を適切な ReturnBuffer メソッドに渡して、DirectPlay にバッファを解放するように通知する。
  • dwReceiveFlags
    次のフラグを指定して、メッセージの受信方法を記述できる。
    • DPNRECEIVE_GUARANTEED
      受信したメッセージは保証付きで送信された。
    • DPNRECEIVE_COALESCED
      受信したメッセージは結合して送信された。

注意

DPN_OK が含まれた、メッセージ コールバック関数からの戻り値。

メッセージの総処理時間が大きくならないように、このデータをコピーしてメッセージを処理する。別の方法として、コールバック メッセージ ハンドラから DPNSUCCESS_PENDING を返すこともできる。この場合は、バッファの所有権がアプリケーションに移る。DPNSUCCESS_PENDING を返す場合、バッファが不要になったら、IDirectPlay8Peer::ReturnBufferIDirectPlay8Client::ReturnBuffer、または IDirectPlay8Server::ReturnBuffer を呼び出す必要がある。hBufferHandle メンバで受け取った値をメソッドに渡して、バッファを識別する。ReturnBuffer の呼び出しに失敗した場合は、メモリ リークが発生する。

メッセージの情報

ヘッダー dplay8.h
最低限のオペレーティング システム Windows 98、Pocket PC 2002