Platform SDK: DirectX

IDirectPlay4::EnumPlayers

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

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

このメソッドは、ロビー セッション内では必ず DPERR_ACCESSDENIED を返す。

HRESULT EnumPlayers(
  LPGUID lpguidInstance,
  LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2,
  LPVOID lpContext,
  DWORD dwFlags
);

パラメータ

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

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

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

戻り値

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

DPERR_CONNECTIONLOST
DPERR_INVALIDPARAMS
DPERR_NOSESSIONS
DPERR_UNAVAILABLE

コールバックが無効な場合、guidInstance が無効な場合、または無効なフラグが指定された場合は、DPERR_INVALIDPARAMS を返す。開いているセッションがない場合は、DPERR_NOSESSIONS を返す。リモート セッションを列挙できなかった場合は、DPERR_UNAVAILABLE を返す。

注意

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

必要条件

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

参照

IDirectPlay4::CreatePlayerIDirectPlay4::DestroyPlayerIDirectPlay4::EnumSessions