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::ReturnBuffer、IDirectPlay8Client::ReturnBuffer、または IDirectPlay8Server::ReturnBuffer を呼び出す必要がある。hBufferHandle メンバで受け取った値をメソッドに渡して、バッファを識別する。ReturnBuffer の呼び出しに失敗した場合は、メモリ リークが発生する。
メッセージの情報
ヘッダー | dplay8.h |
最低限のオペレーティング システム | Windows 98、Pocket PC 2002 |