Microsoft DirectX 8.0 (C++)

IDirectPlay8Server::GetClientInfo

指定されたクライアントに対して設定されているクライアント情報を取得する。

HRESULT GetClientInfo(
const DPNID dpnid,
DPN_PLAYER_INFO *const pdpnPlayerInfo,
DWORD *const pdwSize,
const DWORD dwFlags
);

パラメータ

dpnid
情報を取得するクライアントの識別子を指定する DPNID 型の変数。
pdpnPlayerInfo
クライアント情報を格納する DPN_PLAYER_INFO 構造体へのポインタ。pdwSize が NULL に設定されていない場合、pdpnPlayerInfo.dwSize に適切な値を設定しなければならない。
pdwSize
pdpnPlayerInfo パラメータに返されるクライアント データのサイズを保持する DWORD 型の変数へのポインタ。バッファが小さすぎる場合、このメソッドは DPNERR_BUFFERTOOSMALL を返し、このパラメータには要求されたバッファのサイズが入る。
dwFlags
クライアントに関して返される情報を記述するフラグ。現在、次のフラグの両方が返される。
DPNINFO_NAME
DPN_PLAYER_INFO 構造体はクライアントの名前セットを保持する。
DPNINFO_DATA
DPN_PLAYER_INFO 構造体はクライアントのデータ セットを保持する。

戻り値

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

DPNERR_BUFFERTOOSMALL
DPNERR_INVALIDPARAM
DPNERR_INVALIDPLAYER

注意

サーバーがアプリケーションから DPN_MSGID_CLIENT_INFO メッセージを受信した後、このメソッドを呼び出す。このメッセージは、クライアントが情報を更新したことを示す。

Microsoft® DirectPlay® は DPN_PLAYER_INFO 構造体と、連続するバッファにある、この構造体の pwszName メンバと pvData メンバに割り当てられたポインタを返す。この 2 つのポインタが設定される場合、構造体に加えて 2 つのポインタにも十分なメモリを割り当てておく必要がある。このメソッドを使用する最も確実な方法は、最初は pdwSize を 0 に設定してこのメソッドを呼び出すことである。メソッドが戻ると、pdwSize が正しい値をポイントしている。その値を使って構造体にメモリを割り当て、もう一度メソッドを呼び出して情報を取得する。

メソッドが戻ると、対応するポインタが NULL に設定されている場合でも、DPN_PLAYER_INFO 構造体の dwInfoFlags メンバには常に DPNINFO_DATA フラグと DPNINFO_NAME フラグが設定されている。これらのフラグは IDirectPlay8Client::SetClientInfo を呼び出すときに使用され、DirectPlay に変更された値を通知する。

IDirectPlay8Client::SetPeerInfo メソッドを使用すると処理に負担がかかるため、非静的情報は IDirectPlay8Client::Send メソッドを使用して転送すること。

プレーヤーは、IDirectPlay8Client::SetClientInfo を呼び出してその情報を設定する。

動作環境

  Windows NT/2000 : Windows 2000 以降に対する再配布可能ファイルとして提供。
  Windows 95/98 : Windows 95 以降に対する再配布可能ファイルとして提供。
  ヘッダー : Dplay8.h で宣言。