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 を返す。