Platform SDK: DirectX |
IDirectPlay4::Receive メソッドは、メッセージ キューからメッセージを取得する。
HRESULT Receive( LPDPID lpidFrom, LPDPID lpidTo, DWORD dwFlags, LPVOID lpData, LPDWORD lpdwDataSize );
DPRECEIVE_TOPLAYER lpidTo により指定されたプレーヤーに送信されたメッセージのみを返す。
DPRECEIVE_FROMPLAYER のみを指定した場合、Receive は lpidFrom により指定されたプレーヤーから送信されたメッセージのみを返す。
DPRECEIVE_TOPLAYER も DPRECEIVE_FROMPLAYER も設定しない場合、Receive は最初に使用可能なメッセージを返す。
成功した場合は DP_OK を返す。失敗した場合は、次のエラー値のいずれかを返す。
DPERR_BUFFERTOOSMALL |
DPERR_GENERIC |
DPERR_INVALIDOBJECT |
DPERR_INVALIDPARAMS |
DPERR_INVALIDPLAYER |
DPERR_NOMESSAGES |
DPID_SYSMSG として定義されたプレーヤー ID から受信したメッセージは、セッションでアプリケーションに変更を通知するときに使用するシステム メッセージである。これらの場合、システム メッセージの lpData を DPMSG_GENERIC に設定し、dwType メンバを調べて何に固有のシステム メッセージかを調べる。
DPID_ALLPLAYERS として定義されたプレーヤー ID、またはグループ ID に送信されたメッセージは、送信元のプレーヤー ID から取得したかのように表示される。アプリケーションは、ローカル プレーヤーに送信されたメッセージのみを受信する。プレーヤーは、lpidFrom と lpidTo がポイントしている値が同じであるメッセージは受信できない。
セッション記述で DPSESSION_NOMESSAGEID を指定した場合、lpidFrom は必ず 0xFFFFFFFF となり、また lpidTo 値は任意となる。
DirectPlay に搭載されているサービス プロバイダはすべて、データを破損から守るために整合性チェックを行なう。Receive を使用して取得したメッセージは、破損していないと保証されている。
Windows NT/2000 : Windows 2000 が必要。
Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
ヘッダー : dplay.h で宣言。
インポート ライブラリ : dplayx.lib を使用。