DPSESSIONDESC2
DPSESSIONDESC2 構造体は、セッションの能力の記述を保持する。
ただし、セッション記述フラグの一部は読み取り専用であり、変更できない。また、残りのフラグはホストしか変更できないので注意すること。dwFlags メンバの説明を参照すること。
typedef struct {
DWORD dwSize;
DWORD dwFlags;
GUID guidInstance;
GUID guidApplication;
DWORD dwMaxPlayers;
DWORD dwCurrentPlayers;
union {
LPWSTR lpszSessionName;
LPSTR lpszSessionNameA;
};
union {
LPWSTR lpszPassword;
LPSTR lpszPasswordA;
};
DWORD dwReserved1;
DWORD dwReserved2;
DWORD dwUser1;
DWORD dwUser2;
DWORD dwUser3;
DWORD dwUser4;
} DPSESSIONDESC2, FAR *LPDPSESSIONDESC2;
メンバ
- dwSize
- DPSESSIONDESC2 構造体のサイズ。アプリケーションは、この構造体を使用する前に、まずこのメンバを設定する必要がある。
- dwFlags
- DPSESSION_CLIENTSERVER、DPSESSION_DIRECTPLAYPROTOCOL、DPSESSION_KEEPALIVE、DPSESSION_MIGRATEHOST、DPSESSION_MULTICASTSERVER、DPSESSION_NOMESSAGEID、DPSESSION_OPTIMIZELATENCY、および DPSESSION_SECURESERVER のフラグの組み合わせ。セッションが起動されている場合、これらのフラグは変更できない。その他のフラグの DPSESSION_JOINDISABLED、DPSESSION_NEWPLAYERSDISABLED、DPSESSION_NODATAMESSAGES、DPSESSION_NOPRESERVEORDER、DPSESSION_PASSWORDREQUIRED、および DPSESSION_PRIVATE は、IDirectPlay4::SetSessionDesc によりセッションが起動された後でも変更できるが、変更できるのはホストだけである。
- DPSESSION_CLIENTSERVER
- これが、アプリケーション サーバー プロセスがホストのクライアント/サーバー セッションであると指定する。このフラグは、セッションが作成されたときに指定する必要がある。このセッションに参加したクライアントは、そのサーバー プレーヤーとローカル プレーヤーを列挙することしかできない。セッションのホストでは、すべてのプレーヤーが列挙される。このフラグが設定されていない場合、セッションはピアツーピア セッションである。このフラグが設定されている場合、サーバー プレーヤーを作成できるのはホストだけである。このフラグは、DPSESSION_MIGRATEHOST では使用できない。
- DPSESSION_DIRECTPLAYPROTOCOL
- このセッションではサービス プロバイダにより実装されるプロトコルではなく、DirectPlay の保証付きプロトコルを使用するように指定する。メッセージ スロットリングによりパフォーマンスを向上させたい場合、または IDirectPlay4::SendEx のすべての機能を使用できるようにしたい場合に、このフラグを使用する。このフラグを設定すると、信頼性の低いプロバイダでの保証付き送信も可能になる。また、このフラグにより、TCP/IP 上で DirectPlay の信頼性の高いコードを使用することが可能になる。これにより、一般にスループットと配信の両方の面でパフォーマンスが向上する。
- DPSESSION_JOINDISABLED
- 新しいアプリケーションがこのセッションに参加できないように指定する。IDirectPlay4::Open メソッドで DPOPEN_JOIN フラグを設定して呼び出したり、またこのセッションのインスタンスのグローバル ユニーク識別子 (GUID) により、エラーが発生する。このフラグが指定されていない場合、新しいリモート アプリケーションはセッション プレーヤーの制限に達するまでセッションに参加できる。
- DPSESSION_KEEPALIVE
- リモート プレーヤーがゲームを異常に退出すると、このセッションがそれを自動的に検出するように指定する。そのプレーヤーは、セッションから削除される。一時的なネットワークの容量不足によりプレーヤーを喪失した場合、そのプレーヤーには戻ったときに、セッションから退出させられたことが DPMSG_SESSIONLOST システム メッセージにより知らされる。このフラグは、セッションが作成されたときに指定する必要がある。このフラグが指定されていない場合、プレーヤーが異常終了すると DirectPlay によりそのセッションが自動的に維持されない。
- DPSESSION_MIGRATEHOST
- カレント ホストが存在する場合にセッション内の別のコンピュータがホストになるように指定する。新しいホスト コンピュータのプレーヤーは、DPMSG_HOST システム メッセージを受け取る。このフラグは、セッションが作成されたときに指定する必要がある。このフラグが設定されていない場合、ホストは移行せず、新しいコンピュータはセッションに参加できない。また、カレント ホストが退出すると新しいプレーヤーを作成できない。DPSESSION_MIGRATEHOST フラグは、DPSESSION_CLIENTSERVER フラグ、DPSESSION_MULTICASTSERVER フラグ、または DPSESSION_SECURESERVER フラグと一緒に使用できないので注意すること。
- DPSESSION_MULTICASTSERVER
- ピアツーピア セッションでブロードキャスト メッセージやグループ メッセージが、マルチキャスト サーバーのように機能するホストからルーティングされるように指定する。このフラグは、セッションが作成されたときに指定する必要がある。このフラグは、ホストがネットワークへ高帯域幅で接続されている場合にのみ有用である。このフラグが指定されていない場合、ブロードキャスト メッセージやグループ メッセージはピア間で直接送信される。このフラグは、DPSESSION_MIGRATEHOST で使用できない。
- DPSESSION_NEWPLAYERSDISABLED
- 新しいプレーヤーをセッション内で作成できないように指定する。セッション内のアプリケーションが IDirectPlay4::CreatePlayer メソッドを呼び出すと、エラーが発生する。また、新しいアプリケーションはセッションに参加できない。このフラグが指定されていない場合、プレーヤーは、セッション プレーヤーの制限に達するまで作成できる。
- DPSESSION_NODATAMESSAGES
- IDirectPlay4::SetPlayerData、IDirectPlay4::SetGroupData、IDirectPlay4::SetPlayerName、IDirectPlay4::SetGroupName、または IDirectPlay4::SetSessionDesc メソッドにより、リモート プレーヤー データ、グループ データ、またはセッション データを変更したときに、セッションでシステム メッセージを送信しないように指定する。フラグが指定されていない場合、データが変更されたことを示すメッセージが生成される。
ただし、このフラグを設定すると DPMSG_SETSESSIONDESC メッセージも抑制される。
- DPSESSION_NOMESSAGEID
- セッションで、メッセージの送信元や送信先のプレーヤーを示すメッセージをデータに添付しないように指定する。このフラグを設定すると、この情報が関係ない場合、メッセージのオーバヘッドが抑えられる (詳細については、IDirectPlay4::Receive メソッドを参照すること)。このフラグが指定されていない場合、メッセージ ID が追加される。このフラグは、セッションが作成されたときに指定する必要がある。
- DPSESSION_NOPRESERVEORDER
- セッションで保証付きメッセージの受信順序を保持しないように指定する。デフォルトでは、保証付きメッセージの受信順序が保持される。この順序が必要ない場合、このフラグを使用すると、配信時の遅延をなくすことができる。
- DPSESSION_OPTIMIZELATENCY
- サービス プロバイダに遅延時間について最適化を行うように要求する (TCP/IP でナグリング機能をオフにする)。デフォルトでは、帯域幅について最適化が行われる。
- DPSESSION_PASSWORDREQUIRED
- このセッションがパスワードにより保護されるように指定する。セッションに参加したいアプリケーションは、IDirectPlay4::Open 呼び出しでパスワードを指定する必要がある。これは、読み取り専用フラグである。セッションのホストで NULL 以外のパスワードが指定されると、これは DirectPlay により自動的に設定される。
- DPSESSION_PRIVATE
- これがプライベート セッションであると指定する。これは、要求に NULL 以外の一致するパスワードが含まれていない限り、列挙要求に応答できない。このフラグが指定されていない場合、セッションは列挙要求に応答する。
- DPSESSION_SECURESERVER
- セッションが、開く前に認証証明書を要求する保証サーバーをホストとするように指定する。ホストは、セッションが作成されるときにこのフラグを指定する必要がある。IDirectPlay4::SetSessionDesc を使用しても後で変更することはできない。このフラグは、DPSESSION_MIGRATEHOST フラグでは使用でない。
- guidInstance
- セッション インスタンスの GUID。
- guidApplication
- セッション インスタンスで実行されているアプリケーションの GUID。これは、DirectPlay が同じアプリケーションを実行しているその他のコンピュータにのみ接続されるように、アプリケーションを一意に識別する。このメンバに GUID_NULL を設定すれば、任意のアプリケーションのセッションを列挙できる。
- dwMaxPlayers
- このセッションで許可されているプレーヤーの最大数。この値が 0 のときは、最大数が指定されていないことを意味する。
- dwCurrentPlayers
- セッション内の現在のプレーヤー数。
- lpszSessionName
- セッションの名前が格納されている Unicode 文字列へのポインタ。Unicode DirectPlay インターフェイス (IDirectPlay4 インターフェイス) が使用されている場合にのみ使用する。
- lpszSessionNameA
- セッションの名前が格納されている ANSI 文字列へのポインタ。ANSI DirectPlay インターフェイス (IDirectPlay4A) が使用されている場合にのみ使用する。
- lpszPassword
- 参加するためにセッションに参加するときに使用されるパスワードが格納されている Unicode 文字列へのポインタ。Unicode DirectPlay インターフェイス (IDirectPlay4 インターフェイス) が使用されている場合にのみ使用する。
- lpszPasswordA
- セッションに参加するときに使用されるパスワードが格納されている ANSI 文字列へのポインタ。ANSI DirectPlay インターフェイス (IDirectPlay4A) が使用されている場合にのみ使用する。
- dwReserved1 および dwReserved2
- 0 でなければならない。
- dwUser1、dwUser2、dwUser3、および dwUser4
- セッションのアプリケーション固有のデータ。
Windows NT/2000 : Windows 2000 が必要。
Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
ヘッダー : dplay.h で宣言。
参照
IDirectPlay4::EnumSessions、IDirectPlay4::GetSessionDesc、IDirectPlay4::Open、IDirectPlay4::SecureOpen、IDirectPlay4::SetSessionDesc、IDirectPlay4::CreatePlayer