Platform SDK: DirectX |
IDirectPlay4::SetPlayerData メソッドは、アプリケーション固有のデータ ブロックをプレーヤー ID に関連付ける。
HRESULT SetPlayerData( DPID idPlayer, LPVOID lpData, DWORD dwDataSize, DWORD dwFlags );
成功した場合は DP_OK を返す。失敗した場合は、次のエラー値のいずれかを返す。
DPERR_ACCESSDENIED |
DPERR_CONNECTIONLOST |
DPERR_INVALIDFLAGS |
DPERR_INVALIDOBJECT |
DPERR_INVALIDPARAMS |
DPERR_INVALIDPLAYER |
SetPlayerData を使用すると、オーバヘッドが生じるので、リアルタイムの情報 (位置の更新など) を更新する場合は使用しないこと。このような処理には、Send の方が有効である。また、あまり頻繁に変更されず、時間を重視しない (プレーヤーの名前など) 共有状態の情報については、SetPlayerData の方が適している。
DirectPlay では、ローカルとリモートの両方のプレーヤー データを保守できる。ローカル データは、ローカル コンピュータのアプリケーションでのみ使用できる。リモート データは、セッション内のその他すべてのアプリケーションに伝播される。リモート プレーヤーのプレーヤー データを設定しようとすると、DPERR_ACCESSDENIED が返される。セッション記述で DPSESSION_NODATAMESSAGES が設定されている場合を除き、すべてのプレーヤー (送信元のプレーヤーを含む) に、変更を知らせる DPMSG_SETPLAYERORGROUPDATA システム メッセージが送信される。リソースへのポインタは、ローカル データに保存すれば安全である。プレーヤーが壊れてもローカル データ ブロックは使用できる (DPMSG_DESTROYPLAYERORGROUP システム メッセージにおいて) ので、アプリケーションはそのリソースを解放できる。システム メッセージのリストについては、「システム メッセージの使用」を参照すること。
Windows NT/2000 : Windows 2000 が必要。
Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
ヘッダー : dplay.h で宣言。
インポート ライブラリ : dplayx.lib を使用。
DPMSG_SETPLAYERORGROUPDATA、IDirectPlay4::GetPlayerData、IDirectPlay4::Send