IDirectPlay8Server::Host メソッド

IDirectPlay8Server::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_DPNSVRNOTAVAILABLE ポート 6073 は既に使われている。

注意

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

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

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

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