Platform SDK: DirectX

DirectPlay4.SetPlayerData

DirectPlay4.SetPlayerData メソッドは、アプリケーションに固有のデータ ブロックを、プレーヤー ID に関連付ける。

object.SetPlayerData(playerId As Long, _
    data As String, _
    flags As CONST_DPSETFLAGS) 

パラメータ

object
DirectPlay4 オブジェクトを表すオブジェクト式。
playerId
データを設定するプレーヤーの ID。
data
設定するデータ。既存のプレーヤー データを消去する場合は、"" を設定する。
flags
データ伝承のオプションを設定する、CONST_DPSETFLAGS 列挙型のフラグ。このパラメータに 0 (DPGET_REMOTE) を設定すると、保証なしのメッセージングを使用して、リモート プレーヤーのデータが設定および伝承される。

エラー コード

失敗すればエラーが発生し、Err.Number に次のいずれかの値が設定される。

DPERR_ACCESSDENIED
DPERR_CONNECTIONLOST
DPERR_INVALIDFLAGS
DPERR_INVALIDOBJECT
DPERR_INVALIDPARAMS
DPERR_INVALIDPLAYER

注意

このメソッドは、オーバーヘッドが生じるため、リアルタイム情報の更新 (位置の更新など) のためには使用すべきではない。そのような場合は、DirectPlay4.Send の方が格段に効率的である。めったに変更されず、時間が重要ではない共有状態情報 (プレーヤーの名前など) には、SetPlayerData の方が適している。

DirectPlay は、ローカルとリモートの 2 種類のグループ データを維持できる。ローカル データは、ローカル コンピュータ上のアプリケーションだけで利用できる。リモート データは、セッション内のほかのすべてのアプリケーションに伝承される。リモート プレーヤーに対してプレーヤー データを設定しようとすると、DPERR_ACCESSDENIED が返される。セッション記述に DPSESSION_NODATAMESSAGES が設定されている場合を除き、変更を通知するために、すべてのプレーヤー (送信したプレーヤーを含む) に DPSYS_SETPLAYERORGROUPDATA システム メッセージが送信される。リソースへのポインタを、ローカル データに安全に保存しておくことができる。このローカル データ ブロックは、グループが破棄されるときに (DPSYS_DESTROYPLAYERORGROUP システム メッセージ内で) 利用できる。そのため、アプリケーションでは、これらのリソースを解放することができる。

参照

DirectPlay4.GetPlayerData