Platform SDK: DirectX

IDirectPlay4::SetGroupData

IDirectPlay4::SetGroupData メソッドは、アプリケーション固有のデータ ブロックをグループ ID に関連付ける。グループに関連付けられたリモート データを変更できるのは、それを作成したコンピュータのみである。

HRESULT SetGroupData(
  DPID idGroup,
  LPVOID lpData,
  DWORD dwDataSize,
  DWORD dwFlags
);

パラメータ

idGroup
データを設定するグループ ID。
lpData
設定するデータへのポインタ。既存のグループ データをクリアするには、NULL を設定する。
dwDataSize
データ バッファのサイズ。lpData が NULL であり、このパラメータが 0 でない場合、メソッドは DPERR_INVALIDPARAMS を返す。
dwFlags
グループ データの伝播方法を示すフラグ。このパラメータに 0 を設定した場合、リモート グループ データは保証なしメッセージ方式で設定および伝播される。
DPSET_GUARANTEED
保証付きメッセージ方式 (可能な場合) によりデータを伝播する。このフラグは、DPSET_REMOTE でのみ使用できる。
DPSET_LOCAL
データはローカルにしか使用されず、伝播されない。
DPSET_REMOTE
このデータは、すべてのアプリケーションにより使用されるので、セッション内のその他すべてのアプリケーションに伝播される。このフラグは、ローカル セッションにより所有されているグループでのみ使用できる。

戻り値

成功した場合は DP_OK を返す。失敗した場合は、次のエラー値のいずれかを返す。

DPERR_ACCESSDENIED
DPERR_CONNECTIONLOST
DPERR_INVALIDGROUP
DPERR_INVALIDOBJECT
DPERR_INVALIDPARAMS

注意

DirectPlay では、ローカルとリモートの両方のグループ データを保守できる。ローカル データは、ローカル コンピュータのアプリケーションでのみ使用できる。リモート データは、セッション内のその他すべてのアプリケーションに伝播される。セッション記述で DPSESSION_NODATAMESSAGES が設定されている場合を除き、すべてのプレーヤー (送信元のプレーヤーを含む) に変更を知らせる DPMSG_SETPLAYERORGROUPDATA システム メッセージが送信される。リソースへのポインタは、ローカル データに安全に保存できる。グループが壊れてもローカル データ ブロックは使用できる (DPMSG_DESTROYPLAYERORGROUP システム メッセージにおいて) ので、アプリケーションはそのリソースを解放できる。

このメソッドを使用すると、オーバヘッドが生じるので、リアルタイムの情報 (位置の更新など) を更新する場合は使用しないこと。IDirectPlay4::Send の方が、リアルタイムの情報を更新するには有効である。また、あまり頻繁に変更されず、また時間を重視しない (チーム カラーなど) 共有状態の情報については、IDirectPlay4::SetGroupData がより適している。

必要条件

  Windows NT/2000 : Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : dplay.h で宣言。
  インポート ライブラリ : dplayx.lib を使用。

参照

DPMSG_SETPLAYERORGROUPDATAIDirectPlay4::GetGroupDataIDirectPlay4::Send