次の方法で共有


IDirectPlay8LobbyClient::ConnectApplication メソッド

IDirectPlay8LobbyClient::ConnectApplication メソッド

ロビー対応アプリケーションを、DPL_CONNECT_INFO 構造体に指定されているセッションに接続する。アプリケーションが実行されていない場合、このメソッドを使ってアプリケーションを起動できる。

接続が正しく確立されると、ロビー アプリケーションはメッセージ ハンドラに DPL_MSGID_CONNECT システム メッセージを送信する。

構文

HRESULT ConnectApplication(      
    DPL_CONNECT_INFO *const pdplConnectionInfo,
    const PVOID pvUserApplicationContext,
    DPNHANDLE *const phApplication,
    const DWORD dwTimeOut,
    const DWORD dwFlags
);

パラメータ

  • pdplConnectionInfo
    [in] DPL_CONNECT_INFO 構造体へのポインタ。この構造体は接続先アプリケーションのグローバル一意識別子 (GUID) を含む、接続パラメータを記述する。
  • pvUserApplicationContext
    [in] ロビー クライアント用に定義されたコンテキスト値へのポインタ。この値は、ロビー クライアントのメッセージ ハンドラへの呼び出しで渡される。
  • phApplication
    [out] このメソッドが成功した場合に設定されるアプリケーション接続ハンドルを指定する DPNHANDLE へのポインタ。このハンドルは、アプリケーションとの通信に使われる。また、このハンドルは IDirectPlay8LobbyClient::ReleaseApplication メソッドの phApplication パラメータでも使われる。
  • dwTimeOut
    [in] 接続の処理を待つ時間 (ミリ秒単位) を指定する DWORD 型の変数。
  • dwFlags
    [in] 予約済み。0 でなければならない。

戻り値

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

DPNERR_CANTLAUNCHAPPLICATION ロビーは指定されたアプリケーションを起動できない。
DPNERR_INVALIDFLAGS このメソッドに渡されたフラグは無効である。
DPNERR_INVALIDPARAM メソッドに渡された 1 つ以上のパラメータが無効である。
DPNERR_TIMEDOUT 時間切れのため、処理が完了できなかった。
DPNERR_NOCONNECTION 通信リンクが確立されなかった。
DPNERR_DOESNOTEXIST 要求された要素はアドレスの一部ではない。

注意

このメソッドが DPNERR_NOCONNECTION を返すとき、通常は、pdplConnectionInfo パラメータに記述されているアプリケーションが IDirectPlay8LobbiedApplication::SetAppAvailable を呼び出していないことが原因である。