Platform SDK: DirectX

IDirectPlay4::EnumConnections

IDirectPlay4::EnumConnections メソッドは、アプリケーションで使用可能な登録済みサービス プロバイダとロビー プロバイダをすべて列挙する。ユーザーはこれらの中から、サービス プロバイダとロビー プロバイダを選択する。ユーザーが選択した接続は、IDirectPlay4::InitializeConnection メソッドに渡される。

HRESULT EnumConnections(
  LPCGUID lpguidApplication,
  LPDPENUMCONNECTIONSCALLBACK lpEnumCallback,
  LPVOID lpContext,
  DWORD dwFlags
);

パラメータ

lpguidApplication
アプリケーションのグローバル ユニーク識別子 (GUID) へのポインタ。アプリケーションで使用可能な登録済みサービス プロバイダとロビー プロバイダだけが返される。NULL ポインタを設定した場合、アプリケーション GUID に関係なく、すべての接続が列挙される。
lpEnumCallback
使用可能な接続ごとに呼び出される、ユーザー指定の EnumConnectionsCallback 関数へのポインタ。
lpContext
コールバック関数へ渡される、ユーザー定義のコンテキストへのポインタ。
dwFlags
列挙される接続のタイプを指定するフラグ。デフォルト (dwFlags = 0) では、DPCONNECTION_DIRECTPLAY と同じ結果となる。

次に、可能な値を示す。

DPCONNECTION_DIRECTPLAY
アプリケーション セッションで通信する DirectPlay サービス プロバイダのみを列挙する。
DPCONNECTION_DIRECTPLAYLOBBY
ロビー サーバーと通信する DirectPlay ロビー プロバイダのみを列挙する。

戻り値

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

DPERR_CONNECTIONLOST
DPERR_INVALIDFLAGS
DPERR_INVALIDPARAMS

注意

このメソッドは、DirectPlayEnumerate 関数の代わりとなる。DirectPlayEnumerate 関数は依然として機能するが、登録済みサービス プロバイダしか返さない。

サービス プロバイダとロビー プロバイダが返される順序は、EnumConnections を呼び出した順序と同じであるとは限らない。

列挙された接続のすべてを使用できるわけではない。たとえば、このメソッドはユーザーがモデムをインストールしていなくてもモデム サービス プロバイダを返す。アプリケーションでは、接続ごとに IDirectPlay4::InitializeConnection メソッドを呼び出し、エラー コードを調べてサービス プロバイダが使用可能であるかどうかを判断することができる。

IDirectPlay4A(ANSI) インタフェースでこのメソッドを呼び出すと、必ず適切にローカライズされた 1 バイト文字の文字列が返される。マルチ バイト文字の文字列は使用されないので、それをサポートしていないフォントを使用しても文字列を表示するときに問題が発生しない。IDirectPlay4(Unicode) インタフェースでこのメソッドを呼び出すと、ローカライズされたワイド文字の記述が返される。

サービス プロバイダの中には、それらをプライベートとして登録できるものもある。これらのサービス プロバイダは、このメソッドを使用しても列挙されない。プライベートのサービス プロバイダを使用するには、ロビーによりアプリケーションを起動するか、または DirectPlay アドレスを作成してそれを InitializeConnection に渡し、プライベートのサービス プロバイダをその GUID により明示的に参照する必要がある。

必要条件

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

参照

IDirectPlay4::InitializeConnectionEnumConnectionsCallback