Platform SDK: DirectX

IDirectPlay4::EnumGroups

IDirectPlay4::EnumGroups メソッドは、カレント セッションの最上位グループをすべて列挙する。最上位グループとは、IDirectPlay4::CreateGroup メソッドにより作成されたグループである。開いているセッションがない場合は、DPENUMGROUPS_session フラグとセッションの guidInstance を指定すると、リモート セッションのグループを列挙できる。パスワードで保護されたリモート セッションは列挙できない。

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

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

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

パラメータ

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

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

DPENUMGROUPS_ALL
このセッション内のすべてのグループを列挙する。
DPENUMGROUPS_HIDDEN
現在使用可能な隠しグループのみを列挙する。
DPENUMGROUPS_LOCAL
この DirectPlay オブジェクトによりローカルに作成されたグループを列挙する。
DPENUMGROUPS_REMOTE
リモートの DirectPlay オブジェクトにより作成されたグループを列挙する。
DPENUMGROUPS_SESSION
lpguidInstance パラメータにより指定されたセッションで列挙を実行する。このフラグは、現在アクティブなセッションがない場合にのみ使用できる。このフラグは、ロビー セッションでは使用できない。
DPENUMGROUPS_STAGINGAREA
ステージング領域であるグループを列挙する (ステージング領域は、新しいセッションを起動するためにプレーヤーを整列するときに使用する)。

戻り値

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

DPERR_CONNECTIONLOST
DPERR_INVALIDPARAMS
DPERR_NOSESSIONS
DPERR_UNAVAILABLE

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

注意

グループ内のサブグループを列挙するには、IDirectPlay4::EnumGroupsInGroup を使用すること。

必要条件

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

参照

EnumPlayersCallback2IDirectPlay4::CreateGroupIDirectPlay4::DestroyGroupIDirectPlay4::EnumSessions