次の方法で共有


IDirectPlay8Peer::Host メソッド

IDirectPlay8Peer::Host メソッド

ローカル コンピュータがホストする、新しいピアツーピア セッションを作成する。

構文

HRESULT Host(      
    const DPN_APPLICATION_DESC *const pdnAppDesc,
    IDirectPlay8Address **const prgpDeviceInfo,
    const DWORD cDeviceInfo,
    const DPN_SECURITY_DESC *const pdpSecurity,
    const DPN_SECURITY_CREDENTIALS *const pdpCredentials,
    VOID *const pvPlayerContext,
    const DWORD dwFlags
);

パラメータ

  • pdnAppDesc
    [in] アプリケーションを記述する DPN_APPLICATION_DESC 構造体へのポインタ。
  • prgpDeviceInfo
    [in] アプリケーションをホストするために使うデバイス アドレスを保持する IDirectPlay8Address オブジェクトの配列へのポインタ。これらのオブジェクトは、不要になったら解放しなければならない。
  • cDeviceInfo
    [in] prgpDeviceInfo が示す配列のデバイス アドレス オブジェクトの数を指定する DWORD 型の変数。
  • pdpSecurity
    [in] 予約済み。NULL でなければならない。
  • pdpCredentials
    [in] 予約済み。NULL でなければならない。
  • pvPlayerContext
    [in] ローカル プレーヤのコンテキスト値へのポインタ。この値は、ローカル コンピュータが DPN_MSGID_CREATE_PLAYER メッセージを処理するときに事前に設定される。このパラメータはオプションであり、NULL に設定できる。
  • dwFlags
    [in] 次のフラグを指定できる。
    • DPNHOST_OKTOQUERYFORADDRESSING
      このフラグを設定すると、Microsoft® DirectPlay® の標準のダイアログ ボックスが表示される。十分な情報がこのメソッドに渡されていない場合は、詳細についてユーザーに問い合わせる。

戻り値

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

DPNERR_DATATOOLARGE アプリケーション データが、サービス プロバイダの MTU (Maximum Transmission Unit) に対して大きすぎる。
DPNERR_INVALIDPARAM メソッドに渡された 1 つ以上のパラメータが無効である。
DPNERR_INVALIDDEVICEADDRESS ローカル コンピュータまたはアダプタのアドレスが無効である。
DPNERR_DPNSVRNOTAVAILABLE ポート 6073 は既に使われている。

注意

IDirectPlay8Peer::Host を呼び出すとき、DPN_APPLICATION_DESC 構造体の guidInstance メンバを設定しないこと。DirectPlay は渡される値を無視し、独自のグローバル一意識別子 (GUID) を決定するためである。guidInstance を取得するには、IDirectPlay8Peer::GetApplicationDesc を呼び出す方法しかない。

dwFlags に DPNHOST_OKTOQUERYFORADDRESSING フラグを設定した場合、サービス プロバイダは、ダイアログ ボックスを表示して、ユーザーにアドレス情報の入力を求めようとする。サービス プロバイダがダイアログ ボックスの表示を試みるときには、表示可能なウィンドウが存在している必要がある。ウィンドウがない場合、アプリケーションはロックする。

データ値の概要」では、各サービス プロバイダに必要なアドレス情報を指定している。

DPN_APPLICATION_DESC 構造体の pvApplicationReservedData メンバに割り当てるアプリケーション データの最大サイズは、サービス プロバイダの MTU (Maximum Transmission Unit) によって制限される。アプリケーション データが大きすぎる場合、メソッドは失敗し、DPNERR_DATATOOLARGE を返す。