次の方法で共有


IDirectPlay8Client::Initialize メソッド

IDirectPlay8Client::Initialize メソッド

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

構文

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

パラメータ

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

戻り値

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

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

注意

CoCreateInstance を使って IDirectPlay8Client インターフェイスを取得した後、まずこのメソッドを呼び出す。

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

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

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