Platform SDK: DirectX |
DirectPlay4.SetGroupData メソッドは、アプリケーションに固有のデータをグループ ID に関連付ける。グループに関連付けられているリモート データを変更できるのは、そのグループを作成したコンピュータだけである。
object.SetGroupData(GroupId As Long, _ data As String, _ flags As CONST_DPSETFLAGS)
失敗すればエラーが発生し、Err.Number に次のいずれかの値が設定される。
DPERR_ACCESSDENIED |
DPERR_CONNECTIONLOST |
DPERR_INVALIDGROUP |
DPERR_INVALIDOBJECT |
DPERR_INVALIDPARAMS |
DirectPlay は、ローカルとリモートの 2 種類のグループ データを維持できる。ローカル データは、ローカル コンピュータ上のアプリケーションだけで利用できる。リモート データは、セッション内のほかのすべてのアプリケーションに伝承される。セッション記述に DPSESSION_NODATAMESSAGES が設定されている場合を除き、変更を通知するために、すべてのプレーヤー (送信したプレーヤーを含む) に DPSYS_SETPLAYERORGROUPDATA システム メッセージが送信される。リソースへのポインタを、ローカル データに安全に保存しておくことができる。このローカル データ ブロックは、グループが破棄されるときに (DPSYS_DESTROYPLAYERORGROUP システム メッセージ内で) 利用できる。そのため、アプリケーションでは、これらのリソースを解放することができる。
このメソッドは、オーバーヘッドが生じるため、リアルタイム情報の更新 (位置の更新など) のためには使用すべきではない。そのような場合は、DirectPlay4.Send の方が格段に効率的である。めったに変更されず、時間が重要ではない共有状態情報 (チーム カラーなど) には、SetGroupData の方が適している。