Platform SDK: DirectX |
DirectPlay4.Receive メソッドは、メッセージ キューからメッセージを取り出す。
object.Receive(fromPlayerId As Long, _ toPlayerId As Long, _ flags As CONST_DPRECEIVEFLAGS) As DirectPlayMessage
IDPRECEIVE_TOPLAYER だけを指定した場合、Receive は、toPlayerId で指定されるプレーヤーに送信されたメッセージだけを返す。
DPRECEIVE_FROMPLAYER だけを指定した場合、Receive は、fromPlayerId によって指定されるプレーヤーから送信されたメッセージだけを返す。
DPRECEIVE_TOPLAYER と DPRECEIVE_FROMPLAYER のどちらも設定していない場合、Receive は利用可能な最初のメッセージを返す。
成功すれば、メッセージの中身を取得するために使用するメソッドを持つ DirectPlayMessage オブジェクトを返す。保留中のメッセージが存在しない場合は、Nothing を返す。
失敗すればエラーが発生し、Err.Number に次のいずれかの値が設定される。
DPERR_GENERIC |
DPERR_INVALIDOBJECT |
DPERR_INVALIDPARAMS |
DPERR_INVALIDPLAYER |
DPID_ALLPLAYERS と定義されるプレーヤー ID に送信されたメッセージ、またはグループ ID に送信されたメッセージも、送信側のプレーヤー ID から送信されたように認識される。アプリケーションは、ローカル プレーヤーに送信されたメッセージだけを受信する。プレーヤーは、fromPlayerId で示される値と、toPlayerId で示される値が等しいメッセージを受信することはできない。
DPSESSION_NOMESSAGEID がセッション記述で指定されている場合、fromPlayerId は常に 0xFFFFFFFF になり、toPlayerId の値は任意になる。
DirectPlay に付属しているすべてのサービス プロバイダは、破壊を防ぐために、データに対して整合性チェックを実行する。Receive を使用して取得したメッセージは、すべて破壊から保護される。