次の方法で共有


IDirectPlay8Peer::Initialize メソッド

IDirectPlay8Peer::Initialize メソッド

IDirectPlay8Peer インターフェイスおよびリモート ピアからのメッセージをすべて受信する、ピアのコード内のエントリ ポイントを登録する。このメソッドを呼び出してから、このインターフェイスのその他のメソッドを呼び出す必要がある。

構文

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

パラメータ

  • pvUserContext
    [in] メッセージ ハンドラの呼び出しで指定される、ユーザー指定のコンテキスト値。ユーザー指定のコンテキスト値を使うと、複数のインターフェイスから共通のメッセージ ハンドラに送信されたメッセージを区別できる。
  • pfn
    [in] PFNDPNMESSAGEHANDLER コールバック関数へのポインタ。リモート ピアからのすべてのメッセージおよび IDirectPlay8Peer インターフェイスからのセッション変更の通知を受け取るとき、この関数が使われる。
  • dwFlags
    [in] 次のフラグを指定できる。
    • DPNINITIALIZE_DISABLEPARAMVAL
      このフラグを渡すと、現在のオブジェクトに対するパラメータ妥当性の検証が無効になる。
    • DPNINITIALIZE_HINT_LANSESSION
      ローカル エリア ネットワーク (LAN) で実行されているゲーム用にさらに大きい送信ウィンドウを開く。
    • DPNINITIALIZE_DISABLELINKTUNING
      調査対象のネットワーク条件に対する送信速度を MicrosoftR DirectPlay® が調整できないようにする。最初に可能になったときに、メッセージがネットワークにプッシュされる。

戻り値

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

DPNERR_INVALIDFLAGS このメソッドに渡されたフラグは無効である。
DPNERR_INVALIDPARAM メソッドに渡された 1 つ以上の引数が無効である。

注意

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

すべてのプレーヤが同じ LAN 上にあるセッションには DPNINITIALIZE_HINT_LANSESSION フラグを指定する。

ネットワーク条件によって送信速度を変えるのではなく、固定の速度で送信する場合、アプリケーションは DPNINITIALIZE_DISABLELINKTUNING フラグを指定できる。このフラグを指定すると、DirectPlay は、常に、すべてのアプリケーション データを転送するための容量がネットワークにあると見なし、ネットワーク帯域幅に応じた送信速度の調整を行わない。このフラグを指定して、ネットワーク容量を超える速度で送信すると、遅延やパケット ドロップ レートの増大などの予期しないネットワーク動作が発生する。送信キューを監視し、利用可能な帯域幅を有効利用できるように動的に送信速度を調整するアプリケーションでは、このフラグを指定してはならない。

DPNINITIALIZE_DISABLELINKTUNING フラグが指定されている場合、メッセージは常に、キューに入れられることなくネットワークに直接送信されるので、メッセージの優先順位付け、結合、タイムアウトなどの DirectPlay の機能は有効ではない。