Platform SDK: DirectX

IDirectPlay4::EnumGroupPlayers

IDirectPlay4::EnumGroupPlayers メソッドは、現在開いているセッションの特定のグループに属しているプレーヤーを列挙する。開いているセッションがない場合は、DPENUMPLAYERS_SESSION フラグとセッションの guidInstance を指定すると、リモート セッションのプレーヤーを列挙できる。パスワードで保護されたリモート セッションは列挙できない。

アプリケーションで実装するコールバック関数へのポインタは必ず指定する。DirectPlay は、グループの中で dwFlags で指定された条件に一致するプレーヤーごとにそのコールバック関数を呼び出す。

接続していないロビー セッションで EnumGroupPlayers を使用することはできない。

HRESULT EnumGroupPlayers(
  DPID idGroup,
  LPGUID lpguidInstance,
  LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2,
  LPVOID lpContext,
  DWORD dwFlags
);

パラメータ

idGroup
列挙するプレーヤーのグループの ID。
lpguidInstance
列挙するセッションを識別するためのグローバル ユニーク識別子 (GUID) へのポインタ。このパラメータは、DPENUMPLAYERS_SESSION フラグが指定されていない場合は無視される。GUID は、IDirectPlay4::EnumSessions により列挙されるセッションのいずれかでなければならない。
lpEnumPlayersCallback2
グループ内で dwFlags で指定された条件に一致するすべてのプレーヤーに対して呼び出す EnumPlayersCallback2 関数へのポインタ。
lpContext
各列挙コールバック関数に渡される、アプリケーション定義のコンテキストへのポインタ。
dwFlags
列挙方法を指定するフラグ。デフォルト (dwFlags = 0) では、現在アクティブなセッションのグループのプレーヤーが列挙される。指定したいフラグに対して論理演算子の OR を実行する。指定したフラグの条件をすべて満たすプレーヤーのみが列挙される。たとえば、(DPENUMPLAYERS_LOCAL | DPENUMPLAYERS_SPECTATOR) と指定すると、グループの中でローカルで、なおかつ観客 プレーヤーであるプレーヤーのみが列挙される。(DPENUMPLAYERS_LOCAL | DPENUMPLAYERS_REMOTE) と指定すると、プレーヤーが同時にローカルかつリモートになることはあり得ないので、プレーヤーはまったく列挙されない。

次の値のいずれかまたはいくつかを指定できる。

DPENUMPLAYERS_LOCAL
この DirectPlay オブジェクトによりローカルに作成されたプレーヤーを列挙する。
DPENUMPLAYERS_OWNER
このグループの所有者であるプレーヤーのみを列挙する。
DPENUMPLAYERS_REMOTE
リモートの DirectPlay オブジェクトにより作成されたプレーヤーを列挙する。
DPENUMPLAYERS_SERVERPLAYER
サーバー プレーヤーを列挙する。
DPENUMPLAYERS_SESSION
lpguidInstance により指定されたセッションのプレーヤーを列挙する。このフラグは、現在開いているセッションがない場合にのみ使用できる。このフラグは、ロビー セッションでは使用できない。
DPENUMPLAYERS_SPECTATOR
観客 プレーヤーであるプレーヤーを列挙する。

戻り値

処理が成功した場合は DP_OK を返す。失敗した場合は、次のエラー メッセージのいずれかを返す。

DPERR_ACCESSDENIED
DPERR_CONNECTIONLOST
DPERR_INVALIDPARAMS
DPERR_INVALIDGROUP
DPERR_NOSESSIONS
DPERR_UNAVAILABLE

セッションがユーザーにより接続されていないロビー セッションである場合は、DPERR_ACCESSDENIED を返す。コールバックが無効な場合、guidInstance が無効な場合、または無効なフラグが指定された場合は、DPERR_INVALIDPARAMS を返す。アクティブなセッションがない場合は、DPERR_NOSESSIONS を返す。セッションを列挙できなかった場合は、DPERR_UNAVAILABLE を返す。

注意

デフォルトでは、このメソッドはカレント セッションのすべてのプレーヤーを列挙する。DPENUMPLAYERS_SESSION フラグは、セッション インスタンスの GUID と共に使用して、セッションのホストにその列挙用リストを提供するように要求できる。このメソッドで DPENUMPLAYERS_SESSION フラグを使用するときは、IDirectPlay4::EnumSessions メソッドが呼び出された後で、また IDirectPlay4::Close メソッドや IDirectPlay4::Open メソッドを呼び出す前に行う必要がある。

グループの所有者であるプレーヤーを示すために、コールバック関数で DPENUMPLAYERS_OWNER フラグが返される。

必要条件

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

参照

IDirectPlay4::CreatePlayerIDirectPlay4::DestroyPlayerIDirectPlay4::AddPlayerToGroupIDirectPlay4::DeletePlayerFromGroup