Platform SDK: DirectX

IDirectPlayLobby3::Connect

IDirectPlayLobby3::Connect メソッドは、DirectPlayLobby オブジェクトで現在格納されている DPLCONNECTION 構造体により指定されたセッションにアプリケーションを接続する。

メモ このメソッドは、IDirectPlay2 または IDirectPlay2A インターフェイスを返す。これが目的の DirectPlay COM インターフェイスでない場合 (たとえば、IDirectPlay4 または IDirectPlay4A)、アプリケーションは QueryInterface を使用してカレント インターフェイスを取得し、このインターフェイスを解放する必要がある。最新メソッドの IDirectPlayLobby3::ConnectEx を使用すると、アプリケーションで返される DirectPlay COM インターフェイスを指定できる。

Connect は、デフォルトでは、接続された後、または接続が時間切れになったときに戻る。DPCONNECT_RETURNSTATUS フラグを使用した場合、Connect はすぐに戻り、そのとき接続が処理中であることを示す DPERR_CONNECTING エラー コードが返される。アプリケーションは、DP_OK または障害コードが返されるまで、このメソッドを定期的に呼び出し続ける必要がある。アプリケーションは、IDirectPlayLobby3 インターフェイスを解放することで接続を取り消すことができる。

HRESULT Connect(
  DWORD dwFlags,
  LPDIRECTPLAY2 *lplpDP,
  IUnknown FAR *pUnk
);

パラメータ

dwFlags
接続方法を示すフラグ。デフォルト (dwFlags = 0) では、接続が確立されるか、または処理が時間切れになると、メソッドが返される。
DPCONNECT_RETURNSTATUS
メソッドはすぐに戻り、そのとき接続のステータスが返される。アプリケーションは、正常終了を示すコードまたは障害コードが返されるまで、Connect を呼び出し続ける必要がある。
lplpDP
IDirectPlay2(IDirectPlayLobby3 で呼び出された場合) または IDirectPlay2A(IDirectPlayLobby3A で呼び出された場合) のいずれかの有効なインターフェイスにより初期化されたポインタへのポインタ。ただし、その他のインターフェイスを希望する場合は、アプリケーションで QueryInterface を使用して新規インターフェイスへのポインタを取得し、それを解放すること。あるいは、ConnectEx メソッドを使用してもよい。
pUnk
含まれている IUnknown インターフェイスへのポインタ。このパラメータは、将来 COM 集合化機能と互換性をとるために用意されている。ただし、現在はこのパラメータに NULL 以外の値を指定すると IDirectPlayLobby3::Connect からエラーが返される。

戻り値

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

CLASS_E_NOAGGREGATION
DPERR_CONNECTING
DPERR_INVALIDFLAGS
DPERR_INVALIDINTERFACE
DPERR_INVALIDOBJECT
DPERR_INVALIDPARAMS
DPERR_NOTLOBBIED
DPERR_OUTOFMEMORY

接続処理が実行されている間は DPERR_CONNECTING を返す。最新のステータスを取得するには、メソッドを再度呼び出す。

注意

接続のタイムアウトの上限は 1 分である。

このメソッドが正常に終了した後は、アプリケーションで IDirectPlay4::InitializeConnectionIDirectPlay4::EnumSessionsIDirectPlay4::Open を呼び出す処理を省略できる。アプリケーションはユーザーに名前を問い合わせるのではなく、DPLCONNECTION 構造体のプレーヤー名情報を使用してプレーヤーを作成する。

アプリケーションは、このメソッドを呼び出す前に、IDirectPlayLobby3::GetConnectionSettings メソッドを使用してアプリケーションを起動するときに使用された接続設定を調べることができる。続いて、IDirectPlayLobby3::SetConnectionSettings メソッドによりそれらの設定値を変更し、設定できる。ただし、適切なセッション プロパティが設定されていることを確認するために、DPSESSIONDESC2 構造体、特に dwFlagsdwMaxPlayersdwUser メンバに注意する必要がある。

必要条件

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

参照

IDirectPlayLobby3::ConnectEx