次の方法で共有


IDirectPlay8LobbiedApplication::Initialize メソッド

IDirectPlay8LobbiedApplication::Initialize メソッド

ロビー クライアントの状態の変更に関する通知およびロビー クライアントからのメッセージを受け取るメッセージ ハンドラ関数を登録する。

構文

HRESULT Initialize(      
    const PVOID pvUserContext,
    const PFNDPNMESSAGEHANDLER pfn,
    DPNHANDLE *const pdpnhConnection,
    const DWORD dwFlags
);

パラメータ

  • pvUserContext
    [in] メッセージ ハンドラの呼び出しで指定される、ユーザー指定のコンテキスト値。ユーザー指定のコンテキスト値は、複数のインターフェイスから共通のメッセージ ハンドラに送信されたメッセージを区別するのに役立つ。
  • pfn
    [in] IDirectPlay8LobbyClient インターフェイスからすべてのメッセージ、および IDirectPlay8LobbiedApplication インターフェイスからセッション変更の通知を取得する PFNDPNMESSAGEHANDLER コールバック関数へのポインタ。
  • pdpnhConnection
    [out] アプリケーションがロビーで起動したかどうかを検出するために使う値。アプリケーションがロビーで起動している場合、このパラメータにはロビー クライアントへの接続ハンドルが設定される。プロセスがロビーで起動していない場合、このパラメータは NULL に設定される。
  • dwFlags
    [in] 次のフラグを指定できる。
    • DPLINITIALIZE_DISABLEPARAMVAL
      パラメータ妥当性の検証を無効にする。

戻り値

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

DPNERR_ALREADYINITIALIZED オブジェクトは既に初期化されている。
DPNERR_INVALIDFLAGS このメソッドに渡されたフラグは無効である。
DPNERR_INVALIDPARAM メソッドに渡された 1 つ以上のパラメータが無効である。
DPNERR_NOTALLOWED この機能は、このオブジェクトでは許可されていない。

注意

IDirectPlay8LobbiedApplication インターフェイスを取得するには、CoCreateInstance を使った後にこのメソッドを呼び出す。

ロビーで起動した場合、このメソッドはロビー クライアントとの接続を自動的に確立する。IDirectPlay8LobbiedApplication::Initialize を呼び出し、ロビーで起動しているのに、ロビー アプリケーション インターフェイスがロビー クライアント プロセスと通信できない場合、IDirectPlay8LobbiedApplication::Initialize は 4 秒後にタイムアウトする。この場合、IDirectPlay8LobbiedApplication::Initialize は DPNERR_TIMEDOUT を返すが、成功である。

  各プロセスには IDirectPlay8LobbyClient および IDirectPlay8LobbiedApplication の 1 つのインスタンスのみ実行できる。