Microsoft DirectX 8.0 (Visual Basic) |
サーバーへの接続を確立する。一度接続が確立すると、オブジェクト上の通信チャネルが開いてアクティブになり、アプリケーションはメッセージの到着を待機する。接続が完了するまで、DirectPlay8Peer.SendTo メソッドを使用してメッセージを送信できない。
このメソッドを呼び出す前に、DirectPlay8Peer.EnumHosts を呼び出してアプリケーションの記述を取得する必要がある。EnumHosts メソッドは、ホストされているアプリケーションごとに DPN_APPLICATION_DESC 型を返す。型は、アプリケーションの GUID など、アプリケーションを記述する。
アプリケーションの GUID が必要ない場合でも、指定されれば Microsoft® DirectPlay® は確認を実行する。
ホストへの接続が要求された場合は、ホストのメッセージ ハンドラに DirectPlay8Event.IndicateConnect メソッドが呼び出される。ホストは、この接続を許可または拒否することができる。どちらの場合も、ホストがアクションを実行すると、クライアント メッセージ ハンドラの DirectPlay8Event.ConnectComplete メソッドが呼び出されて、応答を送信する。
Connect(AppDesc As DPN_APPLICATION_DESC, _ Address As DirectPlay8Address, _ DeviceInfo As DirectPlay8Address, _ lFlags As Long, _ UserData As Any, _ UserDataSize As Long) As Long
この処理に対する非同期ハンドルを返す。これは、要求が非同期で処理される場合に、要求を取り消すために DirectPlay8Peer.CancelAsyncOperation メソッドの lAsyncHandle パラメータで使用されるハンドルである。
失敗した場合は、Err.Number に次のいずれかの値が設定される。
DPNERR_NOCONNECTION |
DPNERR_INVALIDPASSWORD |
DPNERR_INVALIDFLAGS |
DPNERR_INVALIDINTERFACE |
DPNERR_INVALIDAPPLICATION |
DPNERR_NOTHOST |
DPNERR_SESSIONFULL |
DPNERR_HOSTREJECTEDCONNECTION |
DPNERR_INVALIDINSTANCE |
列挙は、接続中であれば複数同時に実行することができるが、1 つのオブジェクトで利用できるのは 1 つの接続だけである。1 つ以上のアプリケーションへの接続を確立するには、別のオブジェクトを作成しなければならない。つまり、1 つのオブジェクトで利用できるのは、1 つの実行アプリケーションだけである。ほかの接続を実行中に DirectPlay8Peer.Connect を呼び出すと、エラーが返される。