Microsoft DirectX 8.0 (C++)

IDirectPlay8Peer::EnumServiceProviders

アプリケーションで使用できる登録済みサービス プロバイダをすべて列挙する。

HRESULT EnumServiceProviders(
const GUID *const pguidServiceProvider,
const GUID *const pguidApplication,
const DPN_SERVICE_PROVIDER_INFO *const pSPInfoBuffer,
DWORD *const pcbEnumData,
DWORD *const pcReturned
constDWORD dwFlags,
);

パラメータ

pguidServiceProvider
サービス プロバイダを指定する GUID 型の変数へのポインタ。このオプション パラメータは、指定したサービス プロバイダのサブデバイスを列挙させる。通常はこの値に NULL を設定して、使用できるすべてのサービス プロバイダを列挙する。
pguidApplication
アプリケーションを指定する GUID 型の変数へのポインタ。このパラメータにポインタを渡すと、そのアプリケーションで接続できるサービス プロバイダのみが列挙される。また、NULL を渡すと、システムに登録されているすべてのサービス プロバイダを列挙できる。
pSPInfoBuffer
サービス プロバイダ情報を保持する、DPN_SERVICE_PROVIDER_INFO 構造体の配列へのポインタ。
pcbEnumData
バッファが小さすぎる場合、pEnumData バッファのサイズが格納される DWORD へのポインタ。
pcReturned
pcbEnumData 配列に返される DPN_SERVICE_PROVIDER_INFO 構造体の数を指定する DWORD 型の変数へのポインタ。
dwFlags
次のフラグを指定できる。
DPNENUMSERVICEPROVIDERS_ALL
アプリケーションで使用できないプロバイダやデバイスがインストールされていないプロバイダを含め、システムに対して登録されているすべてのサービス プロバイダを列挙する。

戻り値

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

DPNERR_BUFFERTOOSMALL
DPNERR_INVALIDPARAM

注意

pguidServiceProvider パラメータに NULL を指定して最初にこのメソッドを呼び出し、システムで利用可能なベース サービス プロバイダを決定する。次に、pguidServiceProvider にサービス プロバイダ GUID へのポインタを渡すことで、サービス プロバイダ用の特定のデバイスを取得できる。これは、たとえば、Microsoft® DirectPlay® サービス プロバイダのモデム接続を使用する場合などに便利である。ダイヤルアウトにはさまざまなモデムを選択し、ホストには特定のモデムを選択できる。

pcbEnumData buffer バッファではサービス プロバイダ情報を保持する容量が不足する場合、メソッドは DPNERR_BUFFERTOOSMALL を返す。pcbEnumData パラメータには必要なバッファ サイズが含まれる。通常、一番よい方法は長さ 0 のバッファで一度メソッドを呼び出し、必要なサイズを判断することである。次に、バッファを適切なサイズにしてもう一度呼び出す。

通常の場合、このメソッドは、アプリケーションが使用できるサービス プロバイダのみを返す。たとえば、IPX ネットワーキング プロトコルがインストールされていない場合、DirectPlay は IPX サービス プロバイダを返さない。DirectPlay が、使用できないプロバイダを含め、すべてのサービス プロバイダを返すようにするには、dwFlags に DPNENUMSERVICEPROVIDERS_ALL フラグを設定する。

動作環境

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