DPCAPS
DPCAPS 構造体は、IDirectPlay4::GetCaps メソッドや IDirectPlay4::GetPlayerCaps メソッドを呼び出した後で、DirectPlay オブジェクトの能力を保持する。これらの能力は、要求された能力が保証付きであるか、保証なしであるかにより異なる。この構造体は、読み取り専用である。IDirectPlay4::SendEx メソッドでサポートされている部分を示す能力 (dwFlags の DPCAPS_SENDPRIORITYSUPPORTED フラグと DPCAPS_SENDTIMEOUTSUPPORTED フラグなど) は、セッションが開かれるまで使用できない。セッションのホストであるアプリケーションが DPSESSIONDESC2 構造体の DPSESSION_DIRECTPLAYPROTOCOL フラグを指定している場合、すべての SendEx オプションがサポートされる。
typedef struct {
DWORD dwSize;
DWORD dwFlags;
DWORD dwMaxBufferSize;
DWORD dwMaxQueueSize;
DWORD dwMaxPlayers;
DWORD dwHundredBaud;
DWORD dwLatency;
DWORD dwMaxLocalPlayers;
DWORD dwHeaderLength;
DWORD dwTimeout;
} DPCAPS, FAR *LPDPCAPS;
メンバ
- dwSize
- DPCAPS 構造体のメンバ。dwSize = sizeof(DPCAPS)。アプリケーションは、この構造体を使用する前に、まずこのメンバを設定する。設定しなければ、エラーが発生する。
- dwFlags
- DirectPlay オブジェクトのプロパティを示すフラグ。
- DPCAPS_ASYNCCANCELALLSUPPORTED
- ペンディング状態の非同期メッセージをすべて取り消す機能がサポートされていることを示す。このフラグは、サポートされている取り消し処理のタイプが未送信メッセージを取り消す処理だけであることを示す。優先順位の範囲やメッセージ ID を指定してメッセージを取り消そうとすると、DPERR_UNSUPPORTED が返される。対照的に、DPCAPS_ASYNCCANCELSUPPORTED フラグは取り消し処理のすべてのタイプがサポートされていることを示す。ただし、SendEx でサポートされている部分を示す能力は、セッションが開かれるまで使用できない。
- DPCAPS_ASYNCCANCELSUPPORTED
- 非同期メッセージを取り消す機能がサポートされていることを示す。メッセージ ID による取り消し、優先順位の範囲による取り消し、すべての未送信メッセージの取り消しといったすべてのタイプの取り消し処理がサポートされている。ただし、SendEx でサポートされている部分を示す能力は、セッションが開かれるまで使用できない。
- DPCAPS_ASYNCSUPPORTED
- 非同期メッセージ処理がサポートされていることを示す。そのため、アプリケーションは SendEx で DPSEND_ASYNC フラグを使用できる。詳細については、「注意」を参照すること。ただし、SendEx でサポートされている部分を示す能力は、セッションが開かれるまで使用できない。
- DPCAPS_ENCRYPTIONSUPPORTED
- セッションがセキュア セッションであるため、またはサービス プロバイダでメッセージを暗号化できるため、この DirectPlay オブジェクトによりメッセージの暗号化がサポートされていることを示す。
- DPCAPS_GROUPOPTIMIZED
- この DirectPlay オブジェクトにバインドされているサービス プロバイダがグループ (マルチキャスト) のメッセージ処理を最適化できることを示す。
- DPCAPS_GUARANTEEDOPTIMIZED
- この DirectPlay オブジェクトにバインドされているサービス プロバイダで保証付きメッセージ配信がサポートされていることを示す。
- DPCAPS_GUARANTEEDSUPPORTED
- 保証付きメッセージ配信は、それがサービス プロバイダでサポートされているため、または保証なしサービス プロバイダで DirectPlay によりそれが実装されているため、それがこの DirectPlay オブジェクトによりサポートされていることを示す。
- DPCAPS_ISHOST
- 呼び出し元アプリケーションにより作成された DirectPlay オブジェクトがセッション ホストであることを示す。
- DPCAPS_KEEPALIVEOPTIMIZED
- サービス プロバイダがセッションへの接続がいつ喪失したかを検出できることを示す。
- DPCAPS_SENDPRIORITYSUPPORTED
- SendEx で設定されたメッセージの優先順位がサポートされていることを示す。ただし、SendEx でサポートされている部分を示す能力は、セッションが開かれるまで使用できない。
- DPCAPS_SENDTIMEOUTSUPPORTED
- SendEx で指定されたメッセージのタイムアウトがサポートされていることを示す。このフラグは、サービス プロバイダまたは DirectPlay により設定できる。ただし、SendEx でサポートされている部分を示す能力は、セッションが開かれるまで使用できない。
- DPCAPS_SIGNINGSUPPORTED
- セキュア セッションであるため、またはサービス プロバイダでメッセージに署名を設定できるため、メッセージ認証がこの DirectPlay オブジェクトによりサポートされていることを示す。
- dwMaxBufferSize
- このサービス プロバイダによりシングル パケットで送信できる最大バイト数。比較的サイズの大きなメッセージは、複数のパケットを使用して送信される。
- dwMaxQueueSize
- このメンバは、使用されなくなっている。
- dwMaxPlayers
- この DirectPlay オブジェクトによりセッション内でサポートされているローカル プレーヤーとリモート プレーヤーの最大数。
- dwHundredBaud
- 1 秒あたりの帯域幅 (100 ビットの倍数で指定)。たとえば、値が 24 のとき、1 秒あたり 2400 ビットの帯域幅となる。
- dwLatency
- サービス プロバイダによる遅延時間の見積もり (ミリ秒単位)。この値が 0 の場合、DirectPlay は見積もることができない。サービス プロバイダの精度は、平均メッセージ サイズを考慮に入れたアプリケーション間のテストにより決まる。遅延時間は、アプリケーションが保証付きメッセージ配信方式と保証なしメッセージ配信方式のどちらを使用しているかにより異なることがある。
- dwMaxLocalPlayers
- セッションでサポートされるローカル プレーヤーの最大数。
- dwHeaderLength
- この DirectPlay オブジェクトによりプレーヤー メッセージに追加されるヘッダーのサイズ (バイト単位)。ただし、ヘッダーのサイズは、使用しているサービス プロバイダにより異なるので注意すること。
- dwTimeout
- サービス プロバイダの推奨タイムアウト値。デフォルトで DirectPlay は、メッセージへの応答を待つときこのタイムアウト値を使用する。
注意
DPCAPS_ASYNCSUPPORTED フラグ、DPCAPS_SENDTIMEOUTSUPPORTED フラグ、DPCAPS_SENDPRIORITYSUPPORTED フラグ、DPCAPS_ASYNCCANCELSUPPORTED フラグ、および DPCAPS_ASYNCCANCELALLSUPPORTED フラグは、カレント セッションの通信能力を示している。
アプリケーションが SendEx で DPSEND_ASYNC を使用できるようにするには、次の条件のいずれか (または両方) が真でなければならない。
セッションが作成されたときに DPSESSION_DIRECTPLAYPROTOCOL フラグを指定した。
サービス プロバイダで非同期メッセージ処理がサポートされている。
これは、モデム、シリアル、インターネット パケット交換機 (IPX) サービス プロバイダは、それらが使用可能な保証付きメッセージ処理を実行できるが、非同期のメッセージ処理については DPSESSION_DIRECTPLAYPROTOCOL フラグを明示的に設定しない限り実行できないことを意味する。コンピュータに Windows Sockets 2.0 が搭載されている場合、TCP/IP サービス プロバイダは非同期メッセージ処理を実装している。
Windows NT/2000 : Windows 2000 が必要。
Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
ヘッダー : dplay.h で宣言。
参照
IDirectPlay4::Send、IDirectPlay4::SendEx、IDirectPlay4::GetCaps、IDirectPlay4::GetPlayerCaps