Platform SDK: DirectX

DirectPlay4.Receive

DirectPlay4.Receive メソッドは、メッセージ キューからメッセージを取り出す。

object.Receive(fromPlayerId As Long, _
    toPlayerId As Long, _
    flags As CONST_DPRECEIVEFLAGS) As DirectPlayMessage  

パラメータ

object
DirectPlay4 オブジェクトを表すオブジェクト式。
fromPlayerId
このメソッドが戻ったときに、送信側のプレーヤーの ID が設定される変数。DPRECEIVE_FROMPLAYER フラグを指定した場合、このメソッドを呼び出す前に、プレーヤー ID を使用してこのパラメータを初期化する必要がある。
toPlayerId
このメソッドが戻ったときに、受信側のプレーヤーの ID が設定される変数。DPRECEIVE_TOPLAYER フラグを指定した場合、このメソッドを呼び出す前に、プレーヤー ID を使用してこのパラメータを初期化する必要がある。
flags
CONST_DPRECEIVEFLAGS 列挙型のフラグで、メッセージの取得方法を示す。以下の 1 つ以上の制御フラグを設定できる。デフォルト (flags = 0) では、利用可能な最初のメッセージが取得される。
DPRECEIVE_ALL
利用可能な最初のメッセージを返し、そのメッセージをメッセージ キューから削除する。これがデフォルトである。
DPRECEIVE_PEEK
ほかのフラグによって指定されたメッセージを返すが、そのメッセージをメッセージ キューから削除しない。
DPRECEIVE_TOPLAYER および DPRECEIVE_FROMPLAYER
DPRECEIVE_TOPLAYER と DPRECEIVE_FROMPLAYER の両方を指定した場合、Receive により、(1) toPlayerId によって指定されるプレーヤーに送信されたメッセージと、(2) fromPlayerId によって指定されるプレーヤーから送信されたメッセージのみが返される。両方の条件を満たしていなければならない。

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 を使用して取得したメッセージは、すべて破壊から保護される。

参照

DirectPlay4.Send