Platform SDK: DirectX

IDirectPlay4::SetSessionDesc

IDirectPlay4::SetSessionDesc メソッドは、カレント セッションのプロパティを変更する。セッション プロパティを変更できるのは、セッションホストだけである。ホスト以外からこのメソッドを呼び出そうとすると、DPERR_ACCESSDENIED が返される。

更新されたセッション記述が、セッション内のその他すべてのコンピュータに伝播される。各プレーヤーには、DPMSG_SETSESSIONDESC システム メッセージが送信される。

SetSessionDesc は、ロビー セッションでは使用できない。

HRESULT SetSessionDesc(
  LPDPSESSIONDESC2 lpSessDesc,
  DWORD dwFlags
);

パラメータ

lpSessDesc
新しい設定値が格納されている DPSESSIONDESC2 構造体へのポインタ。
dwFlags
現在、このメソッドでフラグは使用されていない。

戻り値

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

DPERR_ACCESSDENIED
DPERR_CONNECTIONLOST
DPERR_INVALIDPARAMS
DPERR_NOSESSIONS

このコンピュータにセッションを変更する権限がない場合は、DPERR_ACCESSDENIED を返す。セッション プロパティを変更できるのはホストだけである。アプリケーションが変更不可能なセッション記述のプロパティを変更しようとした場合、またはプロパティに無効な値を指定した場合は、DPERR_INVALIDPARAMS を返す。

注意

セッション記述を変更すると、DPMSG_SETSESSIONDESC システム メッセージがセッション内のその他すべてのコンピュータで生成される。

DPSESSIONDESC2 構造体の次のメンバとフラグは、IDirectPlay4::SetSessionDesc を使用して変更できる。

dwFlags
DPSESSION_JOINDISABLED

DPSESSION_NEWPLAYERSDISABLED

DPSESSION_NODATAMESSAGES

DPSESSION_PRIVATE

dwMaxPlayers
最大プレーヤー数に現在のプレーヤー数よりも少ない値を設定すると、DPERR_INVALIDPARAMS が返される。
lpszSessionName / lpszSessionNameA
lpszPassword / lpszPasswordA
dwUser1
dwUser2
dwUser3
dwUser4

DPSESSIONDESC2 構造体の次のメンバとフラグが変更されると、エラーが発生する (たとえば、DPSESSION_KEEPALIVE フラグが現在設定さている場合に、このビットを設定しようとしてもエラーは発生しないが、そのビットをクリアしようとするとエラーが発生し、IDirectPlay4::SetSessionDesc は失敗する)。

dwSize
dwFlags
DPSESSION_NOMESSAGEID

DPSESSION_KEEPALIVE

DPSESSIONDESC2 構造体の次のメンバは無視される (つまり、このメンバに何を指定しても、DirectPlay は必ず IDirectPlay4::Open が呼び出されたときに渡された値を使用する)。

guidInstance
guidApplication
dwCurrentPlayers
dwReserved1
dwReserved2

必要条件

  Windows NT/2000 : Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : dplay.h で宣言。
  インポート ライブラリ : dplayx.lib を使用。

参照

DPSESSIONDESC2IDirectPlay4::GetSessionDesc